|
|
Subscribe / Log in / New account

Linus codes up a patch manager

When not evaluating source code management systems, Linus has been busy hacking up a backup system for patch management in the short term. He has made the first version available for any "crazy hacker" looking for a challenge; he describes it as "_really_ nasty (but also _very_ fast)". The README file packaged with the tool (he calls it "git") has some more information.

to post comments

Linus has a way with words.

Posted Apr 8, 2005 15:27 UTC (Fri) by StevenCole (guest, #3068) [Link] (4 responses)

On Fri, 8 Apr 2005, [a well-intentioned kernel hacker] wrote:
> 
> Why not to use sql as backend instead of the tree of directories?

Because it sucks? 

I can come up with millions of ways to slow things down on my own. Please 
come up with ways to speed things up instead.

		Linus

Linus has a way with words.

Posted Apr 8, 2005 17:04 UTC (Fri) by dmarti (subscriber, #11625) [Link] (3 responses)

Why not use SQL? Because a content-addressable design means it's easier to use a distributed hash table. Don't download every patch ever--just run a node and pull what you need out of the "cloud".

Linus has a way with words.

Posted Apr 11, 2005 7:42 UTC (Mon) by Wol (subscriber, #4433) [Link] (2 responses)

For those people who aren't professional database programmers ...

SQL is a query language meant to address relational databases. But the pro relational guys hate SQL with a vengeance because it ISN'T relational.

And for those people here who remember me, I think relational is crap because, despite all the claims that "it is built on maths", when I read C&D's twelve rules, all I see is a list of requirements to make the database programmer guy's life easier (that's the guy writing the database engine, not the guy writing programs that use the engine).

A quick challenge - take a look at the twelve rules, and see if you can find ONE that could reasonably be taken to be a mathematical axiom, rather than a "constraint of convenience".

Cheers,
Wol

Linus has a way with words.

Posted Apr 11, 2005 8:59 UTC (Mon) by jdv (guest, #712) [Link] (1 responses)

> take a look at the twelve rules

Could you post a link?

Linus has a way with words.

Posted Apr 11, 2005 14:29 UTC (Mon) by Wol (subscriber, #4433) [Link]

http://www.itworld.com/nl/db_mgr/05072001/pf_index.html

(as found by Google :-)

Actually, I think I'd probably classify just *one* as an axiom - all data must have an unambiguous reference.

The rest of it simply defines what makes a relational (as opposed to any other) database. A bit like Euclid's "parallel lines never meet" defines the *sub*set of geometry that is Euclidean, but does not define geometry itself (and, in defining a subset, defines itself as a constraint not an axiom).

Cheers,
Wol

Linus codes up a patch manager

Posted Apr 8, 2005 15:40 UTC (Fri) by BrucePerens (guest, #2510) [Link] (15 responses)

I remember the last toy program Linus released to the world. This will obviously revolutionize the SCM world and become a severe competitor to proprietary efforts :-)

Linus codes up a patch manager

Posted Apr 8, 2005 16:27 UTC (Fri) by mtk77 (guest, #6040) [Link]

The last toy program Linus released to the world was sparse. It's quite neat, but not exactly revolutionary.

Linus codes up a patch manager

Posted Apr 8, 2005 18:20 UTC (Fri) by sbergman27 (guest, #10767) [Link] (12 responses)

Wouldn't it be ironic if this was the project that eventually evolved into the Open Source app that puts Bitmover out of business?

Linus codes up a patch manager

Posted Apr 8, 2005 19:30 UTC (Fri) by huaz (guest, #10168) [Link]

Only if SCM was THAT simple.

Linus codes up a patch manager

Posted Apr 11, 2005 7:50 UTC (Mon) by Wol (subscriber, #4433) [Link] (10 responses)

It would be nice if people remembered

(a) BitKeeper was written in order to help Linus.
(b) BitKeeper has basically been pushed into being closed proprietary by an obnoxious minority of people who refused to honour the licence.

And very importantly, (c) BitKeeper fixes a class of problems that are both very expensive to solve, but cheap to reverse engineer and copy. If Larry didn't run BitMover as a commercial operation, he couldn't afford to employ the super-PhD class people he needs to solve the problems, and BitKeeper would never have been written.

BitKeeper is one of those problems that simple economic theory says is very unlikely to either appear, or be developed as, open source software. Namely it's expensive to develop, and cheap/easy to copy. So nobody is going to bother, because having spent the cash to develop it, somebody else is going to pinch the profit and all your money has been thrown down the drain. This is *EXACTLY* the problem that patents/copyright was invented for to solve, and this is *EXACTLY* the scenario where the use of such would be right and fair. It's to Larry's credit that he hasn't used patents and, if it weren't for the abuse committed by a minority of alleged open source people, he wouldn't be using copyright much either.

Cheers,
Wol

Linus codes up a patch manager

Posted Apr 11, 2005 10:15 UTC (Mon) by BrucePerens (guest, #2510) [Link] (3 responses)

Although some consideration of Linus' task was probably part of the design, Larry would not have coded Bitkeeper to "help Linus". As far as I could tell it's been intended as a commercial product from day one.

And it's not at all clear to me that the people working on the other half-dozen Open Source programs that attempt to do the same thing are either super-PhDs or are leveraging off of the work of Bitkeeper. Even Tridge was only looking at Bitkeeper to be compatible with its over-wire protocol rather than to handle revisions as it does. I have met some of them, and they're smart, but no smarter than other folks who don't seem to have a problem working in Open Source. Finally, if software patents were employed in this space, they would probably be employed by Larry's former employer, for whom he worked on the same problem, against Larry.

Bruce

Linus codes up a patch manager

Posted Apr 11, 2005 11:12 UTC (Mon) by hppnq (guest, #14462) [Link]

Although some consideration of Linus' task was probably part of the design, Larry would not have coded Bitkeeper to "help Linus". As far as I could tell it's been intended as a commercial product from day one.

These things -- creating a commercial product and helping Linus -- have little or nothing to do with one another, and this has been mulled over a gazillion times.

Bruce, as an Open Source leader you have a responsibility. People expect solid reasoning from you, not vague hearsay and accusations that are not at all backed by facts or at least a complete picture. So I kindly request that you share with us the information you have regarding Larry's motivations for writing BitKeeper.

If you don't have that information, you would do well to at least pay Larry *and* Linus the courtesy of respecting *their* story, since they are likely to be a bit better informed than you are. If your hands are legally or otherwise tied, that will do too for an explanation.

By the way, I intend to keep telling you this -- it's not the first time -- until you do me the small favour of returning a sane response. Before you jump to conclusions: this is not a hobby of mine and I have no agenda other than the proliferation of Free Software.

Linus codes up a patch manager

Posted Apr 11, 2005 14:41 UTC (Mon) by Wol (subscriber, #4433) [Link] (1 responses)

Bruce, do you have a PhD? Are you aware of what sort of person gets a PhD?

I'm probably PhD quality, though I doubt I'd survive the course. I know I'm extremely bright. And from my contacts with several OS developers like Tridge (although not him in particular) I know that they're in the same class as me, if not better! (The main difference between me and them is they're probably a damn sight more meticulous.)

Oh - and I'm a Brit. I gather Americans consider our basic Batchelor to be the equivalent of their own Masters, although probably less so nowadays now that the degree system has been so thoroughly dumbed down. That was certainly the case though when I got my BA!

Either way, when Larry says he's got PhD class and better brains *struggling* to solve his problems, I find it only too easy to believe him. And those brains don't come cheap!

And when he says that the resulting work is simple to reverse-engineer, that again I find that only too believable - in my field (Chemistry) I was taught High-School chemistry at a level higher than what the PhDs were researching when my teacher was at Uni. Once the problem has been understood for the first time, it's easy to understand again. It's the first time that's the problem.

Cheers,
Wol

Linus codes up a patch manager

Posted Apr 11, 2005 15:14 UTC (Mon) by BrucePerens (guest, #2510) [Link]

I am not a PhD, but am recognized as a senior research scientist by a major university, which usually comes after being a PhD. I have also worked with many PhDs, between Pixar and my years at Pixar's predecessor. But unlike them, my expertise is not mathematics.

Remember, we are discussing a text-handling problem, not superstring theory. And there is a great deal of applicable published work. This is not to say that problems aren't difficult to solve. It no doubt takes a lot of sweat to solve them. But perhaps not an advanced degree.

I don't know what Tom Lord's education is, but I've found his work on this problem to be very creative.

Bruce

Who made BK go closed/proprietary?

Posted Apr 11, 2005 19:30 UTC (Mon) by kevinbsmith (guest, #4778) [Link] (4 responses)

I don't think BK was "pushed into being closed proprietary" by "obnoxious" people. It seems that it was always intended to be closed and proprietary, but the vendor just took a few years to reveal that explicitly in the license.

Originally, BK was available under an almost-free license [1]. Later, an anti-competition clause was added [2]. Still later, you weren't even allowed to buy the commercial version of BK if BM felt you were a competitor. And "competitor" apparently could even mean someone who _advocated_ free alternatives [3], or the employee (Linus) of a company (OSDL) which hired a contractor who was not bound by the BK license and who worked on alternatives during off hours [4].

The BK license was never free, but it might have been bearable except for one fatal flaw: It could be changed at any time, and the changes would effectively apply retroactively to all earlier versions. Now *that* is worthy of the label "obnoxious".

Kevin

[1] http://old.lwn.net/1999/features/BitKeeper.php3
[2] http://lwn.net/Articles/12231/
[3] see comment by Zenaan at http://lwn.net/Articles/103694/
[4] rumor described by franz at http://lwn.net/Articles/130746/#Comments

Who made BK go closed/proprietary?

Posted Apr 11, 2005 20:19 UTC (Mon) by hppnq (guest, #14462) [Link] (3 responses)

The BK license was never free, but it might have been bearable except for one fatal flaw: It could be changed at any time, and the changes would effectively apply retroactively to all earlier versions. Now *that* is worthy of the label "obnoxious".

Come on, don't be ridiculous. Have you ever read the GPL?!

Who made BK go closed/proprietary?

Posted Apr 11, 2005 20:30 UTC (Mon) by kevinbsmith (guest, #4778) [Link] (2 responses)

Yes, I have read the GPL. Once a piece of software has been released under the GPL, *that version* of the software will *always* be available under those terms. No future changes to the GPL will reduce your rights to use or distribute that released version. No future policy changes or relicensing by the author will affect that released version.

If you dislike the licenses of future versions, you can always choose to keep (and modify) the older version. That's true of most licenses.

Licenses that allow changes to apply retroactively to earlier versions are, in my opinion, particularly dangerous. The gratis version of BK falls (fell) into this category, because you are prohibited from running old versions.

Who made BK go closed/proprietary?

Posted Apr 11, 2005 20:55 UTC (Mon) by hppnq (guest, #14462) [Link] (1 responses)

The point is quite simple. If you don't like the license: don't use the software. If the license is somehow at odds with the law: go tell a judge. If you impose your own restictions or added value to someone else's license: think again.

Who made BK go closed/proprietary?

Posted Apr 11, 2005 23:28 UTC (Mon) by hppnq (guest, #14462) [Link]

Let me add something along the same lines. (It is not directed at you in particular, Kevin. ;-)

It amazes me that, after more than six years of intensive debate about all aspects of BitKeeper, people are apparently still shocked and outraged at how things have turned out. Worse, people seem to have been ignoring the quite obvious signs -- Larry's repeated statements about reverse engineering, the BitKeeper license and how it has changed, Linus' remarks about using BitKeeper, and so on and so forth -- right up until this very day.

Basically it is really as simple as this: no-one is or has been forced to accept the BitKeeper license and use the software. This applies to all BitKeeper users, by the way, Open Source developers and companies alike.

Of course, in practice, things are a bit more complicated. Linus Torvalds using BitKeeper is not the same as Joe Random Hacker using BitKeeper. BitMover may have been applying excessive pressure on companies or individuals with respect to what they -- BitMover -- regard as improper use of their software. And while kernel hackers have always had the option to not use BitKeeper, and victims of BitKeeper's aggressive license enforcement policy have always had the opportunity to seek legal counsil, in practice these things are complicated by other factors: peer pressure or lack of financial means to take BitKeeper to court, respectively, to name a few.

The thing is: all of this is irrelevant now, like it always has been. If you didn't see this turn of events as a possible outcome from the very start, you are incredible naive, or you haven't been taking the signs seriously.

It is irrelevant whether BitKeeper was written especially for Linus, or whether BitMover produced a commercial tool making clever use of the high profile gained by hosting the Linux kernel, or whether the BitKeeper license changes were morally just, and whether Larry's efforts to prevent reverse engineering would hold their own in court.

People who keep insinuating that Linus was somehow tricked into using BitKeeper, and that BitMover has now shown its real face as a deceiving company, are either extremely naive or displaying a distorted view of the actual events for some other reasons (I guess a lot of the current anger originates in disappointment, which is understandable).

Of course BitMover was thrilled that Linus decided to use BitKeeper. Of course Larry tried to help Linus by listening to him and adjusting BitKeeper to the needs of Linux kernel development. Of course those involved have made mistakes in the whole process. Of course this has always been a suboptimal marriage between a commercial product and Open Source: all the key players have said nothing else and all the evidence is out there, go read LKML and LWN for a starter.

Suggesting otherwise is a gross injustice and an insult to both Linus, Larry and their respective intellects. It also makes you look foolish. It demonstrates that you can't or don't want to see the difference between actual events and the interpretations that inevitably pop up as a result of them, or that you are a member of the innuendo or spin doctor faction. Or it could just mean that you have found an easy way to get back at Larry.

This doesn't mean that it is impossible that indeed, there was a Master Plan of ripping of Open Source, or that Linus was foolish to start using BitKeeper. But if this whole sad story breathes one thing, it is "compromise". If you can't see that, you'd better keep your uninformed opinions to yourself. And if you do know better, show us the evidence that sustains it.

Linus codes up a patch manager

Posted Apr 11, 2005 20:55 UTC (Mon) by brouhaha (subscriber, #1698) [Link]

BitKeeper was written in order to help Linus.
That's not even close to being true. Bitkeeper existed as commercial software years before Linus was even willing to consider using SCM software. What happened was that once Linus explained his reasons for not liking SCM, Larry offered to enhance Bitkeeper to do what Linus said he needed (mostly "lines of development", but a few other things too. The "free" Bitkeeper license was added to support Linux development and encourage use by other open source projects.

The Bitkeeper free license problems have caused problems for many people before this latest snafu. A friend at a company that is heavily into Linux was using Bitkeeper fully in compliance with the "free" license -- they had multiple developers, but all their commit logs were going to the open logging server, just as required. Larry decided that they were violating the "spirit" of the license by using it to work on software they sold (even though that software was in fact open soure), and demanded a big pile of money from them. They tried to negotiate, but Bitmover came to the negotiating table unwilling to compromise on the fee at all, so the company dropped Bitkeeper like a hot potato.

I think it makes perfect sense for Bitmover to focus only on commercial business, and drop the "free" license, and for Linux to stop using it. At least Larry and Linus seem to still mostly be on good terms, so that Larry is allowing for a transition period rather than yanking the carpet out from under everyone.

In the long run, this will actually be good for the free software community, because it will result in the development of free alternatives. It will probably take a long time for the free alternatives to catch up to the capabilities of Bitkeeper, but as long as there was the "free" Bitkeeper license, progress on free alternatives was very slow.

Eric

Linus codes up a patch manager

Posted Apr 8, 2005 19:12 UTC (Fri) by tcabot (subscriber, #6656) [Link]

I remember the last toy program Linus released to the world. This will obviously revolutionize the SCM world and become a severe competitor to proprietary efforts :-)
Not until it's been flamed as "obsolete" by at least one college professor.

Linus codes up a patch manager

Posted Apr 8, 2005 15:48 UTC (Fri) by brianomahoney (guest, #6206) [Link] (2 responses)

Bravo, this clearly provides an __exit_strategy__.

It also demonstrates that you do not need 100 may years coding to come
up with an effective solution. This is original and innovative, and combined
with existing SCMs, is seminal and may be the beginings of a tool as useful
as Wall's patch.

Linus codes up a patch manager

Posted Apr 11, 2005 19:48 UTC (Mon) by kevinbsmith (guest, #4778) [Link] (1 responses)

This is very interesting. Each day that goes by makes it look more and more like 'git' could be the next kernel SCM, at least on an interim basis.

I haven't looked too closely, but it sure looks like a snapshot-based solution rather than a changeset-based solution. Monotone started out as the former, but moved to the latter. I think there is some consensus that changeset-orientation is superior.

I do wonder whether spending several days on git is the most effective use of Linus's time. But I guess if he's having fun, who am I to judge?

Linus codes up a patch manager

Posted Apr 12, 2005 0:09 UTC (Tue) by hppnq (guest, #14462) [Link]

I haven't been looking at it too closely, but doesn't git seem to be a nice candidate for a monotone backend?

Linus codes up a patch manager

Posted Apr 8, 2005 16:20 UTC (Fri) by thomask (guest, #17985) [Link]

So maybe we should be looking forward to the new "gitkeeper" SCM... ;-)

Linus codes up a patch manager

Posted Apr 8, 2005 17:54 UTC (Fri) by lutchann (subscriber, #8872) [Link] (9 responses)

Not that I've checked the exact text, but isn't Linus prevented from working on this project by the free BitKeeper license? I thought that was one of the more contentious clauses--preventing the licensee from working on SCM products during the license period and one year thereafter. Or is that why he's insisting that it's not an SCM, just a patch manager?

Linus codes up a patch manager

Posted Apr 8, 2005 17:59 UTC (Fri) by JoeBuck (subscriber, #2330) [Link] (7 responses)

There is no free BitKeeper license anymore; since the license has been withdrawn, any non-compete obligations on Linus are gone as well.

Linus codes up a patch manager

Posted Apr 8, 2005 18:27 UTC (Fri) by sbergman27 (guest, #10767) [Link] (3 responses)

I don't think larry can do that. Once you grant someone a license to use something, can you just take it back? Of course, I suppose the old license could have an expiration date.

At any rate, Larry suing Linus makes about as much sense as SCO suing their own customers. Very bad publicity. Hmmmm. I guess I just compared Bitmover to SCO. Hope I didn't just invode some obscure corrolary to Godwin's Law or something. ;-)

Linus codes up a patch manager

Posted Apr 8, 2005 18:34 UTC (Fri) by tomsi (subscriber, #2306) [Link] (2 responses)

You are getting close.
I had never heard about Goodwins law before, so for the other two readers who haven't heard about it - here is the Wikipedia entry

Linus codes up a patch manager

Posted Apr 8, 2005 18:45 UTC (Fri) by ncm (guest, #165) [Link] (1 responses)

Doesn't mentioning Godwin's law count, itself, as an instance of its preconditions? I.e. maybe any thread in which Godwin's law has been mentioned is dead, too.

Linus codes up a patch manager

Posted Apr 8, 2005 18:49 UTC (Fri) by sbergman27 (guest, #10767) [Link]

Explicitly invoking it is considered bad form and causes the invoker to automatically lose the argument. That's why I said "I hope I didn't just invoke..." ;-)

Linus codes up a patch manager

Posted Apr 11, 2005 7:54 UTC (Mon) by Wol (subscriber, #4433) [Link] (2 responses)

There is a free licence, and it has not been withdrawn, as far as I know.

The problem is, the free client has a 32K limit, and Linux is on the verge of smashing into this barrier.

So the client hasn't been withdrawn, it's just been declared obsolete and it is about to become useless as its limitations turn into fatal flaws...

Cheers,
Wol

Linus codes up a patch manager

Posted Apr 11, 2005 15:31 UTC (Mon) by sammythesnake (guest, #17693) [Link] (1 responses)

Larry has already announced that the last version of BK available under the "free" license will be the one that fixes the 32k limit (taking it to 64k, IIRC)

Cheers & God bless
Sam "SammyTheSnake" Penny

Linus codes up a patch manager

Posted Apr 11, 2005 16:05 UTC (Mon) by crlf (guest, #25122) [Link]

It's a 64K limit that was being breached, but hasn't been breached yet. As it stands, there are 63429 changesets in Linus's BK tree.

Linus codes up a patch manager

Posted Apr 9, 2005 1:11 UTC (Sat) by beoba (guest, #16942) [Link]

It's a license, not a contract. If I'm correct*, such a clause would be largely irrelevant, as their only way of enforcement would be to prevent you from using their product.

*I very well might not be correct, so take this with an unhealthy dose of salt.

Linus codes up a patch manager

Posted Apr 8, 2005 18:42 UTC (Fri) by NAR (subscriber, #1313) [Link]

I should have made a bet that Linus will code up a tool because the existing solutions aren't good enough...

Bye,NAR

Linus codes up a patch manager

Posted Apr 8, 2005 20:35 UTC (Fri) by s_cargo (guest, #10473) [Link] (4 responses)

"git" can mean anything, depending on your mood
It also means Gnu Interactive Tools

Linus codes up a patch manager

Posted Apr 8, 2005 21:21 UTC (Fri) by tomsi (subscriber, #2306) [Link] (3 responses)

Which proves that there is only a small subset of good names (acronym or not) available for your project - and it's already taken...

Linus codes up a patch manager

Posted Apr 8, 2005 22:00 UTC (Fri) by XERC (guest, #14626) [Link] (2 responses)

Which proves that there is only a small subset of good names (acronym or not) available for your project - and it's already taken...

A proof of concept that You are wrong:

Google SCManagerius
or Google "S^C^M" -SCM -S/C/M

Linus codes up a patch manager

Posted Apr 8, 2005 23:35 UTC (Fri) by tomsi (subscriber, #2306) [Link] (1 responses)

Pardon me. What are you trying to tell us?

Wen I tried to use google to search for SCManagerius and S^C^M...^I got nothing.
Trying something different, I tried to search for SCManager; don't do that...

Linus codes up a patch manager

Posted Apr 9, 2005 14:31 UTC (Sat) by XERC (guest, #14626) [Link]

Wen I tried to use google to search for SCManagerius and S^C^M...^I got nothing.

That's exactly the point: the names are SO UNUSED, that google is not able to find even a single reference to them. The examples were intentionally picked such that Google can't find any references to them.

Linus codes up a patch manager

Posted Apr 8, 2005 23:08 UTC (Fri) by job (guest, #670) [Link] (2 responses)

Can somebody explain this? How is this tool related to an SCM system, and
why the choice of SHA hashes as the key?

Linus codes up a patch manager

Posted Apr 9, 2005 1:11 UTC (Sat) by hppnq (guest, #14462) [Link] (1 responses)

Well, let's give it a try...

Basically git can be used to manage hierarchies of data. It consists of an object database and a directory cache.

The object database consists of trees, blobs and changesets, which are abstract notions of directories, files and some history information regarding changes in the hierarchy.

The objects are all compressed (if you unpack them you get to see the actual hierarchy), and the compressed objects are represented by hashes; SHA1 is probably the algorithm of choice because it produces completely different hashes for objects that differ only very slightly -- it is an extremely reliable way of identifying objects, therefore, as well as for ensuring their integrity.

So, what we've got so far is a clever way of storing and identifying data in a hierarchy (source code, recipes or the formulae for the atomic bomb, whatever you like). Furthermore, through inspection of the hashes, it is possible to see how objects differ, to some extent.

The directory cache is nothing more than that: a single, binary file cache that represents the state of a directory and its contents (a tree object) at some point in time, so it allows for a fast inspection of a tree. But it can also be used to reflect intermediate changes regarding the tree. (Since you can easily compare the cache to the live object.)

Linus has also thrown in a way to implement the "signed-off-by" concept we already know from LKML, by the way.

All this, of course, could in principle be used as a basis for a full-blown SCM tool, which has to add functionality like merging trees and so on; all git does is manage the hierarchy of data (e.g. packing, unpacking, simple comparisons).

(I hope I got at least parts of it right, I'd suggest waiting for the explanation that Jon will hopefully give us. ;-)

Linus codes up a patch manager

Posted Apr 9, 2005 1:23 UTC (Sat) by hppnq (guest, #14462) [Link]

Mmmhh... Sorry, correction number one: blobs are not files, but file contents. (Which is a significant difference.)


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