- Why Git is better than X
- Git vs Subversion comparison
- 3 Reasons to Switch to Git from Subversion
- Git vs Mercurial
- Git vs Mercurial
- Git vs Mercurial ("CVS is dead and Subversion is not good enough")
- GUI support is not great. There are some tools like git extensions and qgit but apparently they are still work in progress.
- Git does not work as well in Windows as in Linux, a lot of this has to do with NTFS/ext filesystems and the fact git was designed for Linux. This means you need to install cygwin to even run git on Windows.
- Plugin support is still lacking.
- Documentation, while quickly improving, is still behind some of the competition.
In any case, git is still a huge improvement over such vcs's like cvs and svn and free compared to such extremely expensive ones like ClearCase and Dimensions.
I have used ClearCase, PVCS/Dimensions, Continuus, StarTeam, SourceSafe and some others extensively and I have come to the conclusion these do not offer enough bang for the buck. Some pros and cons I have noticed:
ClearCase:
- Pros: Merge works well.
- Cons: Complicated, requires people just to support the repository, expensive, slow.
- Pros: Reasonable simple for developers.
- Cons: Expensive, very slow, poor user interface, some things do not comform to any normal conventions.
- Pros: Change tracking works well (if you use it correctly).
- Cons: Very complicated to use (requires extensive training), expensive.
- Pros: Easy to use, quick, intuitive.
- Cons: Even though basic version is a lot cheaper than the alternatives, full version costs about the same.
- Complete piece of crap. Stay clear at all costs.
The whole point of a vcs should be that it's quick and doesn't hinder development. The developers should be able to do what they need quickly, easily, hassle-free and without making any mistakes (like committing to wrong branches etc). I would say the first two points are the most important ones. If the version control is quick and easy to use, developers use it more (they merge more often, they check-in their stuff more often etc) which is basically what you want them to do. A good vcs is more than just a safe place to store your code. It's a tool used to collaborate with others and the easier this is to do, the more your developers collaborate (share code). Collaboration is the key for git and something where it stands heads and shoulders above all these expensive commercial products (and cvs, svn etc). Distributed vcs has such possibilities in improving productivity that very few techniques at the moment can boast anything similar.
No comments:
Post a Comment