Re: If you would write git from scratch now, what would you change?
From: Jan Hudec <hidden>
Date: 2016-06-15 22:43:54
On Mon, Nov 26, 2007 at 21:11:41 +0100, Benoit Sigoure wrote:
On Nov 26, 2007, at 8:27 PM, Jan Hudec wrote:quoted
On Mon, Nov 26, 2007 at 18:11:43 +0100, David Kastrup wrote:quoted
Jakub Narebski [off-list ref] writes:quoted
If you would write git from scratch now, from the beginning, without concerns for backwards compatibility, what would you change, or what would you want to have changed?Get rid of plumbing at the command line level. It is confusing toNo, please. It's extremely useful. It should be a bit more hidden, but it's a big advantage of git that the plumbing is available.quoted
users, and command line arguments, exec calls and I/O streams are not efficient and reasonably typed mechanisms for the kind of operations done in plumbing. Instead using a good extensible portable scripting language (I consider Lua quite suitable in that regard, but it is conceivable that something with a native list type supporting easy sorts, merges and selections could be more efficient) and implementing plumbing in that or in C would have been preferable for creating the porcelain.POSIX shell is really the best extensible portable scripting language available for the job. Because the whipuptitude is the most important property and shell is simply best at one-liners. And since you use it for regular work (running editor, compiler, git porcelain), it is the obvious choice for whiping up a short function.Perl seems pretty portable. If we had a decent, complete libgit, it would be easy to create bindings for various languages and script Git in other languages than Shell script.
Perl might be good for the lower level stuff (and is indeed used for that in git a lot), but most useful tools on top of git gather few bigish bits (contents of whole files and such) and pass them to some application. And this is what shell is really good at. So yes, more direct interfaces for various languages would certainly be good, but it would never be a full replacement for the process interface. It is most generic and for many hacks the easiest thing to use. -- Jan 'Bulb' Hudec [off-list ref]
Attachments
- signature.asc [application/pgp-signature] 189 bytes