[ Please send attachments as text/plain (eg, *.txt) so that our mailers
show them inline when reading/replying.  Thanks. ]

Roderich Schupp wrote on Wed, Aug 24, 2011 at 14:28:46 +0200:
> Hi,
> 
> svnmucc doesn't honor option --config-dir when it comes to stuff
> stored below config_dir/auth.
> 
> To reproduce:
> - access a remote repository that will store information below
> config_dir/auth, e.g.
>   username/password or permanently accepted SSL server certificate,
> using svn command
>   without --config-dir  (i.e. default config_dir ~/.subversion is used)
> - try to access the same repository with "svnmucc --config-dir
> /non/existent/directory ..."
>   and wonder why svnmucc doesn't prompt again for the above information
> 
> Suggested patch against trunk attached.
> 
> [[[
> Make svnmucc honor option --config-dir for auth stuff.
> 
> * tools/client-side/svnmucc/svnmucc.c
>   (create_ra_callbacks) Add parameter config_dir, pass it to
> svn_cmdline_create_auth_baton.
>   (execute) Pass config_dir to create_ra_callbacks.
> ]]]
> 
> 
> Cheers, Roderich

> --- tools/client-side/svnmucc/svnmucc.c.orig  2011-08-24 09:26:34.933787000 
> +0200
> +++ tools/client-side/svnmucc/svnmucc.c       2011-08-24 09:30:43.188708000 
> +0200
> @@ -108,6 +108,7 @@
>  create_ra_callbacks(svn_ra_callbacks2_t **callbacks,
>                      const char *username,
>                      const char *password,
> +                    const char *config_dir,
>                      svn_boolean_t non_interactive,
>                      svn_boolean_t no_auth_cache,
>                      apr_pool_t *pool)
> @@ -116,7 +117,7 @@
>  
>    SVN_ERR(svn_cmdline_create_auth_baton(&(*callbacks)->auth_baton,
>                                          non_interactive,
> -                                        username, password, NULL, 
> no_auth_cache,
> +                                        username, password, config_dir, 
> no_auth_cache,
>                                          FALSE, NULL, NULL, NULL, pool));
>  
>    (*callbacks)->open_tmp_file = open_tmp_file;
> @@ -635,7 +636,7 @@
>    SVN_ERR(svn_config_get_config(&config, config_dir, pool));
>    SVN_ERR(svn_cmdline__apply_config_options(config, config_options,
>                                              "svnmucc: ", "--config-option"));
> -  SVN_ERR(create_ra_callbacks(&ra_callbacks, username, password,
> +  SVN_ERR(create_ra_callbacks(&ra_callbacks, username, password, config_dir,
>                                non_interactive, no_auth_cache, pool));
>    SVN_ERR(svn_ra_open4(&session, NULL, anchor, NULL, ra_callbacks,
>                         NULL, config, pool));

Philip just applied the patch.

There seem to be further opportunities for improvement here, though:

- The FALSE/NULL parameters to svn_cmdline_create_auth_baton().  At
  least the CONFIG parameter could be easily populated too, since the
  caller already has a config hash.

- If ~/.subversion is unreadable (chmod 0), then svnmucc just errors out.
  (We fixed that for 'svn' some time ago; now it only issues a warning.)

Reply via email to