Git is exploding
qa.debian.org
qa.debian.org
It's important to note that this graph is generated with data collected from people who have the popularity-content Debian package installed [1]. The "vote" metric it provides is probably a more accurate method for comparing which of the packages are in active use (it records accesses of the package's binaries in the last 30 days).
More fundamentally, monotone records both manifest and diff history, which from the git point of view is entirely redundant. However it allows monotone to do much more sophisticated merge handling than out-of-the-box git, and better captures the human intent of a changeset. It allows monotone to correctly handle copy operations, for example, which is relevant in the context of history-rewriting operations.
I've never used monotone, but my vague impression is it was indeed influential / ahead of its time, but didn't have enough of a focus on performance to really catch on. But that's totally uniformed speculation on my part :)
(And certainly kernels existed long before Linux... ;)
Monotone uses a sqlite relational database for the code repository, with built-in synchronization/replication. It uses a PGP-like PKI and digital signature system for its trust rules (allowing for a trust-less store-and-forward architecture that still none of the other DCVS systems support). It redundantly stores both revision history and content diff views (two equivalent ways of serializing DCVS trees), and automatically keeps the two synchronized. It is extremely smart about merging and branch handling (the monotone-dev list is wonderful place to find analysis of edge-case merge behvior). And it did all of this back in early 2003.
Monotone was ahead of its time. It's only “problem” was that its core developers chose to focus on correctness and user interface over optimization, delaying work on performance and scalability until such work would actually be needed... which was much sooner than they expected. Linux was orders of magnitude larger than anything that had been done with monotone at the time. This may be an urban legend, but I've heard it said that ‘git’, the ‘stupid version control system’ was named such in part because it was a grotesque simplification of monotone's sophisticated framework, which Linus Torvalds did hold in high regard.
Monotone is the Lisp of distributed version control... venerable and unsurpassed by anything that followed, but utterly irrelevant today.
http://qa.debian.org/popcon-graph.php?packages=subversion+gi...
http://qa.debian.org/popcon-graph.php?packages=git+git-core&...
With CVS, darcs, monotone also interesting.
It doesn't necessarily mean Git is that rapidly surpassing SVN in actual use as repository, that is likely to happen way slower than the growth of the install base.
A few packages depend on gettext that I wouldn't have expected, like blender. This might be a mistake, but anyone who installs Blender will also install git, without ever using it.
See the bottom of this page: http://popcon.debian.org/
I'm a one man team, by no means a guru but a competent coder, and git was the first version control system where I could make it past the documentation and get to actually using it day to day. I knew I should be using something, git was the something that made learning and implementing it very low cost.
Personally, I think both git and hg are broken in different ways, but either still beats svn. Why do git users (as it seems to me) constantly evangelize their product over all others?
I have to admit we still use svn at work (although I've started using git at home on personal stuff) but at the moment the most frequent task I use git for is still simply cloning stuff from github.
I would never go back to SVN. And this is not a zealot-thing in which I'm stating an opinion to protect an investment -- Git is so much better that it isn't even funny.
That said we are a very small team and all in the same office so it hasn't been an issue.
I suspect we will slowly start moving new projects over to git though.
To this day, I've yet to hear an argument for git's superiority that wasn't predicated on:
- The assumption that hiding your work in a local branch is somehow a general feature instead of being detrimental to communication and optimized for Linux's development model, or
- Based on a 2003-era understanding of SVN and its support for merge tracking, branch switching, etc.
I keep hearing a lot of enthusiasm but not much to back it up. Do you have a different take than the above?
People used to working with tortoise or versions for mac still use vanilla svn, which is a big reason of why it's kept around.
Assuming tfs is not toyota financing services it appears tfs is microsoft's souce code management system and therefore is most likely not going to show up on debian's popcon.
My last employer was still on sourcesafe (shudder!) when I left last year, and I'd bet they'll eventually go with something from SourceGear or Seapine before heading down the TFS path.
Subversion, Git, Mercurial Job Trends http://www.indeed.com/jobtrends?q=Subversion%2C+Git%2C+Mercu...