4 ms·
It was amazing that within ~24hrs of Linus releasing `.git` there were corresponding implementations of the backing data store within ~1 week for all the other
by ramses0 5y ago
It was amazing that within ~24hrs of Linus releasing `.git` there were corresponding implementations of the backing data store within ~1 week for all the other "major" competing version control systems (eg: hg, svn, darcs) and written in just about every possible language.
The core of git is brutally simple and efficient, and maps incredibly well to "a linked list (and hash) of files serialized to disk".
Someone wrote somewhere "I used to wonder if Linus was a genius but Git proves it to be true. Anybody could have (re-)written a *NIX implementation, but Linus invented Git from whole cloth."
https://perl.plover.com/classes/git/samples/slide005.html https://perl.plover.com/classes/git/samples/slide005.html
https://perl.plover.com/classes/git/samples/slide009.html https://perl.plover.com/classes/git/samples/slide009.html
- ncmncm 5y agoBut, he didn't. Linus copied the design from Monotone, by Grayson Hoare (who also made the original pre-pre-1.0 Rust).
- ncmncm 5y agoGraydon. (Damn auto-correct!)
- homarp 5y agohttps://lkml.org/lkml/2005/4/6/121 https://lkml.org/lkml/2005/4/6/121 "PS. Don't bother telling me about subversion. If you must, start reading up on "monotone". That seems to be the most viable alternative, but don't pester the developers so much that they don't get any work done. They are already aware of my problems ;)" time for monotone to be rewritten in Rust
- ncmncm 5y agoTime for Git using SQLite for back-end storage. Git has corrupted its own store too many times for me ever to trust it anymore. Almost ready to switch to Fossil.
- ramses0 5y agoActually it's very likely that Git is exposing a failing or unreliable underlying storage medium (or memory?). I can't find the reference for it, but b/c git is so aggressive about actually checking hashes, it sometimes exposes unreliability that gets attributed to git, but is actually the hardware. Check for "memtester", "smartctl", and "badblocks" ... understand what they do and see if they turn up anything.
- ncmncm 5y agoPossibly, but audits have also shown Git not correctly handling file system error reports. We also have file systems not correctly handling disk error reports. Last I saw, volume managers were not passing media error reports through to file systems. And, Intel has done its part to eliminate ECC from memory and buses. I guess what I am saying is that there seems to be more than enough blame to tar everybody.