subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rhuij...@apache.org
Subject svn commit: r1553370 - /subversion/trunk/subversion/svnsync/svnsync.c
Date Wed, 25 Dec 2013 11:46:33 GMT
Author: rhuijben
Date: Wed Dec 25 11:46:32 2013
New Revision: 1553370

URL: http://svn.apache.org/r1553370
Log:
Following up on r1553369, avoid an additional request at the end of every
revision sync in svnsync for atomic revprop change capable servers by passing
the revision of the just synced revision as old value.

* subversion/svnsync/svnsync.c
  (replay_baton_t): Add boolean.
  (replay_rev_finished): When the repository supports atomic revision property
    changes pass old value when the sync is done.
  (do_synchronize): Retrieve atomic revision property changes capability.

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

Modified: subversion/trunk/subversion/svnsync/svnsync.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnsync/svnsync.c?rev=1553370&r1=1553369&r2=1553370&view=diff
==============================================================================
--- subversion/trunk/subversion/svnsync/svnsync.c (original)
+++ subversion/trunk/subversion/svnsync/svnsync.c Wed Dec 25 11:46:32 2013
@@ -968,6 +968,7 @@ typedef struct replay_baton_t {
   svn_revnum_t current_revision;
   subcommand_baton_t *sb;
   svn_boolean_t has_commit_revprops_capability;
+  svn_boolean_t has_atomic_revprops_capability;
   int normalized_rev_props_count;
   int normalized_node_props_count;
   const char *to_root;
@@ -1295,6 +1296,7 @@ replay_rev_finished(svn_revnum_t revisio
   apr_hash_t *filtered, *existing_props;
   int filtered_count;
   int normalized_count;
+  svn_string_t *rev_str;
 
   SVN_ERR(editor->close_edit(edit_baton, pool));
 
@@ -1334,21 +1336,24 @@ replay_rev_finished(svn_revnum_t revisio
 
   svn_pool_clear(subpool);
 
+  rev_str = svn_string_create(apr_psprintf(pool, "%ld", revision), subpool);
+
   /* Ok, we're done, bring the last-merged-rev property up to date. */
   SVN_ERR(svn_ra_change_rev_prop2(
            rb->to_session,
            0,
            SVNSYNC_PROP_LAST_MERGED_REV,
            NULL,
-           svn_string_create(apr_psprintf(pool, "%ld", revision),
-                             subpool),
+           rev_str,
            subpool));
 
   /* And finally drop the currently copying prop, since we're done
      with this revision. */
   SVN_ERR(svn_ra_change_rev_prop2(rb->to_session, 0,
                                   SVNSYNC_PROP_CURRENTLY_COPYING,
-                                  NULL, NULL, subpool));
+                                  rb->has_atomic_revprops_capability
+                                    ? &rev_str : NULL,
+                                  NULL, subpool));
 
   /* Notify the user that we copied revision properties. */
   if (! rb->sb->quiet)
@@ -1478,6 +1483,11 @@ do_synchronize(svn_ra_session_t *to_sess
                                 SVN_RA_CAPABILITY_COMMIT_REVPROPS,
                                 pool));
 
+  SVN_ERR(svn_ra_has_capability(rb->to_session,
+                                &rb->has_atomic_revprops_capability,
+                                SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
+                                pool));
+
   start_revision = last_merged + 1;
   end_revision = from_latest;
 



Mime
View raw message