Checkout Tools
  • last updated 7 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1368658 is being indexed.

On the 'master-passphrase' branch: introduce GPG-Agent caching of the

master passphrase.

* subversion/include/svn_auth.h

(svn_auth_get_gpg_agent_master_passphrase_provider): New function.

* subversion/libsvn_subr/cmdline.c

(open_auth_store): Register the gpg-agent master passphrase provider

where available.

* subversion/libsvn_subr/gpg_agent.c

(get_password_via_agent): New function, abstracted from of


(password_get_gpg_agent): Now just a wrapper around




svn_auth_get_gpg_agent_master_passphrase_provider): New stuff.

On the 'master-passphrase' branch:

* subversion/include/svn_auth.h

(svn_auth_get_master_passphrase_prompt_provider): Fix a copy-n-pasto.

Merge recent trunk changes to the 'master-passphrase' branch.

(Merged /subversion/trunk:r1365672-1368648.)

  1. … 53 more files in changeset.
On the 'master-passphrase' branch, introduce flexibility on how master

passphrases are acquired for use with the encrypted store by

introducing a parallel auth baton/subsystem for this purpose.

(Fortunately, this didn't require code duplication, which would have

been a non-starter for me.)

Intended next step: see if the GPG-Agent can remember a master

passphrase so that prompting needn't (always) occur.

* subversion/include/svn_auth.h


(svn_auth_cred_master_passphrase_t): New structure type.

(svn_auth_master_passphrase_prompt_func_t): New prompt function type.

(svn_auth_get_master_passphrase_prompt_provider): New function.

* subversion/libsvn_subr/auth_store.h

(svn_auth__master_passphrase_fetch_t): Remove as unused.

(svn_auth__pathetic_store_get): Swap a simple secret-fetching

callback function for a whole parallel auth subsystem used to

fetch (possibly cached) master passphrases.

(svn_auth__pathetic_store_create, svn_auth__pathetic_store_reencrypt):

New functions.

* subversion/libsvn_subr/cmdline.c

(open_auth_store): Add 'no_auth_cache' and 'non_interactive'

parameters. Build a parallel auth subsystem for master passphrase

handling when dealing with an encrypted auth store.

(svn_cmdline_create_auth_baton): Delay opening the auth store until

other configuration parameters have been investigated.

* subversion/libsvn_subr/masterpass_providers.c

New file with the guts of a master-passphrase-providing auth system


* subversion/libsvn_subr/pathetic_auth_store.c

(pathetic_auth_store_baton_t): Lose 'secret_func' and 'secret_baton',

and pick up a 'secret_auth_baton'.

(write_auth_store): Add 'create' flag and handling.

(create_auth_store, set_cred_hash): Update calls to write_auth_store().

(acquire_secret): New helper function.

(pathetic_store_open): Reduce the scope of this function a bit,

disallowing store creation, and offloading secret acquisition to


(svn_auth__pathetic_store_get): Lose 'secret_func' and

'secret_baton' parameters, and add 'secret_auth_baton'. Update

associated structure members accordingly.

(svn_auth__pathetic_store_create, svn_auth__pathetic_store_reencrypt):

New functions (the latter of which is near-empty-bodied).

* subversion/include/svn_cmdline.h,

* subversion/libsvn_subr/prompt.c

(svn_cmdline_auth_master_passphrase_prompt): Rework as an

svn_auth_master_passphrase_prompt_func_t implementation.

* subversion/tests/libsvn_subr/crypto-test.c

(fetch_secret): Morph this into a master-passphrase prompt callback


(get_master_passphrase_auth_baton): New helper function.

(create_ephemeral_auth_store, test_auth_store_basic): Tweak in

accordance with the changes made to interfaces.

* CHANGES: Fix typo.
Move some 'svn merge' option validity checks from main.c to merge-cmd.c

where the rest of them are. Lose one special case of reporting two

conflicts in a single message ("--reintegrate cannot be used with

--ignore-ancestry or --record-only"), since there are many possible

combinations and the benefit is small.

* subversion/svn/main.c

(sub_main): Move the 'reintegrate' checks from here ...

* subversion/svn/merge-cmd.c

(svn_cl__merge): ... to here, and lose a two-errors-in-one-message.

* subversion/svn/main.c,


(sub_main): Adjust white space following r1368252.

* CHANGES: Add more 1.7.6 items.
Merge r1362508 from trunk:

* r1362508

Avoid errors when users run 'svnlook changed', 'svnlook

dirs-changed', or 'svnlook diff' on r0. Though the output from

those requests will always be empty, there's nothing inherently

wrong with the requests themselves.


Resolves complaint made by user(s).


+1: cmpilato, steveking, jerenkrantz

Merge r1367498 from trunk:

* r1367498

Make FSFS revision files independent of APR hash order.


Make 'svnadmin load', and other commits, produce reproducible revision



+1: philip, steveking, jerenkrantz

Merge r1307177 from trunk:

* r1307177

Move mod_dontdothat to install-tools.


Undo compatibility break of 'make install' in 1.7.3.


+1: danielsh, gstein, jerenkrantz

    • ?
* STATUS: Approve some backports.

Factor out some of the error and pool handling in the main() functions of

svn and svnadmin. Create and destroy the pool exactly once, in the outer

function, instead of destroying it at every return statement -- where,

inevitably, some were missed (at the three places where we were calling

svn_handle_error2(...TRUE...), specifically).

We should probably do the same for the other svn* executables too.

* subversion/svnadmin/main.c,


(EXIT_ERROR): New macro.

(SVN_INT_ERR): Redefine this public macro name to suppress error messages

about writing to a broken pipe, and (in svnadmin only) to report the

program name as 'svnadmin' instead of 'svn'.

(sub_main): New name for the body of main(). Use SVN_INT_ERR and SVN_ERROR

to simplify error handling.

(main): Extract everything except the initialization of the application

and of the top-level pool, and the destruction of that pool, into the

new function sub_main(), and call that.

* subversion/svnadmin/main.c

(subcommand_crashtest): Move this function higher up with the other

subcommand functions, so that main() comes last as usual.

Simplify error handling by calling an existing subroutine.

* subversion/svnadmin/main.c,


(main): Use svn_cmdline_handle_exit_error().

Propose r1368197-8 for backport.
* subversion/libsvn_client/externals.c

(switch_dir_external): Flesh the comment monologue out a bit, and

fix one bit of space-before-paren formatting.

Fix issue #4216 ("Error updating relocated working copy with

server-relative externals defined").

* subversion/libsvn_client/externals.c

(switch_dir_external): After relocating an external working copy,

update our notion of that repository's root URL, too.

* subversion/svn/main.c

(main): Don't leak an error on failure to convert an option argument to

UTF-8: instead, include the child error in the error report.

Tweak white space around uses of 'SVN_VERSION_DEFINE' macro which declares a

variable and so should be grouped as a declaration rather than a statement.

* subversion/svnadmin/main.c,










(check_lib_versions): Group SVN_VERSION_DEFINE with the declarations.

* subversion/svnmucc/svnmucc.c

(init): Same.

Prevent the access violation reported here:

* subversion/libsvn_wc/wc_db.c

(read_url_txn): don't access NULL paths; return an error instead

Prevent the access violation reported here:

* subversion/libsvn_wc/node.c

(svn_wc__internal_get_origin): svn_wc__db_scan_addition may return a NULL

original_repos_relpath according to its docstring. Check for that

condition before accessing the path.

Remove an effectively static function parameter.

* subversion/libsvn_client/relocate.c

(relocate_externals): Lose 'ignore_externals' parameter and use

thereof. Duh?

(svn_client_relocate2): Update call to relocate_externals().

* site/publish/mailing-lists.html: Use shorter wording and less horizontal

spacing in the yellow box on this page.

* site/publish/mailing-lists.html: Try to get nicer spacing in the yellow box.

* site/publish/mailing-lists.html: Point people at the Subversion book

as well as the archives. Some posters on the users list seem unaware

of the fact that the book is a good resource of information.

Remove the '1.7.x-r1361341' branch, reintegrated in r1367856.
Reintegrate the 1.7.x-r1361341 branch:

* r1361341

Avoid checking for working copies above the current working copy from

svn_wc__acquire_write_lock() to avoid checking for .svn/wc.db in

directories where we might not have read permission.


Resolves a problem reported on the CollabNet Subversion forum.

Branch: ^/subversion/branches/1.7.x-r1361341


Requires a backport branch because we renamed svn_wc__db_kind_dir to

svn_kind_dir for 1.8.


+1: rhuijben, cmpilato, philip

    • ?
Remove the '1.7.x-r1361007' branch, reintegrated in r1367854.
Reintegrate the 1.7.x-r1361007 branch:

* r1361007, r1361019

Don't record references to files in the system temp directory from

workqueue operations from the merge code.


Removes cases where a ^C can break your workqueue, because the

diff code removes the files referenced from the workqueue in its

pool cleanup.

Branch: ^/subversion/branches/1.7.x-r1361007


Requires a branch because the merge code has been reworked for 1.8.


+1: rhuijben, cmpilato, philip