I work at Ohloh.net, where we track thousands of OSS projects through their SCMs. After working with CVS, SVN and Git for 'a while', I've found Git's design to be both brilliant AND infuriating. Most infuriating is the command line interface, which is a result a of 'bottom-up' design. It's very functional but offers very little abstractions - one must understand how it works 'underneath'.
The underlying architecture, however, is fantastic. Firstly, you can easily clone a remote repository - anonymously (huge help for Ohloh - but also useful for more mainstream cases). I also like how it treats patches: a 'non-committer's patch carries his/her credentials into the repository. Example:
I quote 'developers' because we all know that a lot more than 322 people have contributed patches to GCC. However Git enables kernel patch submitters' names to go into the tree - thereby having clearer attribution. There are more goodies lurking in the Git plumbings - but i'd have to refer to my crib sheet...
I work at Ohloh.net, where we track thousands of OSS projects through their SCMs. After working with CVS, SVN and Git for 'a while', I've found Git's design to be both brilliant AND infuriating. Most infuriating is the command line interface, which is a result a of 'bottom-up' design. It's very functional but offers very little abstractions - one must understand how it works 'underneath'.
The underlying architecture, however, is fantastic. Firstly, you can easily clone a remote repository - anonymously (huge help for Ohloh - but also useful for more mainstream cases). I also like how it treats patches: a 'non-committer's patch carries his/her credentials into the repository. Example:
I quote 'developers' because we all know that a lot more than 322 people have contributed patches to GCC. However Git enables kernel patch submitters' names to go into the tree - thereby having clearer attribution. There are more goodies lurking in the Git plumbings - but i'd have to refer to my crib sheet...