Home > Linux > Torvalds unveils new Linux control system Torvalds unveils new Linux control system David Adams 2005-04-21 Linux 40 Comments Linux founder and leader Linus Torvalds has launched a new tool, called ‘Git’, to manage his software project, after a dispute led him to drop the previous system. About The Author David Adams Follow me on Twitter @david_adams 40 Comments 2005-04-21 8:14 am Why they didn’t adopt subversion ? 2005-04-21 8:17 am This is already explained many times: Subversion does NOT do all what Linus needs, and that’s a *distributed* version control system. It has to be either SVN (on top of Subversion) or Monotone. But none of the two are actually production-ready that’s why the choice is not easy or straigh-forward. 2005-04-21 8:17 am Named after him? What’s the chances of that?? 2005-04-21 8:18 am http://subversion.tigris.org/subversion-linus.html 2005-04-21 8:19 am Because Linus wanted a system in which there is no centralised repository. Traditional source control management systems have a central repository in which people work on the codebase. In BK, everybody had its own repository and people could pull updates selectively from other people’s repository, more of a distributed model. 2005-04-21 8:20 am This is already explained many times: Subversion does NOT do all what Linus needs, and that’s a *distributed* version control system. It has to be either SVN (on top of Subversion) or Monotone. But none of the two are actually production-ready that’s why the choice is not easy or straigh-forward. I suppose the program he himself hacked together IS production ready ? This despite the admitted lack of features and ‘rough edges’. 2005-04-21 8:24 am ” I suppose the program he himself hacked together IS production ready ? This despite the admitted lack of features and ‘rough edges’.” Yes. its ready because it can merge patches much faster and its not meant to be a SCM replacement Also read why subversion wont be the right above according to the subversion project developers themselves Read about git, the system that Linus uses here esp the comments http://lwn.net/Articles/130865/ 2005-04-21 9:24 am Apparently it is incapable of handling a huge tree like the kernel at the moment, but my favorite is Darcs. It is intuitive and elegant. Disclaimer: I am no developer. I use it to work on my thesis on different locations. But for my purposes it absolutely rocks. 2005-04-21 9:24 am “This is already explained many times: Subversion does NOT do all what Linus needs, and that’s a *distributed* version control system. It has to be either SVN (on top of Subversion) or Monotone. But none of the two are actually production-ready that’s why the choice is not easy or straigh-forward.” <sarcasm> So the solution is to re-invent the wheel, rather than taking something that is pre-existing (ie Monotone or SVN) and helping make it production ready or adding the features you want/need. Makes perfect sense. </sarcasm> 2005-04-21 9:30 am For those who are interested, check out Venti of Plan9 (where the idea of git originated, I believe) http://www.cs.bell-labs.com/sys/doc/venti/venti.html 2005-04-21 9:33 am ” <sarcasm> So the solution is to re-invent the wheel, rather than taking something that is pre-existing (ie Monotone or SVN) and helping make it production ready or adding the features you want/need. Makes perfect sense. </sarcasm>” git isnt a SCM system. get your facts straight and there are patches to be merged and new versions to be released in the short term while fixing other SCM systems would take time. Linus has been giving feedback to monotone developers amoung others http://www.venge.net/monotone/NEWS ” most operations sped up by a factor of 2 or better; many sped up by up several orders of magnitude. – special thanks to Matt Johnston <email@example.com>, Derek Scherger <firstname.lastname@example.org>, Linus Torvalds <email@example.com>.” Linus’s git is currently a stop gap measure 2005-04-21 9:35 am is this related to gnu git (gnu interactive tools)? they seem to be above managing files. 2005-04-21 9:42 am “is this related to gnu git (gnu interactive tools)? they seem to be above managing files.” no. they arent related at all. gnu git is unmaintained and superceded by other tools anyway 2005-04-21 10:20 am I’m not a Linux user, but why don’t they actually get some work done rather than throwing hissy fits because they use a bit of proprietry software to get some work done. They had to use proprietry C compilers and Desktops before Linux and GCC was created, why is this any different? Seriously, some linux zealots to need to get real once in a while. 2005-04-21 10:28 am GCC is much older than Linux. 2005-04-21 10:31 am Oh please. Can’t people stop nagging about why he didn’t choose subversion. Linus is tired of it, the subversion dev are tired of it and anyone that has has a slight interest in following the current events are tired of it… 2005-04-21 10:36 am But GCC still had to be made from proprietry software before it. I’m just saying that they shouldn’t be throwing hissy fits just because they have to use a piece of proprietry software, that just restricts your abilities to work. I’m sure they could replace BitKeeper with OSS eventually themselves. Zelaousy just gets in the way of getting things done. As I said, the hissy-fit throwers need to get real, this is 2005, not 1985 where you could hack together all the tools you could ever need yourself on a C64. Mozilla uses CVS, is that similar to BitKeeper / GIT? 2005-04-21 10:40 am “I’m just saying that they shouldn’t be throwing hissy fits just because they have to use a piece of proprietry software, that just restricts your abilities to work. I’m sure they could replace BitKeeper with OSS eventually themselves. Zelaousy just gets in the way of getting things done. As I said, the hissy-fit throwers need to get real, this is 2005, not 1985 where you could hack together all the tools you could ever need yourself on a C64. ” I suppose you didnt understand the history of the project. Bitmover has stopped the gratis version bitkeeper and has refused to provide the commercial version to anyone working on OSDL which includes Linus and Andrew Morton. Linus feels its time to look for alternatives.So there is a very requirement “Mozilla uses CVS, is that similar to BitKeeper / GIT?” git is not a SCM system but a patch manager and its not similar to Bitkeeper which a distributed SCM system. CVS is a centralised SCM system similar to Subversion 2005-04-21 10:48 am “I suppose you didnt understand the history of the project.” Nope, I’m just a regular Windows user. Thanks for the description though, that’s very helpful of you. 2005-04-21 11:28 am Linus said, that he needed to apply and submit the patches spending minimum time. From that perspecive, he’s probably in a niche market for a specific SCM-like tool where BK fit perfectly, but unfortunately it’s no longer free (I’m not much on the topic myself). I’ve read (and someone posted it here) that the subversion guys clearly explained on their site why subversion might not be good for Linus (he needs speed and also a distributed SCM-like system). He also said that monotone is not so fast (that was his other choice). So basically he’s looking for something really fast, he may aswell write it. BTW – The folks on the monotone page have a nice page explaining why SHA1 might be nearly-perfect for what they are doing (debunking Sun’s guy opion on the fact that SHA1 is not collision-free (well mathematically you can expect collisions)). In short – it was explained, that changing even one bit in the source would change at least 80 of that SHA1 bits (that’s half of the SHA1 bits). That makes it really strong against collision. Here is how monotone works (there are some nice diagrams down and it’s easy to understand) (I believe git is a bit like it): http://www.venge.net/monotone/monotone.html An Analysis of Compare-by-hash (Sun’s Val Henson’s paper) http://www.usenix.org/events/hotos03/tech/full_papers/henson/henson… and the “debunking” from the monotone guys: http://www.venge.net/monotone/docs/Hash-Integrity.html 2005-04-21 12:40 pm IMO, the key problem isn’t the proprietary software, it’s the proprietary software format (the BitKeeper archive). Anyone whose been in the industry for more than 10 years has been through at least one bad vendor lockin experience. This case was particularly tenuous because it depended on BitMover’s good graces and it was inevitable that BitMover’s priorities would change (either because they no longer needed Linux for advertisement and beta testing their products, or they discover that the decentralized source control market is too small to make a profit in, or they go bought out or they go bankrupt) If the Bitkeeper archive format were open as most SCM’s are, there won’t be that big a problem. Compatible open source apps could be built and the kernel archives would be safe. Fortunately, a CVS mirror of the Bitkeeper archives was kept, for such an emergency. It doesn’t contain all the information that went into the Bitkeeper archives, but that’s the price that even cautious people pay for relying on non-open standards. 2005-04-21 12:46 pm I would have left it the way it was. I have been using BitKeeper for awhile and from my communications with the company I got the impression that they would not be charging for the current versions but rather for the new versions they develop. Linus has a better temper than I do, if it was up to me and I had to put up with all the complaining, I would have moved everything to Visual SourceSafe and put up a message on the kernel list stating simply, “How do you like me now?” Good luck to Linus with the new system tho, hope they can get the bugs worked out. 2005-04-21 12:54 pm Please learn something before posting. The people “threw hissy fits” because the proprietory nature of BK meant they were at McVoy’s mercy using it. And lo and behold, that’s precisely what happened! McVoy didn’t like the fact that some guy was trying to reverse-engineer BK, and tried to get him fired, OSDL wouldn’t do that, and McVoy revoked OSDL’s (and thus Linus’s) BitKeeper license. Now Linus has to go to the trouble of moving to a different SCM, exactly what the “hissy-fitters” predicted. To be fair to McVoy, the situation was partially caused by the people bitching about BK incessently, but McVoy really shouldn’t have been surprised, given the nature of the community. It was a self-fulfilling prophecy, really. As for CVS, it’s nothing like BK. Both are source management systems, but CVS is centralized, while BK is distributed. 2005-04-21 1:00 pm Blashphemy! *slaps him* I don’t see what the big deal is. Sure, he’s ‘reinventing the wheel’, as it were, but it seems that he doesn’t want to spend a huge amount of time taking an existing project, FORKING IT, and getting it to do what he wants (with a crap-load of extras he doesn’t nee). This way, he can (fairly quickly) get a program for what he needs for this job; he even says that it isn’t made to be used for other things. Just the linux kernel. 2005-04-21 1:05 pm A bit of background reading would have been in order here on your sha1 debunking. Eli Bhiam among others showed collisons last year, see http://lunda.rucus.net/~lunda/blog/index.php?/archives/171-SHA1.htm… for several links. Perhaps you might want to learn about a subject before you comment on it, or else go post on slashdot. And Val Henson works for IBM now, doing some Linux kernel stuff, (see http://blogs.sun.com/val) if you had known that would you feel the need to have a poke at Sun about something which wasn’t relevant to the discussion? 2005-04-21 1:10 pm Thanks for the link! First it’s not “my debunking”, but rather one from the “monotone” people. I do not know details about SHA1 and the mathematical background. I was just merely quoting the two articles I found on the subject (one saying that it’s weak, the other one saying that it’s strong enough). I certainly don’t have enough time to spend reading all about the subject, just for the sake of posting correct comment on osnews.com either. 2005-04-21 1:33 pm GNU Arch is going to implement git (announced on the mailing list on 4/20). http://www.gnuarch.org It’s what I’ve been using for the past year and a half…i love it, I wish all projects used it. 2005-04-21 1:42 pm I wonder if people not from UK know what git means there, it used to be a derogatory term used as in you stupid xxx, although in US I assume it means get with a southern twang perhaps. 2005-04-21 1:54 pm “””wonder if people not from UK know what git means there””” Everyone knows it. Linus even referred him (linus) as a one. 2005-04-21 2:15 pm What I find really interesting is how hyped up all of this reverse engineering of BitKeeper was. The BK server has a very simple interface with the client, and merely telnetting into it, and typing “help” would give you a list of the commands that the real BK client uses to talk to the server. Then, simply type those commands on the commandline in telnet, and stuff happens. A very open protocol, and very simple to use w/ out any client. The command to checkout a repository was “clone” and simply typing that into telnet and redirecting the output gets you a checkout – dead simple. Yet people make it out to be some really skilled reverse engineer stuff – when in effect it was just using the standard protocol w/ out using the official client. Interestingly, I find this simple system of communication between server and client to be very good – it’s open as far as how everything talks to each other, as opposed to other things, that are obfuscated. Granted, it’s not really secure – but streaming both streams through ssh, for example, would eliminate that problem, and still be a simple interface (just ssh on that port, and use those same commands, and bam you’re done!). 2005-04-21 2:21 pm It is interesting that Linus thought so highly of BitKeeper. Claimed it was the best tool to use. If that is true then why won’t he open his wallet and buy a license to keep using it? BitMover is only stopping the free version. Would they refuse to sell Linus a license so Linus could keep using the “best tool”? 2005-04-21 2:21 pm Yep, it seems it’s not that hard http://www.theregister.co.uk/2005/04/21/tridgell_bitkeeper_howto/ 2005-04-21 2:28 pm Kroc Camen wrote: “They had to use proprietry C compilers and Desktops before Linux and GCC was created, why is this any different?” Why did they have to use proprietary C compilers? If you think this then how do you think those proprietary C compilers were created? 2005-04-21 2:32 pm JJ wrote: “although in US I assume it means get with a southern twang perhaps” No, it doesn’t. Git is git wherever you are. 2005-04-21 3:01 pm I have already explained this. copy and paste again I suppose you didnt understand the history of the project. Bitmover has stopped the gratis version bitkeeper and has refused to provide the commercial version to anyone working on OSDL which includes Linus and Andrew Morton. Linus feels its time to look for alternatives since he basically told Larry that its not being mutually beneficial and to cut off the gratis version .So there is a very practical requirement 2005-04-21 4:15 pm From what I’ve heard, it wasn’t the protocol that was being reverse engineered. It was the file formats used to store the revision history, etc. The reason it was desirable to reverse engineer this was that if the BitMover licenses were ever revoked the revision history for kernel development would have been lost. 2005-04-21 4:55 pm Question.. What do all these other Unix’s use for kernel development? I don’t think Bitkeeper. Sure it’s different then Linux, but would it be that different? But then.. It’s nice to develop your own tools cause they do exactly what you want in the way you want. For example.. All CMS’s [Content Management Systems] I know have a user signup/login. So It takes a lot of time to take it out and with the next update again.. So I’d rather would develop my own CMS. 2005-04-21 5:12 pm http://www.gnu.org/software/git/git.html 2005-04-21 6:35 pm Question.. What do all these other Unix’s use for kernel development? As previously explained, BK is a distributed system. Other Unix’s use more traditional scm’s which create a vastly different experience. Linus believes that the distributed system is superior for his needs, so the choice was between monotone(way too slow), and creating something himself. Originally it was just supposed to be a stopgap measure, but I think he’s happy enough with it that he might use it for a while. not new at all That’s a completely different project. The name just happens to be the same. 2005-04-22 3:55 pm since you dont use linux, why do you care. why not go play on the windows articles like a little child instead of flamebaiting here.