@virtualandy's written an excellent starting Gist at https://gist.github.com/3725230.
It relates to Issue #1 from @devnulled.
Git-ing away from SVN
If you like using Subversion, that's awesome. We won't fault you for it (a lot). If SVN isn't enough and you'd like to migrate to Git, we want to help you through it.
Maybe this starts with a few questions at work. Change is hard, even in software, and Git usually causes enough consternation that a few typical questions arise. We'll try to answer those, too.
Why switch
Also known as "What's the justification", the "Why" question is common in a well established team. You're already using something - maybe it works but gets corrupted every once in a while, or is hard to administer - and introducing Git is feared because the folks in charge are afraid it's only going to get worse. And someone has to appease the folks writing the checks, too.
We've seen this phrased the following ways (if you have any additional examples, submit a pull request).
Please provide justifications for the [using Git] (e.g. We should use XXX because..., and XXX is better than the others because ...)
Let's ask Git itself:
The Git feature that really makes it stand apart from nearly every other SCM out there is its branching model.
Git allows and encourages you to have multiple local branches that can be entirely independent of each other. The creation, merging, and deletion of those lines of development takes seconds.
In practical terms, branching may give your developers a stronger feeling of freedom. Create a branch, blow it away, merge it into master with the world's greatest feature, or submit a simple bug fix. It can all be done with branches and it's only a few clicks and key presses away. And you don't have to worry about being out of sync with the one golden master.
Notably, when you push to a remote repository, you do not have to push all of your branches. You can choose to share just one of your branches, a few of them, or all of them. This tends to free people to try new ideas without worrying about having to plan how and when they are going to merge it in or share it with others.
Git can 'free people' to be more productive, to experiment, to solve more problems. We like the sound of that.
MOAR Justifications
- Git is small and fast.
- Distributed version controls gives you lots of alternatives and workflow options. Not to mention multiple repositories, in case hard drives get lost or corrupted. Even though we all know that never happens.
- Free as in free. [Git uses a GPLv2 license], which gives you lots of options. And plenty of freedom. There are free to read books such as Pro Git, a massively popular and wonderful hosting solution in Github, tons of great resources and documentation and even free tools for using or hosting Git yourself.
-
Suggested workflows for use to use in the new system. (e.g. Managing multiple projects, managing and using common and third party libraries, and test data, simultaneously managing different development environments (Eclipse, Netbeans, Ant, etc), bringing code into classified environments, etc.
Possible systems to evaluate:
Git
Mercurial
Bazaar
Monotone
SVN (Must include how to ensure corruptions don’t happen; not just an early detection mechanism)
CVS
Perforce
ClearCase
Others….
References
Internal Hosting
We all wish we could use Github. If you're behind a firewall or in a restrictive environment, though, the public Internet site may not work.
Thankfully, Github offers an enterprise version that gives you the best of both worlds.
Here's a few other options:
Github the best place to share code with friends, co-workers, classmates, and complete strangers.