# do people use the 'git' command?

18 messages from 2005-06-10 to 2005-06-11. Participants: Sebastian Kuzminsky, Kay Sievers, Jon Seymour, Junio C Hamano, Russ Allbery, Tommy M. McGuire.
Thread: https://gitlist.dev/t/892

## Sebastian Kuzminsky, 2005-06-10 18:53

Subject: do people use the 'git' command?
Message-ID: <E1DgodI-0003ov-Fl@highlab.com>
URL: https://gitlist.dev/e/E1DgodI-0003ov-Fl%40highlab.com

```
What good is the 'git' command?  It's a shortcut to run the
"git-$FUNCTION-script" programs, but it doesnt do the "git-$FUNCTION"
programs.  It just doesnt seem worth its inode, to me.  And it doesnt seem
worth the pain to distribution maintainers (like me) to avoid the naming
conflict with GNU Interactive Tools' /usr/bin/git.


Can we drop the "git" program?


diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -42,7 +42,7 @@ CC?=gcc
 AR?=ar
 INSTALL?=install
 
-SCRIPTS=git git-apply-patch-script git-merge-one-file-script git-prune-script \
+SCRIPTS=git-apply-patch-script git-merge-one-file-script git-prune-script \
 	git-pull-script git-tag-script git-resolve-script git-whatchanged \
 	git-deltafy-script git-fetch-script git-status-script git-commit-script \
 	git-log-script git-shortlog git-cvsimport-script
diff --git a/git b/git
deleted file mode 100755
--- a/git
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-cmd="git-$1-script"
-shift
-exec $cmd "$@"


-- 
Sebastian Kuzminsky

```

## Kay Sievers, 2005-06-10 18:59

Subject: Re: do people use the 'git' command?
Message-ID: <20050610185945.GB13102@vrfy.org>
URL: https://gitlist.dev/e/20050610185945.GB13102%40vrfy.org
In-Reply-To: <E1DgodI-0003ov-Fl@highlab.com>

```
On Fri, Jun 10, 2005 at 12:53:32PM -0600, Sebastian Kuzminsky wrote:
> What good is the 'git' command?  It's a shortcut to run the
> "git-$FUNCTION-script" programs, but it doesnt do the "git-$FUNCTION"
> programs.  It just doesnt seem worth its inode, to me.  And it doesnt seem
> worth the pain to distribution maintainers (like me) to avoid the naming
> conflict with GNU Interactive Tools' /usr/bin/git.

Well, drop the GNU Interactive Tools instead. We've removed it from the
SuSE packages and have a "real" git package now. :)

Kay

```

## Jon Seymour, 2005-06-10 19:11

Subject: Re: do people use the 'git' command?
Message-ID: <2cfc4032050610121129573ed4@mail.gmail.com>
URL: https://gitlist.dev/e/2cfc4032050610121129573ed4%40mail.gmail.com
In-Reply-To: <E1DgodI-0003ov-Fl@highlab.com>

```
Not in a program, but it does make some things slightly easier to type.

jon.

```

## Junio C Hamano, 2005-06-11 03:15

Subject: Re: do people use the 'git' command?
Message-ID: <7vy89h4m9r.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vy89h4m9r.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <E1DgodI-0003ov-Fl@highlab.com>

```
>>>>> "SK" == Sebastian Kuzminsky <seb@highlab.com> writes:

SK> Can we drop the "git" program?

No chance, especially with a patch that is not accompanied with
necessary changes to Documentation/tutorial.txt that already
tells the user to type "git commit" and "git log" ;-).


```

## Sebastian Kuzminsky, 2005-06-11 05:26

Subject: Re: do people use the 'git' command?
Message-ID: <E1DgyW0-0004PE-Ct@highlab.com>
URL: https://gitlist.dev/e/E1DgyW0-0004PE-Ct%40highlab.com
In-Reply-To: <7vy89h4m9r.fsf@assigned-by-dhcp.cox.net>

```
Junio C Hamano <junkio@cox.net> wrote:
> >>>>> "SK" == Sebastian Kuzminsky <seb@highlab.com> writes:
> 
> SK> Can we drop the "git" program?
> 
> No chance, especially with a patch that is not accompanied with
> necessary changes to Documentation/tutorial.txt that already
> tells the user to type "git commit" and "git log" ;-).

Of course, you're right.  How about this?  Against Cogito but applies
cleanly to Linus' git:


 b/Documentation/cvs-migration.txt |    4 ++--
 b/Documentation/tutorial.txt      |    6 +++---
 b/Makefile                        |    2 +-
 git                               |    4 ----
 4 files changed, 6 insertions(+), 10 deletions(-)


diff --git a/Documentation/cvs-migration.txt b/Documentation/cvs-migration.txt
--- a/Documentation/cvs-migration.txt
+++ b/Documentation/cvs-migration.txt
@@ -63,7 +63,7 @@
 any more familiar with it, but make sure it is in your path. After that,
 the magic command line is
 
-	git cvsimport <cvsroot> <module>
+	git-cvsimport-script <cvsroot> <module>
 
 which will do exactly what you'd think it does: it will create a git
 archive of the named CVS module. The new archive will be created in a
@@ -90,7 +90,7 @@
 
 So, something has gone wrong, and you don't know whom to blame, and
 you're an ex-CVS user and used to do "cvs annotate" to see who caused
-the breakage. You're looking for the "git annotate", and it's just
+the breakage. You're looking for the "git-annotate", and it's just
 claiming not to find such a script. You're annoyed.
 
 Yes, that's right.  Core git doesn't do "annotate", although it's
diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt
--- a/Documentation/tutorial.txt
+++ b/Documentation/tutorial.txt
@@ -362,7 +362,7 @@
 for you, and starts up an editor to let you write your commit message
 yourself, so let's just use that:
 
-	git commit
+	git-commit-script
 
 Write whatever message you want, and all the lines that start with '#'
 will be pruned out, and the rest will be used as the commit message for
@@ -417,7 +417,7 @@
 To see the whole history of our pitiful little git-tutorial project, you
 can do
 
-	git log
+	git-log-script
 
 which shows just the log messages, or if we want to see the log together
 with the associated patches use the more complex (and much more
@@ -465,7 +465,7 @@
    history outside of the project you created.
 
  - if you want to move or duplicate a git archive, you can do so. There
-   is no "git clone" command: if you want to create a copy of your
+   is no "git-clone" command: if you want to create a copy of your
    archive (with all the full history that went along with it), you can
    do so with a regular "cp -a git-tutorial new-git-tutorial".
 
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -42,7 +42,7 @@
 AR?=ar
 INSTALL?=install
 
-SCRIPTS=git git-apply-patch-script git-merge-one-file-script git-prune-script \
+SCRIPTS=git-apply-patch-script git-merge-one-file-script git-prune-script \
 	git-pull-script git-tag-script git-resolve-script git-whatchanged \
 	git-deltafy-script git-fetch-script git-status-script git-commit-script \
 	git-log-script git-shortlog git-cvsimport-script
diff --git a/git b/git
deleted file mode 100755
--- a/git
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-cmd="git-$1-script"
-shift
-exec $cmd "$@"


-- 
Sebastian Kuzminsky

```

## Jon Seymour, 2005-06-11 06:34

Subject: Re: do people use the 'git' command?
Message-ID: <2cfc403205061023346c03a25b@mail.gmail.com>
URL: https://gitlist.dev/e/2cfc403205061023346c03a25b%40mail.gmail.com
In-Reply-To: <E1DgyW0-0004PE-Ct@highlab.com>

```
Sebastian,

What is the justification for removing it?

As it stands, git serves a useful function in that it provides a
single point through which access to all git-*-scripts is channeled,
yet still allows each script to be maintained as a separate entity,
coherent entity.

jon.

```

## Jon Seymour, 2005-06-11 06:36

Subject: Re: do people use the 'git' command?
Message-ID: <2cfc4032050610233651423b5a@mail.gmail.com>
URL: https://gitlist.dev/e/2cfc4032050610233651423b5a%40mail.gmail.com
In-Reply-To: <2cfc403205061023346c03a25b@mail.gmail.com>

```
I meant to say:
> yet still allows each script to be maintained as a separate,
> coherent entity.
> 

...but then I tend towards in the randomly incoherent.

jon.

```

## Jon Seymour, 2005-06-11 06:36

Subject: Re: do people use the 'git' command?
Message-ID: <2cfc40320506102336332d9471@mail.gmail.com>
URL: https://gitlist.dev/e/2cfc40320506102336332d9471%40mail.gmail.com
In-Reply-To: <2cfc4032050610233651423b5a@mail.gmail.com>

```
> 
> ...but then I tend towards in the randomly incoherent.
> 
> jon.
> 
bollocks :-)!

```

## Junio C Hamano, 2005-06-11 07:02

Subject: Re: do people use the 'git' command?
Message-ID: <7vpsutz88z.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vpsutz88z.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <2cfc403205061023346c03a25b@mail.gmail.com>

```
>>>>> "JS" == Jon Seymour <jon.seymour@gmail.com> writes:

JS> Sebastian,
JS> What is the justification for removing it?

JS> As it stands, git serves a useful function in that it provides a
JS> single point through which access to all git-*-scripts is channeled,
JS> yet still allows each script to be maintained as a separate entity,
JS> coherent entity.

If I understand him correctly, Sebastian's point was that it
channels only to git-*-scripts without channelling to any of the
git-* binaries.

But the real point of "git" wrapper is merely to present CVS and
SVN refugees the structure they are familiar with: a single
command having a set of subcommands.

It is just an "introductory" thing and there is no compelling
reason to expose the low level core GIT commands.  When the
refugees are comfortable with how GIT does things, they will
either use Porcelain and not touch the Plumbing, or they will
learn to use git-* commands themselves.  In the former case, not
having access to core GIT commands through "git" wrapper is not
an issue.  In the latter case, they will learn to type
git-*-script in no time, and at that point "git" wrapper will be
just a short-hand; again not having access to core GIT commands
through "git" wrapper is not an issue either.

Personally I think removal of "git" script is a bad idea.


```

## Russ Allbery, 2005-06-11 07:20

Subject: Re: do people use the 'git' command?
Message-ID: <87r7f9xsux.fsf@windlord.stanford.edu>
URL: https://gitlist.dev/e/87r7f9xsux.fsf%40windlord.stanford.edu
In-Reply-To: <2cfc403205061023346c03a25b@mail.gmail.com>

```
Jon Seymour <jon.seymour@gmail.com> writes:

> What is the justification for removing it?

The conflict with the existing GIT package is painful for distributions.
Packagers try hard to avoid any file conflicts between packages, since it
means that both packages cannot be used at the same time, and it turns out
in discussion on the Debian mailing lists that people actually do use GIT.

Managing the conflict between two programs that do completely different
things and are named the same thing is really annoying.

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>

```

## Jon Seymour, 2005-06-11 07:20

Subject: Re: do people use the 'git' command?
Message-ID: <2cfc403205061100204cd43334@mail.gmail.com>
URL: https://gitlist.dev/e/2cfc403205061100204cd43334%40mail.gmail.com
In-Reply-To: <7vpsutz88z.fsf@assigned-by-dhcp.cox.net>

```
On 6/11/05, Junio C Hamano <junkio@cox.net> wrote:
> >>>>> "JS" == Jon Seymour <jon.seymour@gmail.com> writes:
> 
> JS> Sebastian,
> JS> What is the justification for removing it?
> 
> JS> As it stands, git serves a useful function in that it provides a
> JS> single point through which access to all git-*-scripts is channeled,
> JS> yet still allows each script to be maintained as a separate entity,
> JS> coherent entity.
> 
> If I understand him correctly, Sebastian's point was that it
> channels only to git-*-scripts without channelling to any of the
> git-* binaries.
> 

What about generalizing it a little, so that:

     git word

calls:

    git-word-script if it exists and is executable in the path

or, if not,

    git-word if it exists and is executable in the path.

Then:

    git update-cache 

would work as expected.

jon.

```

## Jon Seymour, 2005-06-11 07:29

Subject: Re: do people use the 'git' command?
Message-ID: <2cfc403205061100295ca06ed3@mail.gmail.com>
URL: https://gitlist.dev/e/2cfc403205061100295ca06ed3%40mail.gmail.com
In-Reply-To: <87r7f9xsux.fsf@windlord.stanford.edu>

```
On 6/11/05, Russ Allbery <rra@stanford.edu> wrote:
> Jon Seymour <jon.seymour@gmail.com> writes:
> 
> > What is the justification for removing it?
> 
> The conflict with the existing GIT package is painful for distributions.
> Packagers try hard to avoid any file conflicts between packages, since it
> means that both packages cannot be used at the same time, and it turns out
> in discussion on the Debian mailing lists that people actually do use GIT.
> 
> Managing the conflict between two programs that do completely different
> things and are named the same thing is really annoying.
> 

Ah, ok...sorry didn't realise there was a naming conflict.

How about renaming:
    "git" to "g.t"
 
And then explaining the idiosyncratic name in git(7).

jon.

```

## Junio C Hamano, 2005-06-11 07:50

Subject: Re: do people use the 'git' command?
Message-ID: <7vu0k5xrfz.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vu0k5xrfz.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <2cfc403205061100204cd43334@mail.gmail.com>

```
>>>>> "JS" == Jon Seymour <jon.seymour@gmail.com> writes:

JS> Then:

JS>     git update-cache 

JS> would work as expected.

I'd rather teach the user to say git-update-cache once they
learned how git works.

Let's stop and think.  Compare lower level binaries and
git-*-script commands, especially paying attention to the level
of operation of what they do.  Notice the difference?

The git-*-script commands are already more or less Porcelain
themselves, and for that reason alone, they deserve to have
CVS/SVN familiarity wrapper.  They are designed to be usable
even by people who are still not familiar with the GIT way of
doing things, and the purpose of the "git" wrapper is to help
these people try putting their toes in the water.  Once they
understand how these scripts work, they either care about
Plumbing because they want to do something existing Porcelain
layers do not offer (in which case they would write their own
Porcelain extensions using Plumbing commands).  Or with luck,
they may not have to worry about Plumbing at all.

I grant you that what the current "git" wrapper offers is not
Porcelain enough, and to perform anything meaningful you either
need to use Porcelain or bare Plumbing commands yourself.  But
when that day comes, "git update-cache" is not something you
would want to have anyway.  You would rather want to have things
like "git add" and "git remove", which are written in terms of
git-update-cache.

See what I am saying?


```

## Jon Seymour, 2005-06-11 08:48

Subject: Re: do people use the 'git' command?
Message-ID: <2cfc4032050611014878d54c71@mail.gmail.com>
URL: https://gitlist.dev/e/2cfc4032050611014878d54c71%40mail.gmail.com
In-Reply-To: <7vu0k5xrfz.fsf@assigned-by-dhcp.cox.net>

```
> I grant you that what the current "git" wrapper offers is not
> Porcelain enough, and to perform anything meaningful you either
> need to use Porcelain or bare Plumbing commands yourself.  But
> when that day comes, "git update-cache" is not something you
> would want to have anyway.  You would rather want to have things
> like "git add" and "git remove", which are written in terms of
> git-update-cache.
> 
> See what I am saying?

Ok, that's fair enough. It is a sound to expose bits of plumbing to
the porcelain in a very slow and deliberate way as the porcelain is
polished, rather than automatically surfacing plumbing as it gets
created by over-enthusiastic plumbers.

My own learning experience has been exactly the other way around to
the intended use of the git script - I have been learning to use the
core git commands, writing my own wrappers where that is convenient
and adopting those of others only when I completely understand what
they are doing - I have been learning it inside out, I guess.

For example, I only recently discovered what git-commit-script does  [
and I like it - btw - nice behaviour ]!

jon.
-- 
homepage: http://www.zeta.org.au/~jon/
blog: http://orwelliantremors.blogspot.com/

```

## Junio C Hamano, 2005-06-11 09:58

Subject: Re: do people use the 'git' command?
Message-ID: <7v7jh1xli5.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v7jh1xli5.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <87r7f9xsux.fsf@windlord.stanford.edu>

```
>>>>> "RA" == Russ Allbery <rra@stanford.edu> writes:

RA> ... it turns out in discussion on the Debian mailing lists
RA> that people actually do use GIT.

I thought the Debian way to resolve this kind of naming conflict
was to rename _both_ commands involved.  Sorry if this was a
misconception, but I think I read that somewhere in the
developer's guide.


```

## Tommy M. McGuire, 2005-06-11 16:01

Subject: Re: do people use the 'git' command?
Message-ID: <20050611160135.GA6522@immutable.crsr.net>
URL: https://gitlist.dev/e/20050611160135.GA6522%40immutable.crsr.net
In-Reply-To: <7vpsutz88z.fsf@assigned-by-dhcp.cox.net>

```
On Sat, Jun 11, 2005 at 12:02:20AM -0700, Junio C Hamano wrote:
> But the real point of "git" wrapper is merely to present CVS and SVN
> refugees the structure they are familiar with: a single command having
> a set of subcommands.

CVS and SVN refugees (like me :-)) should probably be pointed to
porcelain.  Showing them a mixture of relatively unpolished "git
<subcommand>" and "git-*" commands is not likely to impress them with
the simplicity and elegance of the tool.  I don't think the surface
structure of "<command> <subcommand>" is an important factor, and
the first time they see a 40-hex-digit number, they'll be headed for the
hills.

> Personally I think removal of "git" script is a bad idea.

I'd agree, for the opposite reason: the git script is a decent interface
for power users who don't want to use anything porcelainish.  It also
provides a good place to hang custom functionality.

-- 
Tommy McGuire

```

## Russ Allbery, 2005-06-11 16:45

Subject: Re: do people use the 'git' command?
Message-ID: <87br6cn8p2.fsf@windlord.stanford.edu>
URL: https://gitlist.dev/e/87br6cn8p2.fsf%40windlord.stanford.edu
In-Reply-To: <7v7jh1xli5.fsf@assigned-by-dhcp.cox.net>

```
Junio C Hamano <junkio@cox.net> writes:
>>>>>> "RA" == Russ Allbery <rra@stanford.edu> writes:

> RA> ... it turns out in discussion on the Debian mailing lists
> RA> that people actually do use GIT.

> I thought the Debian way to resolve this kind of naming conflict
> was to rename _both_ commands involved.  Sorry if this was a
> misconception, but I think I read that somewhere in the
> developer's guide.

There are various ways in which you can deal with the problem, but then
you end up making that distribution different possibly than any other and
certainly different than the behavior people get when they build the
package themselves.  Then users ask questions here talking about running
"cogito-git" or the like and developers go "I've never heard of that
program," users try to use recipes off the net and the command isn't
found, etc.

Users of a tool like git are in a better position to figure this sort of
thing out, but it's still rather annoying and frustrating.

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>

```

## Sebastian Kuzminsky, 2005-06-11 17:14

Subject: Re: do people use the 'git' command?
Message-ID: <E1Dh9ZR-0004xU-4q@highlab.com>
URL: https://gitlist.dev/e/E1Dh9ZR-0004xU-4q%40highlab.com
In-Reply-To: <20050610185945.GB13102@vrfy.org>

```
Kay Sievers <kay.sievers@suse.de> wrote:
> On Fri, Jun 10, 2005 at 12:53:32PM -0600, Sebastian Kuzminsky wrote:
> > What good is the 'git' command?  It's a shortcut to run the
> > "git-$FUNCTION-script" programs, but it doesnt do the "git-$FUNCTION"
> > programs.  It just doesnt seem worth its inode, to me.  And it doesnt seem
> > worth the pain to distribution maintainers (like me) to avoid the naming
> > conflict with GNU Interactive Tools' /usr/bin/git.
> 
> Well, drop the GNU Interactive Tools instead. We've removed it from the
> SuSE packages and have a "real" git package now. :)

That sounds nice!  If only it weren't for all those pesky users...


-- 
Sebastian Kuzminsky

```
