The reason he developed Git was that Tridge reverse-engineered BitKeeper protocol, hacked together a free BK client going explicitly against BK licensing terms. That created an unhealthy amount of controversy and started to affect the development - an unpleasant situation, which Linus in his holy torvaldness solved by writing a BK replacement. Not because he loves the GNU way, but because he hates counter-productive bickering and would rather write code than feed the flames. Ta-da.
Whoa, I didn't know the story of git beyond "Linus made it to manage the Linux kernel."
BitKeeper actually prohibits their customers from contributing to competing projects? They forced some guy to stop working on Mercurial in his free time because he used BitKeeper at work and they were afraid that he "might be moving BitKeeper technology into Mercurial." That's an impressive level of evil.
BitKeeper actually prohibits their customers from contributing to competing projects?
Using the product to reverse-engineer a protocol to develop a free client is not 'contributing to a competing product'. Which is against their license (though that may be void because the law grants you reverse-engineering rights, no matter what a license says. Otherwise nothing could ever be reverse-engineered at all).
they were afraid that he "might be moving BitKeeper technology into Mercurial."
That's entirely reasonable. If you have deep knowledge of how proprietary system A works and are hacking on free system B that purports to do the same thing, there is every chance you inadvertently include proprietary knowledge into your code for the free product. It's very hard to avoid using the knowledge you have.
a) I'm not talking about the reverse-engineering thing. Them wanting to shut that down is somewhat reasonable.
b) I don't think this guy had "deep knowledge of how [BitKeeper] works." He just used BitKeeper at his job. Most people who use git don't have a deep understanding of how it works. They just know how to make it manage their code. It feels pretty evil to me to provide a general development tool and put limitations on what any developer who uses it may do. What if Microsoft said in their license, "If you are a Windows user, you may not contribute to any other operating system."? We'd complain about how evil and anticompetitive Microsoft is.
It's a license, same as any other. Either you accept it or you don't. But if you do, then you're expected to be true to your word. Welshing on a deal, that's far more "evil" (a word that has totally lost any meaning on the Internet).
Pfff. There are two types of agreeing to deals. One's for someone trying to use legal tricks to force you to do something unreasonable. Telling me that I may not look to see how something is done is not acceptable and is only "agreed to" because judges don't grok what a purchase is.
Don't expect people to be bound by forced promises.
If I was in a different societal context where I could say 'No', and you know, shoot someone if they got pushy about it, then I'd be truer to my word. But given that I can't there's no choice but to lie - I'm certainly not going to stop learning just because someone told me to to preserve his market share.
Also, the same thing applies to DRM removal, etc. Once I buy a product it's mine - be thankful I didn't just warez it in the first place.