[Svnmerge] Directory conflicts, unicode values in array self.revs

Hermanns, Horst h.hermanns at telekom.de
Wed Mar 12 10:12:55 PDT 2008


Hi,

we are ussing svnmerge in following environment:
	Sun Solaris 8
	Python 2.5.1
	svnmerge.py Rev. 29741
	subversion 1.4.2

We created severals branches from trunk with bidirectional merging.

When I merge changes back from trunk into a branch I got errors "Trying
to add new property 'svnmerge-integrated' with value 'xxx' but property
already exists" with directory conflicts.

This occurs only if multiple intervals where merged in one svnmerge
operation.

I made some debug outputs in svnmerge.py and noticed some values in
array self.revs stored as unicode.

...
self.revs = [0, 504, u'506', u'513', u'515', u'519', u'521', u'524',
u'527', 528] ...

Therefore the function 'i = bisect(self.revs, rev) - 1' does not
recognize the unicode values and passes with each interval the same
index 1 and the temp. property is set to the same value
(set_merge_props(branch_dir, merge_metadata.get(start - 1)).

I've made some changes to convert all values of self.revs to int:
   497      def get(self, rev=None):
   498          """
   499          Get the property at revision REV. If rev is not
specified, get
   500          the property at revision HEAD.
   501          """
   502
   503 +        for x in range(len(self.revs)):
   504 +                 self.revs[x]=int(self.revs[x])
   505
   506          if rev is not None:
   507
   508              # Find the index using a binary search
   509              i = bisect(self.revs, rev) - 1


Now index is incremented (based on last revision before actual processed
revision) and everything is working without conflicts/errors.

Do you agree with my analysis?
Is this a Bug in svnmerge or is there a purpose in setting unicode
values I've not considered?
Perhaps there is also a Problem in our Environment (Locale, ...).

Best regards and thanks
Horst




More information about the Svnmerge mailing list