[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:48:40 +0200

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.

Maybe we should just wait for Google to fix their bug?
Or maybe you have a better idea on how to work around the Google bug
and still make it work in this situation?

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=2773455
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2011-06-23 21:49:03 CEST

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