[Svnmerge] [PATCH] Transitive merge fix

Giovanni Bajo rasky at develer.com
Fri Aug 10 02:25:08 PDT 2007


On 8/8/2007 4:43 PM, Raman Gupta wrote:

 > @@ -1323,9 +1323,10 @@
 >      merge_metadata = logs[opts["source-url"]].merge_metadata()
 >      for start,end in minimal_merge_intervals(revs, phantom_revs):
 >          if not record_only:
 > -            # Clear merge/blocked properties to avoid spurious 
property conflicts
 > -            set_merge_props(branch_dir, {})
 > -            set_block_props(branch_dir, {})
 > +            # Preset merge/blocked properties to the source value at 
the start rev
 > +            # to avoid spurious property conflicts
 > +            set_merge_props(branch_dir, 
get_merge_props(opts["source-url"], start - 1))
 > +            set_block_props(branch_dir, 
get_block_props(opts["source-url"], start - 1))
 >              # Do the merge
 >              svn_command("merge --force -r %d:%d %s %s" % \
 >                          (start - 1, end, opts["source-url"], 
branch_dir))

This is going to cause two additional "svn propget" for each merge. 
Can't you use the VersionedProperty cache that was thought specifically 
for that? You already have merge_metadata() available, and I believe 
that block_metadata() is already computed at least for the reflected case.

Which makes me think that maybe this feature should be gated on 
--bidirectional :)

Notice that all the above might be wrong: I would appreciate if you 
watched at the output of svnmerge with -vv to prove me wrong (or right ;).
-- 
Giovanni Bajo




More information about the Svnmerge mailing list