Merge branch 'jc/maint-grep-untracked-exclude' into jc/grep-untracked-exclude
[gitweb.git] / Documentation / git-check-attr.txt
index 2b821f2a1d70fa108ce279135fd5028453a04fd9..1f7312a1895ae66901e5472132406d01303da1f8 100644 (file)
@@ -3,38 +3,103 @@ git-check-attr(1)
 
 NAME
 ----
-git-check-attr - Display gitattributes information.
+git-check-attr - Display gitattributes information
 
 
 SYNOPSIS
 --------
-'git check-attr' attr... [--] pathname...
+[verse]
+'git check-attr' [-a | --all | attr...] [--] pathname...
+'git check-attr' --stdin [-z] [-a | --all | attr...] < <list-of-paths>
 
 DESCRIPTION
 -----------
-For every pathname, this command will list if each attr is 'unspecified',
+For every pathname, this command will list if each attribute is 'unspecified',
 'set', or 'unset' as a gitattribute on that pathname.
 
 OPTIONS
 -------
+-a, --all::
+       List all attributes that are associated with the specified
+       paths.  If this option is used, then 'unspecified' attributes
+       will not be included in the output.
+
+--stdin::
+       Read file names from stdin instead of from the command-line.
+
+-z::
+       Only meaningful with `--stdin`; paths are separated with a
+       NUL character instead of a linefeed character.
+
 \--::
-       Interpret all preceding arguments as attributes, and all following
-       arguments as path names. If not supplied, only the first argument will
-       be treated as an attribute.
+       Interpret all preceding arguments as attributes and all following
+       arguments as path names.
 
+If none of `--stdin`, `--all`, or `--` is used, the first argument
+will be treated as an attribute and the rest of the arguments as
+pathnames.
 
-SEE ALSO
+OUTPUT
+------
+
+The output is of the form:
+<path> COLON SP <attribute> COLON SP <info> LF
+
+<path> is the path of a file being queried, <attribute> is an attribute
+being queried and <info> can be either:
+
+'unspecified';; when the attribute is not defined for the path.
+'unset';;      when the attribute is defined as false.
+'set';;                when the attribute is defined as true.
+<value>;;      when a value has been assigned to the attribute.
+
+EXAMPLES
 --------
-linkgit:gitattributes[5].
 
+In the examples, the following '.gitattributes' file is used:
+---------------
+*.java diff=java -crlf myAttr
+NoMyAttr.java !myAttr
+README caveat=unspecified
+---------------
 
-Author
-------
-Written by Junio C Hamano <gitster@pobox.com>
+* Listing a single attribute:
+---------------
+$ git check-attr diff org/example/MyClass.java
+org/example/MyClass.java: diff: java
+---------------
+
+* Listing multiple attributes for a file:
+---------------
+$ git check-attr crlf diff myAttr -- org/example/MyClass.java
+org/example/MyClass.java: crlf: unset
+org/example/MyClass.java: diff: java
+org/example/MyClass.java: myAttr: set
+---------------
+
+* Listing all attributes for a file:
+---------------
+$ git check-attr --all -- org/example/MyClass.java
+org/example/MyClass.java: diff: java
+org/example/MyClass.java: myAttr: set
+---------------
+
+* Listing an attribute for multiple files:
+---------------
+$ git check-attr myAttr -- org/example/MyClass.java org/example/NoMyAttr.java
+org/example/MyClass.java: myAttr: set
+org/example/NoMyAttr.java: myAttr: unspecified
+---------------
 
-Documentation
---------------
-Documentation by James Bowes.
+* Not all values are equally unambiguous:
+---------------
+$ git check-attr caveat README
+README: caveat: unspecified
+---------------
+
+SEE ALSO
+--------
+linkgit:gitattributes[5].
 
 GIT
 ---