You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by glists <gl...@greywether.com> on 2004/05/22 06:10:30 UTC

Tagging Discontiguous Commits

I've got a new repository that has a set of commits.

There's a trunk that represents the "development" branch of the project it
always has *all* the latest changes from all developers.

We take snapshots off that trunk that represent various releases.

For our "production" release I need to take a snapshot that contains commits
0-16 and 18.  I need to skip commit 17 as it contains a commit for a feature
that should not be reflected in our release.

I've tried to do this as a tag but can't get 0-16 and 18 without also
getting 17.

I've tried to do this by "checkout -r 16" and then doing an "update -r 18"
but commit 17 comes down with the update along with 18.

"-r 18" seems to be interpreted as: "every commit up to and including commit
18" which is fair enough.  But what I can't seem to do is something like "-r
18:18" (implying I only want 18) or even better would be something like:
"checkout -r 0:16,18".

Is there a way to do this?  I'm new to Subversion so I'm hoping I'm just
missing something easy.

Thanks!

- Gary



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Tagging Discontiguous Commits

Posted by Ben Collins-Sussman <su...@collab.net>.
On Sat, 2004-05-22 at 01:10, glists wrote:

> Is there a way to do this?  I'm new to Subversion so I'm hoping I'm just
> missing something easy.

Others have already explained two different ways to use 'svn merge' to
create what you want, but I want to point out the conceptual confusion
here over the use of your word "tag".

A "tag" is a snapshot of tree which exists in the repository.  The thing
you want to tag -- that is, revision 18 without the r17 change -- *does
not exist*.  It's not in the repository anywhere;  it's just in your
imagination.  So the advice people have given you have all been ways to
create the tree, so that you can snapshot it.

But really, I would call this a "branch", because the tree you're
creating is different than trunk.  You're creating a different line of
development.  I would have copied r18 of /trunk to /branches/blah, then
checked out a working copy of blah, then used 'svn merge' to remove the
r17 change, then commit.  Then /branches/blah would be exactly the tree
you want, a divergent branch of /trunk.  Then I would have just copied
/branches/blah to /tags/finaltag.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Tagging Discontiguous Commits

Posted by Michael W Thelen <th...@cs.utah.edu>.
* glists <gl...@greywether.com> [2004-05-22 00:10]:
> For our "production" release I need to take a snapshot that contains commits
> 0-16 and 18.  I need to skip commit 17 as it contains a commit for a feature
> that should not be reflected in our release.

You can use svn merge for undoing changes in this way.  In your case,
you should update to revision 18, then run something like this:

svn merge -r17:16 URL

where URL is the location of your repository.  This will apply revision
17 in reverse, effectively undoing revision 17 in your working copy.
See this section of the Subversion book for more details:

http://svnbook.red-bean.com/svnbook/ch04s04.html#svn-ch-4-sect-4.2

-- Mike

-- 
Michael W. Thelen
One should always play fairly when one has the winning cards.
                -- Oscar Wilde

RE: Tagging Discontiguous Commits

Posted by Brice Dardel <bd...@plexsci.com>.
Gary,

Update your current working copy to rev 16.

Then use svn merge to apply the changes that occurred from rev 17 to rev 18
to your working copy.

Hope that helps,

Brice.


-----Original Message-----
From: glists [mailto:glists@greywether.com] 
Sent: Saturday, May 22, 2004 1:11
To: users@subversion.tigris.org
Subject: Tagging Discontiguous Commits

I've got a new repository that has a set of commits.

There's a trunk that represents the "development" branch of the project it
always has *all* the latest changes from all developers.

We take snapshots off that trunk that represent various releases.

For our "production" release I need to take a snapshot that contains commits
0-16 and 18.  I need to skip commit 17 as it contains a commit for a feature
that should not be reflected in our release.

I've tried to do this as a tag but can't get 0-16 and 18 without also
getting 17.

I've tried to do this by "checkout -r 16" and then doing an "update -r 18"
but commit 17 comes down with the update along with 18.

"-r 18" seems to be interpreted as: "every commit up to and including commit
18" which is fair enough.  But what I can't seem to do is something like "-r
18:18" (implying I only want 18) or even better would be something like:
"checkout -r 0:16,18".

Is there a way to do this?  I'm new to Subversion so I'm hoping I'm just
missing something easy.

Thanks!

- Gary



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org