[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