[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: stop-on-copy and log cache problem

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Thu, 23 Jun 2011 21:50:51 +0200

On Thu, Jun 23, 2011 at 21:48, Stefan Küng <tortoisesvn_at_gmail.com> wrote:
> On Sat, Jun 18, 2011 at 15:32, Stefan Fuhrmann
> <stefanfuhrmann_at_alice-dsl.de> wrote:
>> On 16.06.2011 22:05, Stefan Küng wrote:
>>>
>>> This one is for Stefan^2:
>>>
>>> * show the log for the 1.6.x branch of TSVN, in the log dialog check the
>>> box "stop on copy/rename", close the dialog
>>> * clear the log cache (settings dialog, saved data)
>>> * show the log for the 1.6.x branch of TSVN again, click on "Next XXX"
>>> until the branch creation is found (r15693)
>>
>> This is exactly the problem: Google does not report r1569*2*,
>> which would be the right branch creation revision.
>>>
>>> * uncheck the box "stop on copy/rename"
>>>
>>> now click on the "Next XXX" button as many times as you like: the log
>>> won't get fetched beyond the copy/rename anymore, even though the checkbox
>>> isn't checked.
>>>
>>> In CacheLogQuery.cpp:1000:
>>> iterator->GetRevision() returns 0, even though the iterator is an
>>> CCopyFollowingLogIterator and we're not at rev 0 yet.
>>
>> Since the copy operation never showed up, the cache assumed
>> that everything before that could be skipped in later requests.
>> Hence, it arrives at revision 0 in a single iteration.
>>>
>>> Not sure what's the best way to fix this, so I leave this to you :)
>>
>> Fixed in r21587.
>>
>> I simply removed the code that would store the final "skip range".
>> That will only hurt performance if the initial add / copy operation
>> cannot be found. Even with GoogleCode, the next log request
>> will fetch the initial add (plus more revs on the /trunk) and subsequent
>> calls will nicely terminate at the proper branch creation rev.
>
> This causes another problem:
> * right-click on a branch working copy (i.e., the 1.6.x branch of
> TSVN), select "Merge".
> * merge range of revision, next.
> * enter url of trunk, click "show log" to select the revisions to merge
>
> now the log dialog hangs - there's an endless loop now since you
> removed the code to store the final skip range.
>
> I'll revert your change for now, because that problem is very annoying
> for me: I'm currently doing a lot of merges at work and without being
> able to select the revisions I always have to open up another log
> dialog manually.

Note: reverted in r21606.

Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2773457
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2011-06-23 21:51:18 CEST

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.