Is there a way to recover from an accidental "svn revert"?

Jeremy Friesner picture Jeremy Friesner · Oct 5, 2009 · Viewed 54.7k times · Source

I managed to shoot myself in the foot this morning by doing the following:

  1. Started working on a change to my project
  2. Made a bunch of edits to a bunch of files
  3. Realized that my approach was all wrong, and that I needed to start over
  4. cd'd to the top level of my project and did a "svn --recursive revert ." to restore my local sandbox to its pre-changes state.
  5. Howled in horror as I realized that there had been a number of other changes outstanding in my local sandbox, and I had just obliterated all of them. (the svn server had been down last Friday so I hadn't been able to check them in, and I had forgot about them over the weekend)

Fortunately in this case I had done an "svn diff > temp.txt" before leaving work on Friday, and the temp.txt file was still on my hard drive, so I was able to feed that file into "patch" and recover my lost changes.

But for my future reference (i.e. the next time I make the same dumb mistake)... is there any way to tell svn to undo an "svn revert"? Does svn keep a backup of the local/not-checked-in diffs anywhere?

Answer

shto picture shto · Dec 16, 2009

There is a solution... go to your recycle bin you'll find there the latest version of the deleted file. Tortoise "throwing" to the recycle bin every file that it revert.