Re: newbie questions about git design and features (some wrt hg)
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Jan 31, 2007, 04:35 UTC
- Message-ID
- <Pine.LNX.4.64.0701302029460.3611@woody.linux-foundation.org>
- In-Reply-To
- <3c6c07c20701301938u4d1503a2m3e0af51121b8e6db@mail.gmail.com>
On Tue, 30 Jan 2007, Mike Coleman wrote:
Show 6 quoted lines
> > As for performance, my thinking was that since hg is implemented > apparently almost entirely in Python, and has (again apparently) > generally acceptable performance, this suggested that much of the > problem might be I/O-bound enough that language efficiency might not > matter so much.
Note that git actually implements a lot more than hg does.
hg depends on external programs (almost uniformly written in C) to do the actual diff generation, 3-way merging etc.
Git actually ends up doing all of those internally, and minimizes external dependencies that way. More importantly, perhaps, it allows us to do a better job, faster. The early example of this is patch application, where git supports a much nicer patch format that can express renames etc in the patch.
But I'll admit - my main reason going with C is (a) it's what I know and (b) I absolutely _hate_ being constrained by the language. The great thing about C (still) is that you can do *anything* in it. You're literally limited by hardware, and by your own abilities. Nothing else.
Linus