Lets say you’re humming along one day and you realize, oh crap, one piece of hardware or network infrastructure related to my source control system goes down, what does that mean to me?
- You’re on Git — You can still view history, merge, branch, checkout, checkin and sync with your peers for items you are working on together, only remote origin is down.
- You’re on SVN — You cannot view history, merge, branch, checkout, checkin or sync, but you can at least still work on whatever local copies you have and they will commit without any more hassle than usual once your SVN server comes back online.
- You’re on TFS — Go home. Visual Studio won’t let you edit files unless it can talk to TFS, and God help you if you try having 20 people work on those files directly on the file system and try to commit them later; without an accord being signed between Visual Studio and TFS it will likely be treated as an act of war.
Oh snap, server is totally dead, now what?
- You’re on Git — No big deal, someone just copies their repo to a new location, everyone repoints their repo to it and everyone goes on merrily.
- You’re on SVN — Hope we have a backup, otherwise, damn, we lost all of our history and we can only recover whatever someone had checked out at the time. This is going to take a while to sort out.
- You’re on TFS — If you don’t have a backup, at least you have eachother.