Choosing GIT or SVN for a very small team [closed]
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this questionMy team literally consists of just myself and one or two other people. I mainly work on hobby projects and my website, and write about 1000 lines of code a week.
I want to start getting into version control systems but since the majority of my projects are worked on by myself, I didn't see much point. I recently registered a GITHub account and I have to say that I like it, and I think it's a bit easier to use than SVN (I haven't had any experience in SVN other than downloading repositories).
My only requirement is that I have to be able to have a web frontend for my repositories (like the one on GITHub). Nothing fancy, but I have to be able to see the files that are in the project and the changes done to specific files.
Unless the reasons are outstanding, I don't have a preference for GIT or SVN, other than the web front end. Taking the information that I have provided, which one would be better for me?
If you start using one of them now, definitely go with Git! I've used Subversion for some years before starting to use Git (and Mercurial) last year. I've since switched all Subversion repositories over to either Git or Mercurial. You don't want to go back!
The reason I use Mercurial for some projects is bitbucket.org, which allows you to have private repositories for free (Update: Now also git repos). Github.com does not give you private repositories, gitorious.org does but I've never tried that myself.
There are also great native UIs out there for both, most notably for Mac these are Murky and GitX (Update, better yet SourceTree (Mac App Store) for git and Mercurial or github's own Mac app), there are similar ones for Linux and Windows I assume.
For anything code, go ahead and use Git. It's always good to be able to go back to a previous version, and once you've got the hang of Git you'll love it.
Git and SVN are very different types of animals - Subversion has a centralized repository, whereas Git is a distributed system. A lot of proponents of either type of system have ill things to say about the other.
I think you'll find that for your needs both offer all the features you need, and more. Since you aren't yet indoctrinated in either of the source control paradigms, just pick the one you like better. Subversion is older and more mature system and has better tooling, but in my opinion source control systems are made to be used from command line anyway :)
If you're willing to license your software with an open-source license, Github is a great place to share your code, though, and the community there is vibrant. You could do worse than host your code there.
Martin Fowler has written a nice article comparing Git, Mercurial, and Subversion here - http://martinfowler.com/bliki/VersionControlTools.html. He discusses the advantages and disadvantages of both a centralised and distributed VCS.
I think from your perspective, if you are happy with github as a front end, and also the additional collaboration tools it provides, then stick with that.
I personally use Google Code and use SVN. But the reason is because I use Visual Studio and Windows. AnkhSVN and tortoisesvn work very well with SVN on Windows and Visual Studio.
As for GIT, if you're working in a Linux environment GIT is built in and works very well. GIT on windows (IMHO) is a little knunky compared to SVN, but on Linux, GIT is the best way to go.
In short:
Linux = GIT Windows = SVN BUT either way you'll be fine for small projects
Well, you have to consider that git support outside of Linux is kind of sketchy though it seems to be technically superior to SVN.
Also, are your projects Open-Source? GitHub is not free for closed-source projects.
精彩评论