Re: [msysGit] git rev-parse broken on Git for Windows

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 ----- Original Message -----
From: Thomas Rast
Date: 7/30/2010 3:02 AM
Johannes Schindelin wrote:
On Thu, 29 Jul 2010, Joshua Jensen wrote:
  9c7304e3e39ed397b3cc6566573333e2698a52b4 (print the usage string on stdout
instead of stderr) and then 47e9cd28f8a404a0d6293935252ddca5fc243931
(parseopt: wrap rev-parse --parseopt usage for eval consumption) break the
following line from the manual and 'git subtree' on msysGit:

eval $(echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?)
Both commits are from Junio's 'next' branch. I Cc:ed the authors of both
commits.
Can you elaborate on "break"?

Because as you can see in git-sh-setup.sh, the "official" user of
parseopt does

	eval "$(
		echo "$OPTIONS_SPEC" |
			git rev-parse --parseopt $parseopt_extra -- "$@" ||
		echo exit $?
	)"

So AFAICS they only differ in the quoting.  And the latter works.
Here is the output from Git Bash:

$ git subtree
C:\Program Files (x86)\Git/libexec/git-core/git-subtree: eval: line 31: syntax error near unexpected token `<' C:\Program Files (x86)\Git/libexec/git-core/git-subtree: eval: line 31: `cat <<\EOF usage: git subtree add --prefix=<prefix> <commit > or: git subtree merge --prefix=<prefix> <commit> or: git subtree pull --prefix=<prefix> <repository> <refspec...> or: git subtree push --prefix=<prefix> <repository> <refspec...> or: git subtree split --prefix=<prefix> <commit...> -h, --help show the help -q qui et -d show debug messages -P, --prefix ... the name of the subdir to split out -m, --message ... use the given message as the commit message for the merge commit options for 'split' --annotate ... add a prefix to commit message of new commits -b, --branch ... crea te a new branch from the split subtree --ignore-joins ignore prior --rejoin commits --onto ... try connecting new tree to an existin g one --rejoin merge the new branch back into HEAD options for 'add', 'merge', 'pull' and 'push' --squash merge subtree changes as a
 single commit EOF exit 129'
Usage: git subtree

The example from the git rev-parse documentation fails in the same way:

eval `echo "$OPTS_SPEC" | git rev-parse --parseopt $parseopt_extra -- "$@" || echo exit $?`

What does work is the example you gave with the quotes:

eval "$(echo "$OPTS_SPEC" | git rev-parse --parseopt $parseopt_extra -- "$@" || echo exit $?)"

I can live with modifying 'git subtree' in this manner, but something about one or both of those rev-parse commits cause the non-quoted version $(echo...) version in git subtree and the `echo...` version to break.

Josh

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]