git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] One Git To Rule Them All
@ 2005-06-01  5:58 Jason McMullan
  2005-06-01  6:21 ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Jason McMullan @ 2005-06-01  5:58 UTC (permalink / raw)
  To: git

The following three patches (two prep and one 'real') fold all the
git-* commands into one 'git' command. This is useful for:

	* Setting up git on a new machine - just one file to send
	* Porcelain that customizes git (ie cogito) can have a
	  'cg-git' instead of trouncing on the default Plumbing git.
	* Quick-ref help on all the Plumbing commands for free!
	* git-<mumble> symlinks to git work as expected
	* Documentation is now enforced for building
          (bug? feature? you decide)

$ git help
GIT Commands:

	local-pull              Duplicates another GIT repository on a local system
	http-pull               Downloads a remote GIT repository via HTTP
	rpull                   Pulls from a remote repository over ssh connection
	rpush                   Helper "server-side" program used by git-rpull
	rev-tree                Provides the revision tree for one or more commits
	rev-list                Lists commit objects in reverse chronological order
	export                  Exports each commit and a diff against each of its parents
	read-tree               Reads tree information into the directory cache
	checkout-cache          Copy files from the cache to the working directory
	update-cache            Modifies the index or directory cache
	ls-tree                 Lists the contents of a tree object.
	ls-files                Information about files in the cache/working directory
	cat-file                Provide content or type information for repository objects
	unpack-file             Creates a temporary file with a blob's contents
	diff-files              Compares files in the working tree and the cache
	diff-cache              Compares content and mode of blobs between the cache and repository
	diff-tree               Compares the content and mode of blobs found via two tree objects
	merge-base              Finds as good a common ancestor as possible for a merge
	merge-cache             Runs a merge for files needing merging
	apply                   Apply a patch against the current index cache/working directory
	check-files             Verify a list of files are up-to-date
	write-tree              Creates a tree from the current cache
	commit-tree             Creates a new commit object
	mktag                   Creates a tag object
	init-db                 Creates an empty git object database
	fsck-cache              Verifies the connectivity and validity of the objects in the database
	convert-cache           Converts old-style GIT repository
	mkdelta                 Creates a delta object
	tar-tree                Creates a tar archive of the files in the named tree
	get-tar-commit-id       Show the commit ID embedded in a git-tar-tree file.
	write-blob              Creates a blob from a file
	diff-helper             Generates patch format output for git-diff-*
	stripspace              Strip space from stdin


-- 
Jason McMullan, Embedded Systems Engineer
412.481.5021 tel, 412.656.3519 cell, 208.694.9206 fax
jason@evillabs.net

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] One Git To Rule Them All
  2005-06-01  5:58 [PATCH] One Git To Rule Them All Jason McMullan
@ 2005-06-01  6:21 ` Junio C Hamano
  2005-06-01  6:35   ` Sebastian Kuzminsky
  2005-06-01 12:07   ` McMullan, Jason
  0 siblings, 2 replies; 6+ messages in thread
From: Junio C Hamano @ 2005-06-01  6:21 UTC (permalink / raw)
  To: Jason McMullan; +Cc: git

In my opinion, this is going backwards.

I think we had this discussion long time ago on the list, and
instead of using cvs/svn style of "cmd subcmd" syntax, the
consensus back then was that using "cmd-" prefix without spaces
is easier for making TAB completion to work (you do not have to
muck with command specific rules in the readline configuration),
and this is especially helpful for people who ends up using the
bare Plumbing. IIUC, the same reason is behind cg-* command set.

Having said that, for many people who do not wish to use the
bare Plumbing interactively, installing git-* commands in, say,
$(libexec)/git/ might be a more appropriate option.  But we have
to remember there are people who uses the bare Plumbing
interatively.  I think Jeff Garzik said he does not use Cogito,
and I suspect Linus does not either.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] One Git To Rule Them All
  2005-06-01  6:21 ` Junio C Hamano
@ 2005-06-01  6:35   ` Sebastian Kuzminsky
  2005-06-01 12:07   ` McMullan, Jason
  1 sibling, 0 replies; 6+ messages in thread
From: Sebastian Kuzminsky @ 2005-06-01  6:35 UTC (permalink / raw)
  To: git

Calling it 'git' would conflict with the git binary from GNU Interactive
Tools.  That other git seems to not be maintained, the last release was
on 2000-03-12.  But still...

I think it should have been called 'lit' from the start, for Linus'
Information Tracker.


-- 
Sebastian Kuzminsky

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] One Git To Rule Them All
  2005-06-01  6:21 ` Junio C Hamano
  2005-06-01  6:35   ` Sebastian Kuzminsky
@ 2005-06-01 12:07   ` McMullan, Jason
  2005-06-01 16:12     ` Junio C Hamano
  1 sibling, 1 reply; 6+ messages in thread
From: McMullan, Jason @ 2005-06-01 12:07 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

[-- Attachment #1: Type: text/plain, Size: 786 bytes --]

On Tue, 2005-05-31 at 23:21 -0700, Junio C Hamano wrote:
> I think we had this discussion long time ago on the list, and
> instead of using cvs/svn style of "cmd subcmd" syntax, the
> consensus back then was that using "cmd-" prefix without spaces
> is easier for making TAB completion to work (you do not have to
> muck with command specific rules in the readline configuration),
> and this is especially helpful for people who ends up using the
> bare Plumbing. IIUC, the same reason is behind cg-* command set.

But all the git-<mumble> commands are still there, as symlinks to
git. ie 'git-update-cache' and 'git update-cache' both work.

git-<TAB> still works.

Am I missing something here?

-- 
Jason McMullan <jason.mcmullan@timesys.com>
TimeSys Corporation


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] One Git To Rule Them All
  2005-06-01 12:07   ` McMullan, Jason
@ 2005-06-01 16:12     ` Junio C Hamano
  2005-06-01 16:22       ` McMullan, Jason
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2005-06-01 16:12 UTC (permalink / raw)
  To: McMullan, Jason; +Cc: Junio C Hamano, git

>>>>> "JM" == McMullan, Jason <jason.mcmullan@timesys.com> writes:

JM> Am I missing something here?

No, but one thing I failed to mention was that I am not a big
fan of busybox.  It is a cute hack to save "disk" space in an
embedded environment, but I find the way many commands are
bundled together a bit too hacky for my taste to use on my
regular work box.  I also suspect the change makes the
maintenance of the result harder than having them separate.

You said with this change there is only one file to install, but
you are not bundling the git-* scripts in the "single git", so
that claim is not true either.  If your patch handled the git-*
script parts as well, then I would have admired that part of the
change ;-).

Personally I find the mandatory documentation requirements this
patch brings us is a good thing ;-).


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] One Git To Rule Them All
  2005-06-01 16:12     ` Junio C Hamano
@ 2005-06-01 16:22       ` McMullan, Jason
  0 siblings, 0 replies; 6+ messages in thread
From: McMullan, Jason @ 2005-06-01 16:22 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

[-- Attachment #1: Type: text/plain, Size: 693 bytes --]

On Wed, 2005-06-01 at 09:12 -0700, Junio C Hamano wrote:
> You said with this change there is only one file to install, but
> you are not bundling the git-* scripts in the "single git", so
> that claim is not true either.  If your patch handled the git-*
> script parts as well, then I would have admired that part of the
> change ;-).

	You want git-* scripts? You sure? I can supply that patch
in about an hour... ;^)

> Personally I find the mandatory documentation requirements this
> patch brings us is a good thing ;-).

	So do I. Also, I really like the 'ordered by workflow'
help of 'git help'.

-- 
Jason McMullan <jason.mcmullan@timesys.com>
TimeSys Corporation


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-06-01 16:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-01  5:58 [PATCH] One Git To Rule Them All Jason McMullan
2005-06-01  6:21 ` Junio C Hamano
2005-06-01  6:35   ` Sebastian Kuzminsky
2005-06-01 12:07   ` McMullan, Jason
2005-06-01 16:12     ` Junio C Hamano
2005-06-01 16:22       ` McMullan, Jason

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).