top | item 13397416

(no title)

Locke1689 | 9 years ago

I don't agree.

Before we moved to Git, Roslyn was on TFS, which was basically Perforce/CVS/SVN.

You're absolutely right that the distinction among the former VCS's is minimal. However, Git offers value that was transformative compared to the former. Namely,

  1. Git allows you to easily switch between multiple work items while keeping track of the work done in each item.

  2. Git allows you to easily integrate with people who have significantly diverged clones of your tree without too much trouble.

  3. Git allows you to easily work offline.
(1) is definitely the largest benefit, but was mitigated with tools like g5 when I was at Google. However, the Google gravity well has its own drawbacks.

(2) is very important if you want to host rapid release schedules with divergence of features. It's especially useful if you want to have long stabilization periods and low-risk bug fixes delivered in parallel to multiple customers.

(3) is pretty self-explanatory, but for most people it's underestimated how much downtime your VCS has. I'd bet, for most people, it's significantly less than 5 9's. Not only is that wasted time, it's frustrating because it's usually consecutive and removes entire working days at random.

discuss

order

saurik|9 years ago

I take it you haven't actually used the tool that was mentioned in the comment you replied to, namely git-svn? My use of svn to interface with projects using Subversion has essentially entirely been replaced by git-svn, and I can say it is essentially impossible for someone who has used it to not realize that at least offline now works like git. Taking a step back: at some point what you run on the server is just a storage format; unless you used some of the more advanced Subversion features (at which point you might actually like using it), it generally maps pretty directly to git semantics, at which point essentially all other functionality differences are mere porcelain.

lomnakkus|9 years ago

Presumably not everyone is using git-svn... otherwise what would be the point of sticking with svn?