Skip to content

Commit 6bc3170

Browse files
committed
Merge pull request #1 from imrivera/master
Added support for the svn:mergeinfo property (Subversion 1.5+)
2 parents b24dfa4 + 6500eb8 commit 6bc3170

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

svndump/merge.py

+23
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,27 @@ def __change_node( self, dumpIndex, node ):
331331
if fromRev != newFromRev:
332332
change = 1
333333

334+
newMergeInfo = ""
335+
if node.has_properties():
336+
properties = node.get_properties()
337+
if properties.has_key('svn:mergeinfo'):
338+
mergeInfo = properties['svn:mergeinfo']
339+
for line in mergeInfo.split('\n'):
340+
m = re.match('^(.*):(\d+)-(\d+)', line)
341+
if m != None:
342+
mergePath = m.group(1)
343+
mergeFrom = int(m.group(2))
344+
mergeTo = int(m.group(3))
345+
newMergePath = self.__rename_path( mergePath, dumpIndex)
346+
newMergeFrom = self.__in_rev_nr_maps[dumpIndex][mergeFrom]
347+
newMergeTo = self.__in_rev_nr_maps[dumpIndex][mergeTo]
348+
if len(newMergeInfo) != 0:
349+
newMergeInfo = newMergeInfo + "\n"
350+
newMergeInfo = newMergeInfo + newMergePath + ":" + str(newMergeFrom) + "-" + str(newMergeTo)
351+
352+
if mergeInfo != newMergeInfo:
353+
change = 1
354+
334355
if not change:
335356
# no change needed
336357
return node
@@ -341,6 +362,8 @@ def __change_node( self, dumpIndex, node ):
341362
newNode.set_copy_from( newFromPath, newFromRev )
342363
if node.has_properties():
343364
newNode.set_properties( node.get_properties() )
365+
if len(newMergeInfo) > 0:
366+
newNode.set_property( 'svn:mergeinfo', newMergeInfo )
344367
if node.has_text():
345368
newNode.set_text_node( node )
346369
return newNode

0 commit comments

Comments
 (0)