4 ms·
Git isn't broken, but it's sort of the lowest common denominator in the DVCS space. It's a solid workhorse VCS, but it doesn't offer much beyond the essentials.
by rbehrends 11y ago
Git isn't broken, but it's sort of the lowest common denominator in the DVCS space. It's a solid workhorse VCS, but it doesn't offer much beyond the essentials.
Examples of things Git doesn't do or do well:
* Shared mutable history (this is where Pijul/Darcs come into play).
* Scaling to large repository sizes [1], especially for monorepos.
* More intelligent merging (based on text history and/or semantics). Extracting the full text history of a file can be very expensive in Git (for example, see the performance problems of git blame).
* Long-lived branches (due to lack of meta information in Git's storage model, this is often a problem; for example, compare the conceptual complexity of bzr join vs. git subtree).
* Annotated history; Git does not have branches in the traditional sense, and this means that history is largely a soup of anonymous objects. Compare this with Fossil's model of propagating tags [2].
[1] See these two talks from Git Merge 2015 for example: http://git-merge.com/videos/git-at-google-dave-borowitz.html http://git-merge.com/videos/git-at-google-dave-borowitz.html and http://git-merge.com/videos/scaling-git-at-twitter-wilhelm-bierbaum.html http://git-merge.com/videos/scaling-git-at-twitter-wilhelm-b...
[2] http://fossil-scm.org/xfer/doc/trunk/www/branching.wiki http://fossil-scm.org/xfer/doc/trunk/www/branching.wiki