On Sun, Mar 1, 2009 at 3:34 PM, Mark Phippard <markphip_at_gmail.com> wrote:
> On Sun, Mar 1, 2009 at 2:52 PM, Stefan Fuhrmann
> <stefanfuhrmann_at_alice-dsl.de> wrote:
>> On Sunday 01 March 2009 18:33:48 Mark Phippard wrote:
>>
>>> > $ uname -a
>>> > Linux opti 2.6.24-23-generic #1 SMP Mon Jan 26 00:13:11 UTC 2009 i686
>>> > GNU/Linux $ svn --version
>>> > svn, version 1.4.6 (r28521)
>>>
>>> Since you are calling this a 1.6 regression, why are you not comparing
>>> against 1.5.6?
>>
>> Sorry! My bad; I wanted the post out quickly and had no
>> 1.5 on my machine.
>>
>> 1.5.6 numbers:
>>
>> $ time ./svn merge -r 15456:15455
>> http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk ~/TSVN3
>> --- Reverse-merging r15456 into
>> '/home/stefan/TSVN3/src/TortoiseProc/RevisionGraph/RevisionGraphDlg.cpp':
>> U /home/stefan/TSVN3/src/TortoiseProc/RevisionGraph/RevisionGraphDlg.cpp
>> --- Reverse-merging r15456 into
>> '/home/stefan/TSVN3/src/TortoiseProc/RevisionGraph/RevisionGraphDlg.h':
>> U /home/stefan/TSVN3/src/TortoiseProc/RevisionGraph/RevisionGraphDlg.h
>>
>> real 6m52.263s
>> user 0m2.220s
>> sys 0m0.564s
>>
>> So, this is basically the same as for 1.6.
>> Obviously, I never needed to undo revisions
>> for quite a long time.
>
> So then there is no release blocking 1.6 regression here. Agree?
> Mainly we need to look into why this is slow and see if it can be
> improved.
>
> pburba made an optimization so that if your WC is at a single uniform
> revision that it does some performance stuff that made a big
> difference. I wonder if it is not implemented for reverse merge?
Mark,
You are referring to r33112 yes? That change improved the performance
of libsvn_client/merge.c:filter_self_referential_mergeinfo(), but that
function isn't even called during reverse merges since r33026, so that
is not the cause of the poor performance in this case.
> Can
> you try merging a single revision from a branch to see if the
> performance is similar or better?
>
>>> > $ svn co http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk -r15533
>>> > ~/TSVN > /dev/null
>>>
>>> You might have mentioned how long it takes this checkout to run? I am
>>> running checkout from a box in the CollabNet network and it is still
>>> taking forever.
>>
>> Hm. Around 4 minutes here, including externals.
>> I didn't want to clutter my post with numbers
>> that I didn't consider relevant for merge performance.
>
> That is strange. I was basically LAN-connected to tigris and I think
> checkout took between 15 and 20 minutes. It was long enough that I
> decided it was taking a long time and that I'd also run the tests on a
> different system (Windows). Managed to connect to that box, run the
> diff tests, find and install the timethis.exe software and get most of
> the "src" checkout done.
FWIW here is my timing:
=========
1.6.0.RC3
=========
1.6.0.RC3>timethis svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk
TimeThis : Command Line : svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk
TimeThis : Start Time : Mon Mar 02 09:47:28 2009
--- Reverse-merging r15456 into
'src\TortoiseProc\RevisionGraph\RevisionGraphDlg.cpp':
U src\TortoiseProc\RevisionGraph\RevisionGraphDlg.cpp
--- Reverse-merging r15456 into
'src\TortoiseProc\RevisionGraph\RevisionGraphDlg.h':
U src\TortoiseProc\RevisionGraph\RevisionGraphDlg.h
TimeThis : Command Line : svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk
TimeThis : Start Time : Mon Mar 02 09:47:28 2009
TimeThis : End Time : Mon Mar 02 09:56:25 2009
TimeThis : Elapsed Time : 00:08:57.296
What is interesting, if we do this merge with --ignore-ancestry, which
effectively disables all merge tracking, the merge is much quicker
(appx 3 minutes vs 9 minutes) but is still much slower in 1.6.0/1.5.6
when compared to 1.4.6 (i.e. appx 3 minutes vs 8 seconds). So there
is something else slowing us down too:
===========================
1.6.0.RC3 --ignore-ancestry
===========================
1.6.0.RC3>C:\SVN\TSVN>timethis svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk --ignore-ancestry
TimeThis : Command Line : svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk --ignore-ancestry
TimeThis : Start Time : Mon Mar 02 10:04:29 2009
--- Reverse-merging r15456 into
'src\TortoiseProc\RevisionGraph\RevisionGraphDlg.cpp':
U src\TortoiseProc\RevisionGraph\RevisionGraphDlg.cpp
--- Reverse-merging r15456 into
'src\TortoiseProc\RevisionGraph\RevisionGraphDlg.h':
U src\TortoiseProc\RevisionGraph\RevisionGraphDlg.h
TimeThis : Command Line : svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk --ignore-ancestry
TimeThis : Start Time : Mon Mar 02 10:04:29 2009
TimeThis : End Time : Mon Mar 02 10:07:27 2009
TimeThis : Elapsed Time : 00:02:58.562
=======================
1.5.6 --ignore-ancestry
=======================
1.5.6>C:\SVN\TSVN.1.5.6>timethis svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk --ignore-ancestry
TimeThis : Command Line : svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk --ignore-ancestry
TimeThis : Start Time : Mon Mar 02 10:23:01 2009
--- Reverse-merging r15456 into
'src\TortoiseProc\RevisionGraph\RevisionGraphDlg.cpp':
U src\TortoiseProc\RevisionGraph\RevisionGraphDlg.cpp
--- Reverse-merging r15456 into
'src\TortoiseProc\RevisionGraph\RevisionGraphDlg.h':
U src\TortoiseProc\RevisionGraph\RevisionGraphDlg.h
TimeThis : Command Line : svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk --ignore-ancestry
TimeThis : Start Time : Mon Mar 02 10:23:01 2009
TimeThis : End Time : Mon Mar 02 10:26:02 2009
TimeThis : Elapsed Time : 00:03:00.937
=====
1.4.6
=====
1.4.6>C:\SVN\TSVN.1.4.6>timethis svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk
TimeThis : Command Line : svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk
TimeThis : Start Time : Mon Mar 02 10:34:32 2009
U src\TortoiseProc\RevisionGraph\RevisionGraphDlg.cpp
U src\TortoiseProc\RevisionGraph\RevisionGraphDlg.h
TimeThis : Command Line : svn merge -r 15456:15455
http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk
TimeThis : Start Time : Mon Mar 02 10:34:32 2009
TimeThis : End Time : Mon Mar 02 10:34:41 2009
TimeThis : Elapsed Time : 00:00:08.171
Paul
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1256875
Received on 2009-03-02 17:17:07 CET