[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