[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