Subject: Re: [ANNOUNCE] GIT 1.5.4

From: Junichi Uekawa <[email-masked]>
Date: Sun, 03 Feb 2008 12:16:24 +0900

Hi,

> That woul be surprising.  Git was not invented until early April 2005.  At 
> the moment I still wait (impatiently, because then my current contract 
> ends) for April 2008.
> 
> The important thing to realise is that time is such a wonderful dimension 
> to be exposed to: not only do you live (experience things that you did not 
> know before), but also other people live and learn.
> 
> IOW even Linus realised that the git-xxx format is not _that_ good.  Which 
> is why -- as you should have realised if you did not subscribe 5 minutes 
> ago -- we do not recommend git-xxx at all, but insist on "git xxx".

I didn't realize that.

Git doesn't give any warnings, and manpages give the dashed examples
only.

Although I was subscribed to git-list from day 1, I must admit that
these days I don't read this list too closely (hence being caught in
surprise at this point).

I assume things started with the following commit; but really, can we
please start with some deprecation notice before really moving it
around in user-visible location.

commit 36e5e70e0f40cf7ca4351b8159d68f8560a2805f
Author: Linus Torvalds <[email-masked]>
Date:   Sat Jun 30 11:49:17 2007 -0700

    Start deprecating "git-command" in favor of "git command"
    
    I realize that a lot of people use the "git-xyzzy" format, and we have
    various historical reasons for it, but I also think that most people have
    long since started thinking of the git command as a single command with
    various subcommands, and we've long had the documentation talk about it
    that way.
    
    Slowly migrating away from the git-xyzzy format would allow us to
    eventually no longer install hundreds of binaries (even if most of them
    are symlinks or hardlinks) in users $PATH, and the _original_ reasons for
    it (implementation issues and bash completion) are really long long gone.
    
    Using "git xyzzy" also has some fundamental advantages, like the ability
    to specify things like paging ("git -p xyzzy") and making the whole notion
    of aliases act like other git commands (which they already do, but they do
    *not* have a "git-xyzzy" form!)
    
    Anyway, while actually removing the "git-xyzzy" things is not practical
    right now, we can certainly start slowly to deprecate it internally inside
    git itself - in the shell scripts we use, and the test vectors.
    
    This patch adds a "remove-dashes" makefile target, which does that. It
    isn't particularly efficient or smart, but it *does* successfully rewrite
    a lot of our shell scripts to use the "git xyzzy" form for all built-in
    commands.
    
    (For non-builtins, the "git xyzzy" format implies an extra execve(), so
    this script leaves those alone).
    
    So apply this patch, and then run
    
        make remove-dashes
        make test
        git commit -a
    
    to generate a much larger patch that actually starts this transformation.
    
    (The only half-way subtle thing about this is that it also fixes up
    git-filter-branch.sh for the new world order by adding quoting around
    the use of "git-commit-tree" as an argument. It doesn't need it in that
    format, but when changed into "git commit-tree" it is no longer a single
    word, and the quoting maintains the old behaviour).
    
    NOTE! This does not yet mean that you can actually stop installing the
    "git-xyzzy" binaries for the builtins. There are some remaining places
    that want to use the old form, this just removes the most obvious ones
    that can easily be done automatically.
    
    Signed-off-by: Linus Torvalds <[email-masked]>
    Signed-off-by: Junio C Hamano <[email-masked]>

regards,
	junichi
-- 
dancer@{debian.org,netfort.gr.jp}   Debian Project