You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2011/05/23 18:56:25 UTC

svn commit: r1126580 - /subversion/trunk/subversion/svnsync/main.c

Author: cmpilato
Date: Mon May 23 16:56:25 2011
New Revision: 1126580

URL: http://svn.apache.org/viewvc?rev=1126580&view=rev
Log:
Reduce number of RA requests during 'svnsync info'.  (This is the
follow-up to r1126441.)

* subversion/svnsync/main.c
  (info_cmd): Retrieve three properties using one svn_ra_rev_proplist()
    call instead of requesting them one by one.

Patch by:  Vijayaguru G <vijay{_AT_}collab.net>
Inspired by:  ivan

Modified:
    subversion/trunk/subversion/svnsync/main.c

Modified: subversion/trunk/subversion/svnsync/main.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnsync/main.c?rev=1126580&r1=1126579&r2=1126580&view=diff
==============================================================================
--- subversion/trunk/subversion/svnsync/main.c (original)
+++ subversion/trunk/subversion/svnsync/main.c Mon May 23 16:56:25 2011
@@ -1633,6 +1633,7 @@ info_cmd(apr_getopt_t *os, void *b, apr_
   apr_array_header_t *targets;
   subcommand_baton_t *baton;
   const char *to_url;
+  apr_hash_t *props;
   svn_string_t *from_url, *from_uuid, *last_merged_rev;
 
   SVN_ERR(svn_opt__args_to_target_array(&targets, os,
@@ -1654,19 +1655,20 @@ info_cmd(apr_getopt_t *os, void *b, apr_
   baton = make_subcommand_baton(opt_baton, to_url, NULL, 0, 0, pool);
   SVN_ERR(open_target_session(&to_session, baton, pool));
 
-  /* Verify that the repos has been initialized for synchronization. */
-  SVN_ERR(svn_ra_rev_prop(to_session, 0, SVNSYNC_PROP_FROM_URL,
-                          &from_url, pool));
+  SVN_ERR(svn_ra_rev_proplist(to_session, 0, &props, pool));
+
+  from_url = apr_hash_get(props, SVNSYNC_PROP_FROM_URL,
+                          APR_HASH_KEY_STRING);
+  
   if (! from_url)
     return svn_error_createf
       (SVN_ERR_BAD_URL, NULL,
        _("Repository '%s' is not initialized for synchronization"), to_url);
 
-  /* Fetch more of the magic properties, which are the source of our info. */
-  SVN_ERR(svn_ra_rev_prop(to_session, 0, SVNSYNC_PROP_FROM_UUID,
-                          &from_uuid, pool));
-  SVN_ERR(svn_ra_rev_prop(to_session, 0, SVNSYNC_PROP_LAST_MERGED_REV,
-                          &last_merged_rev, pool));
+  from_uuid = apr_hash_get(props, SVNSYNC_PROP_FROM_UUID,
+                           APR_HASH_KEY_STRING);
+  last_merged_rev = apr_hash_get(props, SVNSYNC_PROP_LAST_MERGED_REV,
+                                 APR_HASH_KEY_STRING);
 
   /* Print the info. */
   SVN_ERR(svn_cmdline_printf(pool, _("Source URL: %s\n"), from_url->data));