rev-parse: add --prefix option
[gitweb.git] / Documentation / git-rev-parse.txt
index 1f9ed6cfd28622afcf269eb8dac05fb9414d9901..993903c9f123831fdfb25c8e22e213fd6c6a7c96 100644 (file)
@@ -59,6 +59,22 @@ OPTIONS
        If there is no parameter given by the user, use `<arg>`
        instead.
 
+--prefix <arg>::
+       Behave as if 'git rev-parse' was invoked from the `<arg>`
+       subdirectory of the working tree.  Any relative filenames are
+       resolved as if they are prefixed by `<arg>` and will be printed
+       in that form.
++
+This can be used to convert arguments to a command run in a subdirectory
+so that they can still be used after moving to the top-level of the
+repository.  For example:
++
+----
+prefix=$(git rev-parse --show-prefix)
+cd "$(git rev-parse --show-toplevel)"
+eval "set -- $(git rev-parse --sq --prefix "$prefix" "$@")"
+----
+
 --verify::
        Verify that exactly one parameter is provided, and that it
        can be turned into a raw 20-byte SHA-1 that can be used to
@@ -95,7 +111,7 @@ can be used.
        one.
 
 --symbolic::
-       Usually the object names are output in SHA1 form (with
+       Usually the object names are output in SHA-1 form (with
        possible '{caret}' prefix); this option makes them output in a
        form as close to the original input as possible.
 
@@ -180,7 +196,7 @@ print a message to stderr and exit with nonzero status.
 
 --short::
 --short=number::
-       Instead of outputting the full SHA1 values of object names try to
+       Instead of outputting the full SHA-1 values of object names try to
        abbreviate them to a shorter unique name. When no length is specified
        7 is used. The minimum length is 4.