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: [URL]http://stackoverflow.com/a/875[/URL]
Am I wrong? Am I right? Is it unnecessary?
[editline]Sigh[/editline]
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.
[video=youtube;4XpnKHJAok8]http://www.youtube.com/watch?v=4XpnKHJAok8[/video]
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.
[QUOTE=Remscar;35775189]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.[/QUOTE]
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.
[QUOTE=Remscar;35775189]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.[/QUOTE]
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.
[QUOTE=wizardsbane;35776812]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.[/QUOTE]
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?)
[QUOTE=Remscar;35779273]So GIT stores all previous copies as well?
I still fail to see how its of use.[/QUOTE]
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.
[QUOTE=Banana Lord.;35786316]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?)[/QUOTE]
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.
[QUOTE=Banana Lord.;35793589]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[/QUOTE]
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 [url=http://hginit.com/00.html]SVN user's guide to Mercurial[/url]. Mercurial is a version control system that is conceptually similar to git, and all the same points apply.
[QUOTE=Jcw87;35797899]You should check out this [URL="http://hginit.com/00.html"]SVN user's guide to Mercurial[/URL]. Mercurial is a version control system that is conceptually similar to git, and all the same points apply.[/QUOTE]
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" ([URL]http://www.ericsink.com/entries/git_index.html[/URL]) 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.
[QUOTE=SB2DevTeam;35808164]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.[/QUOTE]
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.
In my opinion the choice should be left up to developers.
I originally started off using svn, because it really is easy to use - especially with a GUI like Tortoise. After a while I became uncomfortable with svn - also that I had seen devs like Big Bang not using svn. I tried using Git but it was really confusing coming from svn, and with no GUI. So I stopped and went back.
Almost 2 weeks ago I tried using Git again after not using svn for a while. Looked at a few tuts and I was set. It's really not hard and (imo) really is superior.
Also [url=http://git-scm.com/course/svn.html]this was pretty helpful for comparing Git cmds to svn's.[/url]
I personally switched over to Git when SVN shit the bed and pretty much wrecked my repository for the second time in a week because I had deleted a file without telling it I was going to. That was a year or two ago and I haven't looked back even once. (Git simply notices that the file is gone and says "oh, I see you deleted this file" at commit time. It even detects file renames! You don't have to interact with it at all during your normal workflow.)
The important distinction you have to see is that you don't have a repo on the internet and a pointless second one on your computer - you have a repo on your computer and a second one on the internet for backup and sharing.
You work on [I]your[/I] repository, then push your whole day's work to the backup one when you're done. That means the commit system is significantly different to SVN's. A SVN commit is throwing your work out to everyone on your team, whereas a Git commit is just you pressing ctrl-s.
This is also amazing for working in teams, because of how Git handles branches. If you give every team member working on something different their own branch, they can happily hack away at it, pushing regularly to the repo without affecting anyone else's work. When they're done, they use the quasi-sentient merge function to bring their work into the main trunk, and everyone else then uses it to update their branch to have access to it.
Even if you're not on a team, branches are handy. If you make a branch to work on when you're doing something big, you still have an untouched working 'release' version in the main branch to apply bugfixes/security updates to, all of which will also get applied to your work when you finish it and merge it in.
If non-intrusive filesystem management, better history checking, superior team abilities and godlike merge systems are still not enough to make you consider switching, you can get [url=https://bitbucket.org/]unlimited private Git repos for free[/url]. Good luck finding that kind of offer for SVN!
I don't think it'd be that difficult to switch over to Git if everyone uses GitHub. GitHub will let you SVN checkout things by prefixing the .git URL with SVN ([url]http://svn.github.com/user/repository/repository.git[/url]). You get all of the benefits of Git and your users never have to install any additional software.
Thats cool. I didnt know Git offered that! I will have to pass that on thanks.
[QUOTE=Lexic;35862879][url=https://bitbucket.org/]unlimited private Git repos for free[/url]. Good luck finding that kind of offer for SVN![/QUOTE] That plan only allows you 5 users. I can find far better ones for SVN, they aren't unlimited in number, but they have unlimited users.
What about github? Are there any limits there?
As far as I know, Github is pretty much unlimited for open source projects, but I wouldn't try storing models/materials up there. Closed source stuff requires lots of $$ though.
I'm starting a project soon and from what I see GIT seems better, Thanks. Can you start a private GIT server?
Yep. Anything you can connect to and that can run git can be used as a bare repo holder, though you generally have to do a lot of messing around to get it working.
I learned something new today about Git after googling some stuff.
Git does have full SVN support. You can checkout and even commit. You don't even need to change the address (before you had to add svn to the git url).
You just checkout your git page with svn, example [url]https://github.com/maddog986/Evolve[/url]
That will download a "trunk" folder and "branches" folder. The "trunk" is the master git page and the "branches" folder is all the branches.
I think i may start using git for everything now. People that dont like git can still use svn. So win-win for everyone.
Sorry, you need to Log In to post a reply to this thread.