DEV Community

Discussion on: What makes companies switch from SVN to Git?

Collapse
 
fpuffer profile image
Frank Puffer

Thanks for the detailed answer. You have made some very good points.

Getting source control right (be it subversion or git or whatever) is very important.

I have no doubt that it is important but as a developer I don't want to spend more time and effort on it than absolutely neccessary. It is more of an infrastructure thing. It is also important that someone keeps the servers running and that someone cleans the toilets at the office. Most developers are probably more interested learning a new programming language, framework or some other development technique than learning another VCS.

Subversion is much better these days then when Git came around but there's value in the "distributed" part of source control.

This value of being distributed is something I don't really understand. It sure makes sense in the open source world. But in professional software development with teams of 2 to 20 developers working closely together, it is important to make your code available for other team members as soon as possible instead of keeping it in your local repository. I know you can work with Git in a centralized way but in this case you don't really need a distributed VCS. Being able to work offline is no big deal anymore and will probably be even less important in the future.

Collapse
 
rhymes profile image
rhymes

Most developers are probably more interested learning a new programming language, framework or some other development technique than learning another VCS

Sure, and I understand your earlier point about "infrastructure thing" but Git has been around since 2005, I wouldn't call it "another VCS". It's likely the de facto standard.

Should it be better? Yes

Is it the user's fault if they don't get it? Not at all. Judging from the popularity of git tutorials even on dev.to, is pretty obvious that it's a complicated tool and it should be better. As I said, I don't get it 100% either.

Should you learn its main features nonetheless? Yeah.

Is it a fair world? Nope :D

This value of being distributed is something I don't really understand. It sure makes sense in the open source world. But in professional software development with teams of 2 to 20 developers working closely together, it is important to make your code available for other team members as soon as possible instead of keeping it in your local repository

I wouldn't separate open source from "professional software development" but that's an entirely different conversation :D

I agree with you that most teams use Git as it were a centralized repo but this doesn't remove the advantages of the "distributed" part of source control:

  • there is value in having a complete copy of the repository at all times
  • there is value in being able to commit to your own copy and then sync to the designated main repository

There's also the fact that branching and merging tends to be better with distributed source control. I have many non fond memories of Subversion's problems with merging and file locking and we were around 10 devs. I'm perfectly fine if we don't go back :-)

Subversion was perfectly fine for the team, until it wasn't. Git is probably over-engineered for many teams, until things start going really south.

Maybe the biggest advantage of DVCS isn't the "offline thing" but the fact they enable any sort of branching model which can be modeled on top of any company's structure.

I think the way forward should be better tooling on top of a DVCS.