[Svnmerge] [PATCH] Bidirectional merging patch for svnmerge.py

Giovanni Bajo rasky at develer.com
Wed Feb 22 01:21:26 PST 2006


Blair Zajac <blair at orcaware.com> wrote:

>> Here's a modified version of Raman's original work.  This also includes
the
>> patch I sent in earlier today.

I'll have that committed in a separate step later today.

>> Here's some timing tests:
>>
>> Old method New method
>> CPU time   16.99 sec   10.14 sec
>> Clock time 1:09.80 sec   33.97 sec
>>
>> This logic reduced the number of revisions to check for reflected merges
>> from 96 to 30.
>> Much better.

Good. many thanks for the numbers. How does that compare with no --bidi at
all?

>> I noticed that there's duplicate requests to the server for log messages,
>> once for the list of revisions that have modified the source merge
directory,
>> and once for the the revisions that have changed.  This can be done in a
>> separate commit.

Sure.

>> +    # Running svn log with the --quiet and the --verbose options
>> +    # prints all the paths to files and directory added, modified or
>> +    # deleted in the commit without the log message.
>> +    lines = launchsvn('log --quiet --verbose -r%s:%s "%s"' % (begin,
end,
>> url))

I'd rather use --verbose only if bidi is active. I'm sure there is a penalty
which is otherwise unnecessary.

>> +                # Check to see if the revisions list changed for the
>> specific
>>  +               # target branch involved -- if it has then it is
>> a reflected
>> +                # revision

I thought about this. I believe the best solution is to extract the full
property value (old and new) with a regular expression, and then pass it to
a new function extracted from get_revlist_prop(). I believe we should have a
single routine which knows how to analyze and parse the property.
-- 
Giovanni Bajo




More information about the Svnmerge mailing list