Hi, Kannan R wrote: > On Wednesday 07 October 2009 04:17 PM, Kannan wrote: >> Stefan Sperling wrote: > >>> Does this patch fix this case, too? > > > [..] > > /me digs from the list of yet-to-be-committed patches.
I ve attached a new patch which fixes this by calling svn_ra_neon__maybe_store_auth_info() once, instead of the repeated calls as cmpilato has pointed out. Kannan, can you confirm this solves the issue you see? If so I shall commit the patch. [[[ While working on a wc of a repo which needs authentication, 'store password unencrypted' prompt is getting invoked only for those svn commands that access the repo URL or that have an URL as argument (eg. svn ls http://localhost/repo) and not for wc oriented commands such as `svn ls' or `svn cat -r 5 test.c' which also require authentication, which is solved here. This also fixes redundant invokation of the function 'svn_ra_neon__maybe_store_auth_info' at various places. * subversion/libsvn_ra_neon/util.c (svn_ra_neon__request_create): Store auth credentials if we can. * subversion/libsvn_ra_neon/session.c (svn_ra_neon__do_get_uuid): Remove redundant invocation. * subversion/libsvn_ra_neon/commit.c (commit_close_edit): Remove redundant invocation. * subversion/libsvn_ra_neon/fetch.c (svn_ra_neon__get_latest_revnum, reporter_finish_report): Remove redundant invocation. ]]] Thank You. -- Senthil Kumaran S http://www.stylesen.org/
Index: subversion/libsvn_ra_neon/util.c =================================================================== --- subversion/libsvn_ra_neon/util.c (revision 982905) +++ subversion/libsvn_ra_neon/util.c (working copy) @@ -362,6 +362,9 @@ apr_pool_t *reqpool = svn_pool_create(pool); svn_ra_neon__request_t *req = apr_pcalloc(reqpool, sizeof(*req)); + /* If there is auth credentials in this session, store it if we can. */ + SVN_ERR(svn_ra_neon__maybe_store_auth_info(sess, pool)); + /* We never want to send Neon an absolute URL, since that can cause problems with some servers (for example, those that may be accessed using different server names from different locations, or those that Index: subversion/libsvn_ra_neon/session.c =================================================================== --- subversion/libsvn_ra_neon/session.c (revision 982905) +++ subversion/libsvn_ra_neon/session.c (working copy) @@ -1170,7 +1170,6 @@ SVN_ERR(svn_ra_neon__search_for_starting_props(&rsrc, &lopped_path, ras, ras->url->data, pool)); - SVN_ERR(svn_ra_neon__maybe_store_auth_info(ras, pool)); if (! ras->uuid) { Index: subversion/libsvn_ra_neon/commit.c =================================================================== --- subversion/libsvn_ra_neon/commit.c (revision 982905) +++ subversion/libsvn_ra_neon/commit.c (working copy) @@ -1355,7 +1355,6 @@ cc->disable_merge_response, pool)); SVN_ERR(delete_activity(edit_baton, pool)); - SVN_ERR(svn_ra_neon__maybe_store_auth_info(cc->ras, pool)); if (cc->callback && commit_info->revision != SVN_INVALID_REVNUM) SVN_ERR(cc->callback(commit_info, cc->callback_baton, pool)); Index: subversion/libsvn_ra_neon/fetch.c =================================================================== --- subversion/libsvn_ra_neon/fetch.c (revision 982905) +++ subversion/libsvn_ra_neon/fetch.c (working copy) @@ -1111,7 +1111,6 @@ ras, ras->root.path, SVN_INVALID_REVNUM, pool)); } - SVN_ERR(svn_ra_neon__maybe_store_auth_info(ras, pool)); return NULL; } @@ -2440,9 +2439,6 @@ (SVN_ERR_RA_DAV_REQUEST_FAILED, NULL, _("REPORT response handling failed to complete the editor drive")); } - - /* store auth info if we can. */ - return svn_ra_neon__maybe_store_auth_info(rb->ras, pool); } static const svn_ra_reporter3_t ra_neon_reporter = {