From: Junio C Hamano <junkio@cox.net>
To: <davidk@lysator.liu.se>
Cc: git@vger.kernel.org, Linus Torvalds <torvalds@osdl.org>
Subject: Re: Tool renames? was Re: First stab at glossary
Date: Tue, 06 Sep 2005 16:54:01 -0700 [thread overview]
Message-ID: <7v1x41g3c6.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: u5tek82bmlb.fsf@fidgit.hq.vtech
> By the way, I'm not sure how the 'git' script is supposed to be used.
> I know that if there is a git-foo-script file in your path, you can
> run it as 'git foo'. But what about e.g. git-init-db? You can run
> that as 'git init-db' today. And 'git read-cache' should work too.
> And 'git ls-files', and 'git rev-parse', and 'git merge-one-file' and
> 'git sh-setup-script' in decreasing order of usefulness...
>
> But running 'git' without arguments only list the -script commands as
> available.
You are correct. I think 'git' showing only *-script was done
as an attempt to give a list of Porcelainish commands, excluding
the core commands that people are not supposed to be typing from
the command line. It so happened that all of the Porcelainish
commands were scripts.
But what Linus wants *-script to mean is editability in the
source tree (his "grep" and "em" examples). The command being
Porcelainish and the command being implemented as a script tend
to have strong correlations, but in principle they are
orthogonal. As you mention, 'git merge-one-file' is not really
useful standalone, neither is 'git sh-setup'. On the other
hand, 'git fsck-cache' is.
My proposal to have git-archimport.perl in the source tree and
install it as $(bindir)/git-archimport solves the editability
issues (sorry, Linus, you will have to say "em *.sh *.perl"
instead of "em *-script" if we did this) and simplifies the
first half of the 'git' wrapper (it just needs to attempt
running "git-$1"), but does not help what the latter half of
'git' wrapper does (to give you the list of Porcelainish
commands).
To make 'git' wrapper produce useful 'list of subcommands', we
need to come up with a list of Porcelainish commands, be they
written in C or sh or Perl, and tell 'git' about that list.
Current implementation cheats by assuming everything that ends
with *-script are such, but it does not have to stay that way.
I'd nominate all $(SCRIPTS) in Makefile and tools/Makefile
except *1*, plus *2* as the list of subcommands 'git' wrapper
would show.
List *1*: implemented as script but not Porcelainish.
git
git-merge-one-file-script
git-sh-setup-script
List *2*: implemented in C but Porcelainish.
git-init-db
git-fsck-cache
git-get-tar-commit-id
git-apply
git-patch-id
git-pack-objects
git-show-branch
next prev parent reply other threads:[~2005-09-06 23:54 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-17 14:56 First stab at glossary Johannes Schindelin
2005-08-17 19:13 ` Daniel Barkalow
2005-08-17 20:05 ` Johannes Schindelin
2005-08-17 20:57 ` Junio C Hamano
2005-08-17 21:24 ` Johannes Schindelin
2005-08-17 22:09 ` Daniel Barkalow
2005-08-17 22:19 ` Johannes Schindelin
2005-08-24 15:03 ` Tool renames? was " Tim Ottinger
2005-08-25 1:16 ` Junio C Hamano
2005-09-01 17:55 ` Tim Ottinger
2005-09-02 0:38 ` Junio C Hamano
2005-09-02 1:50 ` Horst von Brand
2005-09-06 16:42 ` Tim Ottinger
2005-09-02 18:09 ` Daniel Barkalow
2005-09-02 18:33 ` Junio C Hamano
2005-09-03 6:05 ` Junio C Hamano
2005-09-03 6:54 ` Daniel Barkalow
2005-09-03 8:29 ` Junio C Hamano
2005-09-04 17:23 ` Daniel Barkalow
2005-09-04 21:43 ` Horst von Brand
2005-09-05 0:03 ` Junio C Hamano
2005-09-05 0:26 ` Peter Williams
2005-09-05 0:35 ` Junio C Hamano
2005-09-05 0:45 ` Peter Williams
2005-09-05 0:54 ` Horst von Brand
2005-09-05 1:35 ` Junio C Hamano
2005-09-05 14:41 ` Linus Torvalds
2005-09-05 15:13 ` David Kågedal
2005-09-05 16:04 ` Linus Torvalds
2005-09-05 16:28 ` David Kågedal
2005-09-05 18:23 ` Junio C Hamano
2005-09-05 18:13 ` Junio C Hamano
2005-09-06 0:13 ` Martin Langhoff
2005-09-06 7:16 ` Linus Torvalds
2005-09-06 7:46 ` Junio C Hamano
2005-09-06 7:59 ` Linus Torvalds
2005-09-06 8:38 ` Junio C Hamano
2005-09-06 8:57 ` David Kågedal
2005-09-06 23:54 ` Junio C Hamano [this message]
2005-09-08 1:04 ` Tool renames Junio C Hamano
2005-09-15 5:56 ` H. Peter Anvin
2005-09-15 8:03 ` Junio C Hamano
2005-09-15 8:52 ` Junio C Hamano
2005-09-16 5:44 ` H. Peter Anvin
2005-09-16 6:20 ` Junio C Hamano
2005-09-06 7:53 ` Tool renames? was Re: First stab at glossary Martin Langhoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7v1x41g3c6.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=davidk@lysator.liu.se \
--cc=git@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).