Subject: Re: [PATCH] Add help details to git help command.

From: Steven Cole <[email-masked]>
Date: Mon, 18 Apr 2005 10:59:46 -0600

Petr Baudis wrote:
> Dear diary, on Mon, Apr 18, 2005 at 06:42:26AM CEST, I got a letter
> where Steven Cole <[email-masked]> told me that...
[snippage]
> 
>>This patch will provide the comment lines in the shell script associated
>>with the command, cleaned up a bit for presentation.
>>
>>BUGS: This will also print any comments in the entire file, which may
>>not be desired.  If a command name and shell script filename
>>do not follow the usual convention, this won't work, e.g. ci for commit.
> 
> 
> Hey, those BUGS are the only slightly non-trivial thing on the whole
> thing! I could do this patch myself... ;-) Also, you don't want to print
> the first newline and the Copyright notices.
> 

Fixed extra vertical whitespace, Copyright notice problems, and issue
with git help ci.

Here's a better version.  Didn't fix the more interesting bugs, as I'm
pressed for time (aren't we all).  Perhaps someone can polish this up.

Anyway, I think it's pretty useful in its present form.

Thanks,
Steven

---------

This patch will provide the comment lines in the shell script associated
with the command, cleaned up a bit for presentation.

BUGS: This will also print any comments in the entire file, which may
not be desired.  If a command name and shell script filename
do not follow the usual convention, this won't work.

git: b648169640025bd68d1b27a0fcc85b65d85e4440
--- git
+++ git	2005-04-18 10:34:17.000000000 -0600
@@ -19,6 +19,11 @@

  help () {
+
+command=$1
+scriptfile=git$command.sh
+
+if [ ! $command ]; then
  	cat <<__END__
  The GIT scripted toolkit  $(gitversion.sh)

@@ -48,7 +53,10 @@
  	track		[RNAME]
  	version

+Additional help is available with: git help COMMAND
+
  Note that these expressions can be used interchangably as "ID"s:
+
  	empty string (current HEAD)
  	local (the local branch if tracking a remote one)
  	remote name (as registered with git addremote)
@@ -57,6 +65,14 @@
  	commit object hash (as returned by commit-id)
  	tree object hash (accepted only by some commands)
  __END__
+fi
+if [ $scriptfile = "gitci.sh" ]; then
+	scriptfile="gitcommit.sh"
+fi
+if [ ! $scriptfile = "git.sh" ]; then
+	grep ^# $scriptfile | grep -v "!/bin" | grep -v "(c)" \
+	| cut -c 2- | grep ^.
+fi
  }