On Tue, Sep 25, 2012 at 7:23 AM, Jeff King <peff@xxxxxxxx> wrote: > We've talked off and on about extending the --pretty=format specifiers > to something more flexible. There's also been talk recently of more > flexible commit-filtering (e.g., grepping individual notes). Rather > than invent a new Turing-complete language, I thought I'd try building > on somebody else's work by embedding an existing language. > > Why Lua? I don't especially like it as a language. But it's designed for > this purpose, which makes it very lightweight and relatively simple to > embed. Personally I'd prefer a Scheme variant. > The syntax, on the other hand...yuck. Oops. Scheme is out then. > One thing that makes Lua > horrible for this use is that it does not have interpolated strings. > However, there are template libraries for Lua, so maybe there's > something there. For --pretty, the first thing I looked up was utf-8 support and Lua does not seem to have that built in. Libraries can help but it'll be more verbose than native language support. > And a "4/3" patch would probably add "--lua-filter" as a revision option > for limiting commits. I was thinking of nearly the same thing, except that I hide the filters behind sha-1 extended syntax. Users can link <sha-1>@{foo} to a lua function, for example. I wonder what areas in git might benefit from such a scripting language, and whether someday we would convert some of git builtin commands to $NEWLANG, if $NEWLANG proves easier to maintain for complex logic commands. grep and rev-list (searching in general) are probably where $NEWLANG shines. But for really complex searches, one may want to go with libgit2 or other bindings to their favourite language than one git may provide. gitignore and gitattributes can make use of $NEWLANG but it has to be really fast. There was talk about conditionals in config file, which $NEWLANG might also help. In general I'm quite happy with what git provides. There are many advanced features that I have never used/or even aware of. -- Duy -- 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