2

During an office move our SVN server got damaged and our administrators didn't think to backup the repositories regardless of the move. It turns out that it might be as long as two weeks before we have our SVN server repaired (some specialized storage device with proprietary RAID needs to be sent back to the vendor), but in the mean time we need to do some collaborated development and our combined SVN knowledge is somewhat limited.

The best case scenario for us would obviously be that we create a new repository from one of our sandboxes and when the our server is functional again, merge the two in such a way that it would be like the server never went down. Is this possible and if so, how do we accomplish this? If this is not doable, what are some options we have?

Filip De Vos
  • 11,568
  • 1
  • 48
  • 60
Sanjeev
  • 1,517
  • 1
  • 18
  • 30
  • I would just code away. When SVN is up and running again, do a full checkout of the latest to a new folder, overwrite your freshly checked out files with the local files you've been working on, then do a merge back. It'll detect what's been changed. To SVN, it's no different than if you had been doing your work in files that had originally come from a checkout. I wouldn't recommend trying to retroactively try to tell your recovered SVN repository that the temporary environment you're working in is to be interpreted as a branch of current. – Alain May 09 '12 at 16:29
  • We considered doing this; the only issue with doing this is that all changes from now 'til the SVN is up would be crunched into a single commit, but this might be the best option we have left since losing a few weeks of history is better than losing the entire history of the project. Thanks for the reply. – Sanjeev May 09 '12 at 17:25
  • I definitely see where you're coming from. It'd be nice to be able to maintain some facsimile of ChangeSets while you wait. – Alain May 09 '12 at 17:29

1 Answers1

1

I would use git as temporary source control system.

The following steps could work:

  • Use git in a normal way while your svn server is offline (guide)
  • When your server is back use git svn fetch to pull in your svn repo. more info
  • Then git rebase the git commits you did on top of the svn branch in your git repository.
  • then push back to the svn server with git svn dcommit

Note that git svn does not support svn:externals

Community
  • 1
  • 1
Filip De Vos
  • 11,568
  • 1
  • 48
  • 60