John Keeping <> writes:

> The options section of the git-rev-parse manual page has grown
> organically so that there now does not seem to be much logic behind the
> ordering of the options.  It also does not make it clear that certain
> options must appear first on the command line.
> Address this by reorganising the options into groups with subheadings.
> The text of option descriptions does not change.
> Signed-off-by: John Keeping <>

The idea to introduce a general grouping makes a lot of sense, I think.

> +Operation Modes
> +~~~~~~~~~~~~~~~
> +
> +Each of these options must appear first on the command line.
> +
> +--local-env-vars::
> +     List the GIT_* environment variables that are local to the
> +     repository (e.g. GIT_DIR or GIT_WORK_TREE, but not GIT_EDITOR).
> +     Only the names of the variables are listed, not their value,
> +     even if they are set.

Honestly speaking, "must appear first" for "--local-env-vars" is a
bug in implementations of this option, I think.  It does not make
sense to ask

        git rev-parse --local-env-vars -- Makefile

and the command operates on "--" and "Makefile" in the normal
operation mode, not "local-env-vars" mode.

> +
>  --parseopt::
>       Use 'git rev-parse' in option parsing mode (see PARSEOPT section below).
> +--resolve-git-dir <path>::
> +     Check if <path> is a valid repository or a gitfile that
> +     points at a valid repository, and print the location of the
> +     repository.  If <path> is a gitfile then the resolved path
> +     to the real repository is printed.
> +
> +--sq-quote::
> +     Use 'git rev-parse' in shell quoting mode (see SQ-QUOTE
> +     section below). In contrast to the `--sq` option below, this
> +     mode does only quoting. Nothing else is done to command input.

> +Options for Input
> +~~~~~~~~~~~~~~~~~
> +--show-toplevel::
> +     Show the absolute path of the top-level directory.
> +
> +--show-cdup::
> +     When the command is invoked from a subdirectory, show the
> +     path of the top-level directory relative to the current
> +     directory (typically a sequence of "../", or an empty string).
> +
>  --is-inside-git-dir::
>       When the current working directory is below the repository
>       directory print "true", otherwise "false".
> @@ -188,17 +219,10 @@ print a message to stderr and exit with nonzero status.
>  --is-bare-repository::
>       When the repository is bare print "true", otherwise "false".
> +--show-prefix::
> +     When the command is invoked from a subdirectory, show the
> +     path of the current directory relative to the top-level
> +     directory.

I am not sure if --show-*, --is-*, and --git-dir belongs to "options
for input".  They are truly kitchen sink options to ask for various
aspects of the repository and directory, and it may be equally valid
(or even more valid) to consider them as separate operation modes.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to