[Svnmerge] Ignore initialized revisions (was Re: Reflected blocks)

Giovanni Bajo rasky at develer.com
Mon Jul 30 05:27:48 PDT 2007


On 7/28/2007 7:42 PM, Dustin J. Mitchell wrote:

>> I agree.  The only other complaint I would have here is that, in some
>> cases, the user may actually *want* to merge changes that came from
>> another branch.  As an example:
> 
> I totally misread the patch -- my apologies.  "initialized revisions"
> are those where the *number* of branches being tracked changes, not
> where the length changes.
> 
> I think this patch is good.  Giovanni -- thoughts?

[to avoid confusion, I hope we're speaking of this patch: :)
http://subversion.tigris.org/nonav/issues/showattachment.cgi/681/svnmerge_ignoreInitializedRevisions-2.patch]

I share your initial doubts about the additional network traffic. This 
change:

-    logs[url] = RevisionLog(url, begin, end, find_reflected)
+    # Always check for property changes so we can detect initialized 
revisions
+    logs[url] = RevisionLog(url, begin, end, True)

causes much more traffic for a non-bidirectional avail/merge operation, 
because RevisionLog has now to check all property changes (via multiple 
"svn propget" invokations) to realize that some revisions are (maybe) 
initializations of other merges.

I guess we're at a fork here: either we hit the bullet and decide to 
deprecate --bidirectional and make it default on, or we should insist on 
keeping the additional performance we was getting from *not* checking 
for property changes.

I'm +0 on deprecating --bidirectional at this point. In fact, I would be 
+1 if somebody worked on a patch to run multiple svn commands in 
parallel (rather than serialized), which provides a strong speedup for 
this kind of operations. If there are volunteers for this, I'm happy to 
discuss the details :)

To sum it up: if my reasoning is right, I'm OK to make this patch go in 
only if there's a followup patch to deprecate --bidirectional and make 
it always on by default.
-- 
Giovanni Bajo




More information about the Svnmerge mailing list