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)