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

Re: [TSVN] Re: Shelving

From: Mark Phippard <MarkP_at_softlanding.com>
Date: 2005-08-03 16:19:36 CEST

Simon Large <simon@skirridsystems.co.uk> wrote on 08/03/2005 10:06:13 AM:

> Mark Phippard wrote:
> > That is basically what the action does already. As you pointed out,
you
> > do not need to Switch Back because you never left it. However, if
there
> > were a true "Shelve" option it would probably follow the branch with
an
> > automatic Revert, which would put the WC fully back in "trunk mode".
One
> > problem I thought of with Revert, and therefore this process, is that
> > Revert will not remove any new local files. It will only remove the
> > scheduled add.
>
> Ah, I see what you are getting at now. You apply a patch to trunk, copy
> it to a branch and then revert your WC to clean trunk again. I am not
> completely convinced of the usefulness of this. On the new branch you
> can see trunk with the patch applied, but it is not so easy to get a
> visual diff. For TSVN users, just posting the patch should be good
> enough because anyone can use TMerge to see what it looks like on their
> own WC.
>
> To be more useful you would need to copy clean trunk to the new branch,
> switch to the branch, apply the patch and commit, then switch back
> again. That way the new branch shows the before and after states of the
> patch. Or am I missing something about the way copy WC to branch works?

Let me explain the way I use this, (which I think is the classic shelve
use-case). I have a WC from trunk and I am working on a change, maybe it
gets bigger than I thought it would be, or becomes more controversial, or
maybe I just get a more pressing assignment. I want to set the work aside
so I create a branch for it in the repository. I do this by creating the
branch from my WC. This creates the branch from trunk, and also commits
my changes to the branch all in one step. When this action completes, my
WC is still on trunk, and all of the local mods are still considered local
mods. So I have to do a Revert to get myself back on trunk. Typically I
would follow the Revert with an update, and I would move on to the next
change. When I need to go back to my "shelf" at this point is just like
any other branch. In my case, I would typically take a WC that was on
trunk and merge the changes from the branch back to the WC, but I might
also use switch to work on the branch for a while.

The only real problems in this scenario are:

1) It is at least 2 steps.

2) If new files were created, then Revert has to be manually cleaned up
to remove the new files.

3) Maybe I do not use this feature as much as I think, because as I write
this, it seems like the merge would be kind of difficult to do. Since the
shelf was created in one transaction that created the branch and committed
the change, you cannot use the simple use-case of just merging the changes
that occurred on the branch. It seems like that would give a problem due
to the branch creation. So I think you would have to do a merge where you
compared the branch with trunk at the revision the branch was created.

Mark

_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. by IBM Email Security Management Services powered by MessageLabs.
_____________________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Wed Aug 3 16:22:29 2005

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