rev-parse --parseopt: add the --stuck-long mode
commitf8c872127d4c48a6ec02abce34cb059ddeb6402a
authorNicolas Vigier <boklm@mars-attacks.org>
Thu, 31 Oct 2013 11:08:29 +0000 (31 12:08 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 31 Oct 2013 22:47:41 +0000 (31 15:47 -0700)
tree6667fb8cefbabb17ae4fa670a4ea882932fe8d65
parentb0d12fc9b23a0f656fe3a5dbe2899e85b7e2f5c0
rev-parse --parseopt: add the --stuck-long mode

Add the --stuck-long option to output the options in their long form
if available, and with their arguments stuck.

Contrary to the default form (non stuck arguments and short options),
this can be parsed unambiguously when using options with optional
arguments :

 - in the non stuck form, when an option is taking an optional argument
   you cannot know if the next argument is its optional argument, or the
   next option.

 - the long options form allows to differentiate between an empty argument
   '--option=' and an unset argument '--option', which is not possible
   with short options.

Signed-off-by: Nicolas Vigier <boklm@mars-attacks.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-rev-parse.txt
builtin/rev-parse.c
t/t1502-rev-parse-parseopt.sh