Should we all move away from Subversion

I find that the Garry’s Mod development community is being fundamentally hindered by the prevalent support of the Subversion SCM protocol. This is a community full of people who want to contribute, but cannot do so as easily as another system (say git) due to the centralised aspect that Subversion is based around. We need a decentralised system to fully experience the cooperative potential of this community. I’m personally in favour of git if we are to shift.

This thought was spurred when Falco requested that people post actual critiques of DarkRP, which he then fixed. Falco’s admission that he doesn’t have the time to refactor all of DarkRP was an added splinter in my brain. With our sort of community, this sort of thing is pathetically unnecessary. This convoluted, time-consuming, and overall counter-productive process is due to a lack of real branching/merging support in SVN that comes with SVN’s focus on centralised code repositories. This shortcoming is not appropriate for a community such as this.

A nice summation of the positives of both systems I experienced during my personal usage of both protocols:

Am I wrong? Am I right? Is it unnecessary?

Just to clarify: this is not supposed to be a push for a forceful conversion. Just a push for people to consider switching over because it would do the community good.

I prefer SVN.

I don’t really get what the actual difference is, it’s like git is just using other words for what svn can do. As if svn is the same as git if you just pretend svn to be git.

I was in favor of git before because it had 1 .git folder, but now that the subversion puts all the .svn folders in 1 folder, that’s not a problem anymore.

There’s also tortoise svn which is a lot more user friendly than most of the git and svn clients, however there’s the tortoise git port which is pretty easy to both install and easy to use.

I’ve used git sometimes (mostly just cloning), but I don’t really feel that git is so much better than svn that i need to move my projects to it asap.

heres Linus Torvalds explaining to google audience about his Git system..

I don’t see the use of GIT. It seems exactly like SVN however except you have a local repository aswell, which seems stupid and pointless. Why does each developer need their own repository, they should just use the same and commit/update from it.

The difference is, with git anyone can easily make branches of your mod and request pulls.
With SVN, you have to do all that by hand.

@Remscar: SVN also keeps a local copy of everything. It just doesn’t use it for anything. Which is even more stupid and pointless.

Linus Torvalds say that some programmers are dumb and stupid. but if one does a good job, he could tell others to look on his code.

So, you don’t like the idea of having past revisions of your repository and branches right there on your hard drive without being connected to the main repository? The decentralised structure in git is fully utilised and has a point, I assure you. Everything you can do with SVN, git can do locally as well. This is a huge amount of control if you think about it.

So GIT stores all previous copies as well?

I still fail to see how its of use.

While I like to think I know what I’m doing with computers, I’ve personally always found GIT to be much more complicated than SVN - but then again I’ve never really messed with GIT (well I tried but gave up), but I found right clicking and pasting the link to be easier (unless GIT is like that too?)

If your internet goes down you can still commit updates.
If you’re going on a vacation where there’s no internet connection you can still work.

You can commit smaller updates, and when you’ve accumulated a larger batch you can push it online, instead of committing every single tiny change.

If you use TortoiseGIT, it is.

Git has been a god send for me. For Tiramisu I converted from SVN to Git and I swear I’m never coming back. Something that often happened to me was that I commited a change to the main repo, and it had a bug somewhere so fucked up that I had to revert a couple versions back, but only for one file. With SVN, that was NIGH impossible. With Git (even better, TortoiseGit, or even online with GitHub) I can just check on the change history of that particular file, and compare the deltas to see what exactly changed on that file on which repo of which day. No coder in the world is so good he or she can’t make mistakes. Another thing I for example did recently with Git that I can’t do with SVN, I have to the conversion to GMod 13, but I don’t want to change what is already on the main branch (Most downloads come from there), so I just make a sub branch, commit to that, it’s STILL visible in github, yet you won’t download it by accident and it’s faster than having to make a whole new repo just for that.

you can look at commit history/file changes in SVN too (depending on where you get it from)

and SVN has branches, how is that different from GIT branches

You can revert single files in SVN too, right click on file you want to revert, click show log, pick a revision, right click and hit revert to this revision or revert changes in this revision.

My point on branches had to do with git’s branching bring a piece of the core of git usage, and is therefore more supported than SVN’s optional implementation, and it was a badly-included support for just how easy it is for anyone to fork, branch, and finally contribute to a project as opposed to how difficult it is to contribute to projects using SVN.

You should check out this SVN user’s guide to Mercurial. Mercurial is a version control system that is conceptually similar to git, and all the same points apply.

You’re sort of correct if you’re just plainly saying that all points mentioned apply.

For one, Mercurial does not deal in file content changes, but actual file changes (again, like SVN). This is a point in git’s favour, just because of how much revision control that really gives you and how efficient this ends of being when you need to finally commit your changes.

And another point is just that git provides users with much more power and control over their stuff. It’s almost like the “C of Version Control Tools” ( in a way.

However, I feel like you are moving in the right direction. Maybe, for this particular community, an easier but still similar tool would be helpful in achieving the sort of increase in development I’m advocating.

It can’t be ignored that git is well-ahead of Mercurial in terms of popularity, so it might be worth just pushing a more difficult thing to learn for the sake of a greater amount of tools and greater support.

In the end, I’m just someone making a case and defending it. It’s the community’s decision.

In the end does it really matter what people use?

Devs should just use what they prefer, it being git, svn, mercurial. It’s pointless to try and get everyone to change just because (some) people prefer something else.

You’re correct, but it’s a bit irrelevant to the point I’m trying to make. My point isn’t “do what I do, because I like it”, but my point is that git (and probably mercurial) will allow the Garry’s Mod development community to be more actively creative. SVN stunts the growth of projects by making it a bitch for outsiders to join projects and contribute changes easily and quickly. Along with some kick-ass features, git and mercurial would solve this problem.

I’m giving git a try with some addons. I must say the first setup was a complete pain in the ass! I don’t see many people setting it up really quick.

But i look forward to see if anyone actually uses the branch features.