LWN.net Logo

Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system

Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system

Posted Dec 20, 2012 16:45 UTC (Thu) by iabervon (subscriber, #722)
Parent article: Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system

I'm amused that he thinks that git's design is intimately tied to its low-level file format, and that it would be impossible to change how it stores things. The truth is that git's "on-disk representation" is actually an abstraction which the library is clever enough to convince the world is reality. For storage, it mostly uses an entirely different pack format, developed much later, which is quite complex and has gone through several revisions. Part of the reason that git manages to have such a strong abstraction layer is that the abstraction layer is presented as a simple low-level file format that can't be changed; nobody is tempted to violate the abstraction because they don't realize it's an abstraction. This leaves the actual on-disk format easy to improve, because nothing depends on it, which is how git manages to be so space-efficient. It is pleasing to see someone fail to notice that "simple file format that novices can understand" and "requires less space than Bazaar's current efficient format" can't really both be true.


(Log in to post comments)

Vernooij: Bazaar-NG: 7 years of hacking on a distributed version control system

Posted Dec 22, 2012 17:13 UTC (Sat) by Wol (guest, #4433) [Link]

But isn't that ALSO the way linux interacts with hardware?

The main core of linux enforces a strict abstraction of the hardware, and drivers have to convert the vagaries of real hardware into the abstraction that linux expects.

I remember an article by Linus where he said taking that approach actually results in cleaner, more efficient code. If the theoretical best way to do something is X, it is better for the kernel to assume X and have a shim compensate for defective hardware, than to actually make the kernel aware of what is really going on.

Cheers,
Wol

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds