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

Re: default of tag operation is HEAD revision of repository ?

From: Dave Lawrence <dlawrence_at_ad-holdings.co.uk>
Date: Thu, 19 Jun 2008 12:16:54 +0100

Stefan Küng wrote:
> Simon Large wrote:
>
>> First to clear up some confusion, copy-from-WC is not the same as
>> copy-from-WC-rev.
>>
>> When you use the 'create branch from WC' the branch contains your
>> exact WC state, local mods and all. It's not a pure server-side copy.
>> Mostly you don't want to do that.
>>
>> When you 'create branch from HEAD' the branch is created from what the
>> server knows as HEAD, which may be different from what you can see in
>> your WC if someone else committed after you last looked. That is also
>> potentially incorrect.
>>
>> What you normally want is to create a branch from the revision your WC
>> is updated to, so you know exactly which rev it is based on before you
>> commit, and that's what Stefan's thread is doing.
>>
>> As far as the worry about race conditions and the TSVN changing things
>> while you are not paying attention, I like Todd's suggestion. Start
>> out with none of the radio buttons checked. When the crawler thread
>> completes it can fill out the specific revision box, assuming the user
>> has not focussed on that box, fill in the rev and select that radio
>> button. If the user sets focus on the rev box or selects any radio
>> button then stop the thread.
>
> The radio button is on HEAD when the dialog starts.
> if the user *really* doesn't change one single thing in that dialog and
> clicks "ok" to tag, the only race condition would be if the thread
> changes the options from HEAD to revision-where-WC-was-last-updated-to.
>
> If nobody did a commit in the meantime, that's not really a race
> condition because it will be the very same.
>
> If however someone else made a commit in between, the changed option
> from HEAD to revision-where-WC-was-last-updated-to will even benefit the
> user.
>
>> If that is still too much magic, then a separate button to check the
>> WC revision and fill in the rev box would be another solution.
>>
>> BTW, what happens if the thread detects a mixed rev WC on its crawl,
>> or local modifications? Should there be a warning about that? Maybe if
>> the crawl is initiated by button there could be a warning dialog, or
>> just a yellow triangle like there is for externals in the commit
>> dialog.
>
> Define "mixed rev WC" please. Almost every file has a different revision
> (the 'last committed rev'), unless you've changed every single file in
> your working copy for the last commit.

Every object has
1) A revision
2) A last committed revision

Where item (1) is not consistent throughout the w/c that's mixed revs,
if I understand correctly. Even if a file's "revision" changes without
it's "last commit revision" being changed (eg using update to revision
on a single file) the w/c is still considered "mixed". I've noticed
that if you tag from the w/c with mixed revisions then any object that
doesn't have the same rev as it's parent is shown in the log as having
been "replaced" (when you show log on the tag).

>
> For local modifications, a warning is shown if the radio button is still
> on HEAD when the thread finishes.

If I've just committed a file at rev 1200, but not performed an update,
then IMO it's not correct to assume that tagging the w/c is the same as
tagging from rev 1200 as some of my files may be out of date relative to
rev 1200.
>
> Stefan
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_tortoisesvn.tigris.org
For additional commands, e-mail: users-help_at_tortoisesvn.tigris.org
Received on 2008-06-19 13:17:20 CEST

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