[Svnmerge] [PATCH] Performance patch for merging

Blair Zajac blair at orcaware.com
Tue Feb 28 21:41:32 PST 2006


On Feb 28, 2006, at 8:42 PM, Raman Gupta wrote:

> The attached patch fixes a performance issue with the merge  
> command. In
> the current version, the merge command does not remove phantom  
> revisions
> from the list of revs that are used for 1) merging itself, and 2)
> obtaining the log messages for each merged revision to build the  
> commit
> log message.
>
> For the first use, there is no real difference to subtracting the
> phantom revisions because the minimal_merge_intervals() method re-adds
> the phantom revisions so that as few merge operations are executed as
> possible. So the end result, after minimal_merge_intervals is  
> called is
> exactly the same.
>
> For the second use, which is to obtain the log messages for each  
> merged
> revision, an "svn log" operation was executed for every phantom
> revision, in addition to the real revisions. This can be a significant
> source of wasted time and also results in empty lines in the final
> commit message (at least it does if you have the indent patch).
> Therefore, subtracting the phantom_revs from the revs list results  
> in a
> significantly faster merge operation when there are even just a few
> phantom revs, because each svn log is a network operation.
>
> Note that we still want the commit message to contain the consolidated
> ranges (that include the phantom_revs), so revs | phantom_revs is used
> for printing the merged ranges.

Raman,

Thanks.  Committed in r18651.

Regards,
Blair





More information about the Svnmerge mailing list