Author: julianfoad
Date: Wed Feb  4 13:20:10 2015
New Revision: 1657195

URL: http://svn.apache.org/r1657195
Log:
Fix 'svnsync' stripping out r0 mergeinfo following r1646250, r1656893, r1657182.

* subversion/svnsync/sync.c
  (remove_r0_mergeinfo): When no ranges remain in a line of mergeinfo, remove
    the whole line.

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

Modified: subversion/trunk/subversion/svnsync/sync.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnsync/sync.c?rev=1657195&r1=1657194&r2=1657195&view=diff
==============================================================================
--- subversion/trunk/subversion/svnsync/sync.c (original)
+++ subversion/trunk/subversion/svnsync/sync.c Wed Feb  4 13:20:10 2015
@@ -115,6 +115,7 @@ remove_r0_mergeinfo(const svn_string_t *
     {
       char *line = APR_ARRAY_IDX(lines, i, char *);
       char *colon;
+      char *rangelist;
 
       /* split at the last colon */
       colon = strrchr(line, ':');
@@ -124,13 +125,11 @@ remove_r0_mergeinfo(const svn_string_t *
                                  _("Missing colon in svn:mergeinfo "
                                    "property"));
 
+      rangelist = colon + 1;
+
       /* remove r0 */
       if (colon[1] == '0')
         {
-          char *rangelist;
-
-          rangelist = colon + 1;
-
           if (strncmp(rangelist, "0*,", 3) == 0)
             {
               rangelist += 3;
@@ -151,19 +150,16 @@ remove_r0_mergeinfo(const svn_string_t *
             {
               rangelist[0] = '1';
             }
+        }
 
-          /* reassemble */
+      /* reassemble */
+      if (rangelist[0])
+        {
           if (new_str->len)
             svn_stringbuf_appendbyte(new_str, '\n');
           svn_stringbuf_appendbytes(new_str, line, colon + 1 - line);
           svn_stringbuf_appendcstr(new_str, rangelist);
         }
-      else
-        {
-          if (new_str->len)
-            svn_stringbuf_appendbyte(new_str, '\n');
-          svn_stringbuf_appendcstr(new_str, line);
-        }
     }
 
   if (strcmp((*str)->data, new_str->data) != 0)


Reply via email to