Home
| Calendar
| Mail Lists
| List Archives
| Desktop SIG
| Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings Linux Cafe | Meeting Notes | Linux Links | Bling | About BLU |
On 11/09/2010 03:32 PM, Jerry Feldman wrote: > Our office has been adding some new developers, and I've been asked to > set up GIT. Fortunately our company supports GIT, but the R&D main > source control system is CVS. I'm looking for some rational discussion > from developers who have used both GIT and either CVS or SVN. Linus has > standardized on GIT for kernel development. > > There is a conceptual shift when using GIT vs. the traditional > centralized repository approach using CVS. I haven't used Git a lot, but when I did I was pretty impressed. It's not trivial to re-learn how to do version control though, which can make it somewhat of a barrier for people used to CVS/SVN. SVN is a no-brainer drop-in for CVS. The only real changes are unlearning the horrible hacks that CVS trained people to do because of it's serious flaws (directories aren't versioned, moving/renaming files is best left to experts, grouping a bunch of files as a single commit, etc). You don't necessarily give up any power with Git, but it definitely takes some getting used to. For instance, with SVN, when we'd use a lot of branching, the group would typically leave it up to one person to do merges (a merge-master as it were). This kept the overhead down in terms of training people on how to do merges properly. With Git, everyone has to be proficient in doing merges, since that is the primary activity you'll be doing with your repos. Which isn't a bad thing in the long run. The good news is Git offers much better tools for doing the merges. SVN's support for merges historically sucked; it kept track of NOTHING for you, so you had to rely on convention (hence the 'merge-master'). Supposedly it's much better in svn-1.6+, but I haven't had a large project that I've been able to migrate the server-side over to 1.6 in order to really try it out. Git is great for traveling and impromptu integration meetings. SVN was a step up from CVS when the central server wasn't available, in that you could always revert back to the last checked-out version without any network access. With Git, you can make incremental commits locally, and share them with local people, all without phoning home. HTH, Matt
BLU is a member of BostonUserGroups | |
We also thank MIT for the use of their facilities. |