On Jan 23, 2006, at 20:52, Res Pons wrote:
> A developer inadvertently checked in code into our latest release-
> branch. Good thing, I had tagged that branch upon release.
>
> So I do a diff between the latest (HEAD) of the branch vs. the tag
> and I see about 100 changes that need to roll back. What is the
> most efficient way of handling this in one fell swoop as opposed to
> per file & item by item rollback?
The book discusses how to undo changes:
http://svnbook.red-bean.com/en/1.1/ch04s04.html#svn-ch-4-sect-4.2
You could simply get a working copy of the branch, then do a merge to
undo all the changes between the tag and the branch (if you really
want to undo all changes anyone made there...):
cd /path/to/wc/of/release-branch
svn merge url://to/repo/project/branches/release-branch url://to/repo/
project/tags/release-tag
# test, test, test
svn commit
> I thought I could (or could I?) copy the entire tag back onto the
> branch and commit it?
I don't think that'll work so well. You could "svn rm" the branch and
then "svn cp" the tag back in its place, but it just feels a bit
messy. If anyone looks at the history, they'll see that the thing was
copied to tags, then to branches. They also won't see the history of
those 100 erroneous edits -- perhaps you'd like to keep that history
easily available? Of course the history is available regardless, just
if you delete the branch where they occurred, you'll later have to
use a peg-revision to refer back to this time period to see the
history, which can be cumbersome.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Jan 23 21:09:51 2006