Difference between revisions of "Undoing-a-commit"

From BRL-CAD
(New page: Sometimes one may inadvertently commit a change that was not intended. For example: $ svn ci test_vls.c ... revision: 9999 We want to "uncommit" the change. But if we don't want to los...)
 
(show shorthand use of the dot for URL, add a correct svn response to 'svn ci')
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Sometimes one may inadvertently commit a change that was not intended.  For example:
+
= Undoing an svn commit =
  
$ svn ci test_vls.c
+
Sometimes one may inadvertently commit a change that was not intended or need to revert a change made by someone else because it breaks functionality. For example:
... revision: 9999
 
  
We want to "uncommit" the changeBut if we don't want to lose the changes we made, we either need to copy the changed file(s) to an unversioned directory or save the differences before we commit the
+
$ svn ci test_vls.c
First get the URL of the trunk:
+
Sending        test_vls.c
 +
  Transmitting file data .
 +
Committed revision 9999.
  
$ svn info
+
We want to "uncommit" the change. If we don't want to lose the changes we just committed, no worries. We can copy those file(s) to an unversioned directory '''before''' we do the merge steps below or extract  those changes at any point in the future with the "svn diff" command. Stash the changed file(s) if desired.
...https://brlcad.sf.net/brlcad/trunk
 
  
Do the merge:
+
Do the merge (note the dot):
  
$ svn svn merge -r9999:9998 https://brlcad.sf.net/brlcad/trunk
+
$ svn svn merge -r9999:9998 '''.'''
 +
U  test_vls.c
  
Check that the trunk has changed to the state before the bad commit:
 
  
$ svn diff
+
That just "merged" the commits from revision 9999 to 9998, which effectively "undoes" 9999.  Check that your trunk checkout has changed back to the state before the bad commit:
  
httpshttps://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk
+
$ svn diff
  svn commit -m"undoing bad commit rev 50643"
+
...
 +
 
 +
Save the diffs if desired.
 +
 
 +
Commit the change ('''caution''': this will undo local changes that were originally committed!):
 +
 
 +
  $ svn commit -m "Reverting r9999 because ..."
 +
Sending        test_vls.c
 +
Transmitting file data .
 +
Committed revision 10000.

Latest revision as of 07:01, 26 May 2012

Undoing an svn commit[edit]

Sometimes one may inadvertently commit a change that was not intended or need to revert a change made by someone else because it breaks functionality. For example:

$ svn ci test_vls.c
Sending        test_vls.c
Transmitting file data .
Committed revision 9999.

We want to "uncommit" the change. If we don't want to lose the changes we just committed, no worries. We can copy those file(s) to an unversioned directory before we do the merge steps below or extract those changes at any point in the future with the "svn diff" command. Stash the changed file(s) if desired.

Do the merge (note the dot):

$ svn svn merge -r9999:9998 .
U  test_vls.c


That just "merged" the commits from revision 9999 to 9998, which effectively "undoes" 9999. Check that your trunk checkout has changed back to the state before the bad commit:

$ svn diff
...

Save the diffs if desired.

Commit the change (caution: this will undo local changes that were originally committed!):

$ svn commit -m "Reverting r9999 because ..."
Sending        test_vls.c
Transmitting file data .
Committed revision 10000.