git-add--interactive: Improve behavior on bogus input
[gitweb.git] / Documentation / git-show-ref.txt
index b724d832c8bef16c46bc7955cdbe7033d713e4a7..2355aa5e86d21766bbde61e3188e1c9539738150 100644 (file)
@@ -9,7 +9,8 @@ SYNOPSIS
 --------
 [verse]
 'git-show-ref' [-q|--quiet] [--verify] [-h|--head] [-d|--dereference]
-            [-s|--hash] [--tags] [--heads] [--] <pattern>...
+            [-s|--hash] [--abbrev] [--tags] [--heads] [--] <pattern>...
+'git-show-ref' --exclude-existing[=pattern]
 
 DESCRIPTION
 -----------
@@ -19,6 +20,9 @@ commit IDs. Results can be filtered using a pattern and tags can be
 dereferenced into object IDs. Additionally, it can be used to test whether a
 particular ref exists.
 
+The --exclude-existing form is a filter that does the inverse, it shows the
+refs from stdin that don't exist in the local repository.
+
 Use of this utility is encouraged in favor of directly accessing files under
 in the `.git` directory.
 
@@ -37,14 +41,13 @@ OPTIONS
 
 -d, --dereference::
 
-       Dereference tags into object IDs. They will be shown with "^{}"
+       Dereference tags into object IDs as well. They will be shown with "^{}"
        appended.
 
 -s, --hash::
 
        Only show the SHA1 hash, not the reference name. When also using
-       --dereference the dereferenced tag will still be shown after the SHA1,
-       this maybe a bug.
+       --dereference the dereferenced tag will still be shown after the SHA1.
 
 --verify::
 
@@ -52,11 +55,28 @@ OPTIONS
        Aside from returning an error code of 1, it will also print an error
        message if '--quiet' was not specified.
 
+--abbrev, --abbrev=len::
+
+       Abbreviate the object name.  When using `--hash`, you do
+       not have to say `--hash --abbrev`; `--hash=len` would do.
+
 -q, --quiet::
 
        Do not print any results to stdout. When combined with '--verify' this
        can be used to silently check if a reference exists.
 
+--exclude-existing, --exclude-existing=pattern::
+
+       Make git-show-ref act as a filter that reads refs from stdin of the
+       form "^(?:<anything>\s)?<refname>(?:\^\{\})?$" and performs the
+       following actions on each:
+       (1) strip "^{}" at the end of line if any;
+       (2) ignore if pattern is provided and does not head-match refname;
+       (3) warn if refname is not a well-formed refname and skip;
+       (4) ignore if refname is a ref that exists in the local repository;
+       (5) otherwise output the line.
+
+
 <pattern>::
 
        Show references matching one or more patterns.