On Wed, 22 Aug 2007, Nicolas Pitre wrote: > > > We ended up writing our own versions (or merging other peoples code) for > > things like appying patches, generating diffs, three-way merging etc, > > because not having external dependencies is *so* much more maintainable > > and portable that it's not even funny. > > Indeed. And this is the very same reason why Git should _also_ acquire a > script interpreter of its own if we want to continue bragging about > Git's easy scriptability. I suspect that most people who want scriptability want it within the confines of whatever environment they run in. For example, I swear by git's scriptability, but I do so not because I think it would be a good idea to script _within_ git using some magic language, but because I think we made good design decisions that makes it easy to integrate git with the kinds of scripts I write every day. But the kinds of scriping *I* do has nothing to do with the kinds of scripting other people necessarily do. I use shell pipelines, and quite frankly, any "internal" scripting inside of git is totally uninteresting to me, exactly because I'm used to the generic UNIX tools, and I find it damn interesting to do things like git log -p --since=6.months | cut -c1 | sort | uniq -c and use that as a really cheesy way to see how many lines have gotten added/removed in the patches in the last 6 months. (Yeah, I get some other characters than just "+/-" too, I don't care, the part I care about is: 749754 - 96945 @ 1030104 + ie about a hundred thousand hunks, with an average of 7.5 lines deleted per hunk, and 10 lines added) See? Sure, some kind of internal git scripting language could do things like this too, but that defeats the point: it's that git is useful *within* a UNIX scripting environment, not that it makes its own. There are enough scripting languages out there. It's wonderful if git can be used with then, rather than having to make up another language that you have to learn. And yes, I agree with people who say that LUA is probably the best choice if people really want a scripting language, but would I actually use LUA for something like the above? No. I think that people who look for scriptability usually prefer the kind of scriptability that git already has, namely that it fits into their *existing* setup. > > I'd love for every single shell-script in git core to be written in C, so > > that we can drop the dependency on shell *entirely*. > > What about the test suite? The test suite is indeed special. But I think that's a "build requiement", and if we require something like shell for *building*, that's different from requiring normal users to have it. If somebody wants to re-code the test-suite in some other scripting engine, that would be fine by me. I'd hope you can automate it, though: that is a *lot* of lines of shell. Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html