Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SVN Version Rollback Question

Tags:

svn

revision

I'm using SVN (TortoiseSVN) and often came into the following situation:

I wanted to discard any changes since a specific (old) revision and turn all files back to this specific (old) version. Then I wanted to work further as if this specific (old) revision was the newest one, i.e. I wanted to be able to commit the specific old revision as a new revision.

I found several solutions for this problem (for example stackoverflow.com/questions/402159/roll-back-or-revert-entire-svn-repository-to-an-older-revision or rustyrazorblade.com/2007/04/how-to-roll-back-commits-to-an-earlier-version-of-a-repository-in-svn/).

However, I wonder if there is a simple way to roll back to a specific revision. I thought version control is just good for such things (or am I misunderstanding something?).

Is there a simple command/button/etc. that takes an updates my local repository to an old revision and declares it to be the newest one?

Since I suppose that there is no "built-in" function to do this, I wanted to know what reason lead the developers to the decision not to integrate this feature. Does anybody know this?

like image 954
phimuemue Avatar asked Mar 19 '10 13:03

phimuemue


2 Answers

For whatever reason, the SVN folk decided to refer to this as a "Reverse Merge." In the TortoiseSVN Merge dialog, check the Reverse Merge box, and make sure the revisions box reads something like HEAD-324 (where 324 is the version you're going back to).

like image 71
Powerlord Avatar answered Oct 30 '22 18:10

Powerlord


In TortoiseSVN there is an easier (or at least more intuitive IMHO) way to do this. I assume that what it's actually doing behind the scenes is the "reverse merge" that others mentioned.

  1. Right-click on the file/folder you want to roll back.
  2. Click "Show log" from the TortoiseSVN menu.
  3. Select the revision(s) you want to undo.
  4. Right-click on those revisions.
  5. Select "Revert changes from this revision" -- not to be confused with "Revert to this revision"!
  6. Click "Yes"
  7. Remember that this only changes your working copy. Confirm that this did what you expected it to do, and then commit, putting something in your log message about "rolling back" or "reverse merging"
like image 33
Tyler Avatar answered Oct 30 '22 16:10

Tyler