5 ms·
This got me thinking about what the Linux kernel was using before BitKeeper (of course before Git). Did it not have version control? Was it just Torvald's tree,
by thaliaarchi 2y ago
This got me thinking about what the Linux kernel was using before BitKeeper (of course before Git). Did it not have version control? Was it just Torvald's tree, maintained by applying patches from the list, and distributed via archives or rsync? (Oh, and if anyone knows how to get a copy of the BK or pre-BK sources, let me know!)
A strange case I've run across from the SCCS and RCS era is Plan 9. The history of the Plan 9 kernel is stored as ed scripts[0], which produce revisions per file, essentially like ad hoc SCCS deltas. I'm not sure if it was assembled as such after the fact or recorded like that all along. That method seems to have only been used for the kernel and the rest (such as the libraries) was snapshotted daily on a file server starting in 2002.
[0]: https://9p.io/sources/extra/9hist/README https://9p.io/sources/extra/9hist/README (To look around, just pop off README.)
- ajb 2y agoYup, Linux was just patches and a sequence of tarballs. Another weird one is a distributed version control system over UUCP [1]. Although not distributed in the modern sense [1] O'Donovan, Brian, and Jane B. Grimson. "A distributed version control system for wide area networks." Software Engineering Journal 5.5 (1990): 255-262.
- mahkoh 2y agoEarly linux versions as a git repository are available here: https://archive.org/details/git-history-of-linux https://archive.org/details/git-history-of-linux
- xorcist 2y agoDid Linux have version control? That would depend on your definition of version control. It did not have a canonical version control system, but it did have the data structure for it in the form of the linux-kernel mailing list. From that a series of patches could be extracted that mirrors development quite accurately. All subsystem maintainers had their own way of working with this. Some used svn, some used bespoke scripts. The main reason for creating bk and git was that none of the existing version control systems matched the workflow of sending patches via a mailing list. This is quite clearly reflected in the design of git, a tool for quickly wiping and recreating a whole project directory. Linux development history was imported to git, and you can follow it back in time since long before the introduction of git, so in that sense some form of version control can be said to have existed.
- somnium_sn 2y agoThe quilt tool by Andrew Morton is one of these tools used for maintainance (https://man7.org/linux/man-pages/man1/quilt.1.html https://man7.org/linux/man-pages/man1/quilt.1.html) of the kernel. It's actually quite nice to use. Early versions of git and mercurial had tooling around similar workflows on top of git/hg repositoires (guilt, being one of these tools). My understanding is that even during the BK years, some maintainers refused to use it and would continue to use tarballs + patches.
- arp242 2y agoTorvalds' git repo only goes back to 2005; is there another one with more history? Because I wouldn't describe 2005 as "long before the introduction of git".