summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2005-07-28 23:53:29 -0700
committerLibravatar Junio C Hamano <junkio@cox.net>2005-07-29 17:21:47 -0700
commit1df092d211868b3b74f5b3981fad9b195a0bedad (patch)
treee903c74b45c9a2e585f3c71e98ef3145a7e89927 /Documentation
parentls-files: rework exclude patterns. (diff)
downloadtgif-1df092d211868b3b74f5b3981fad9b195a0bedad.tar.xz
Documentation and tests: ls-files exclude pattern.
Update the tests and documentation to match the new "last one determines its fate" semantics. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/git-ls-files.txt27
1 files changed, 14 insertions, 13 deletions
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index 7ac6c7d84a..d207219405 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -115,14 +115,14 @@ An exclude pattern file used by (2) and (3) contains one pattern
per line. A line that starts with a '#' can be used as comment
for readability.
-The list of patterns that is in effect at a given time is
-built and ordered in the following way:
+There are three lists of patterns that are in effect at a given
+time. They are built and ordered in the following way:
- * --exclude=<pattern> and lines read from --exclude-from=<file>
- come at the beginning of the list of patterns, in the order
- given on the command line. Patterns that come from the file
- specified with --exclude-from are ordered in the same order
- as they appear in the file.
+ * --exclude=<pattern> from the command line; patterns are
+ ordered in the same order as they appear on the command line.
+
+ * lines read from --exclude-from=<file>; patterns are ordered
+ in the same order as they appear in the file.
* When --exclude-per-directory=<name> is specified, upon
entering a directory that has such a file, its contents are
@@ -130,11 +130,12 @@ built and ordered in the following way:
are popped off when leaving the directory.
Each pattern in the pattern list specifies "a match pattern" and
-optionally the fate --- either a file that matches the pattern
-is considered excluded or included. By default, this being
-"exclude" mechanism, the fate is "excluded". A filename is
-examined against the patterns in the list, and the first match
-determines its fate.
+optionally the fate;n either a file that matches the pattern is
+considered excluded or included. A filename is matched against
+the patterns in the three lists; the --exclude-from list is
+checked first, then the --exclude-per-directory list, and then
+finally the --exclude list. The last match determines its fate.
+If there is no match in the three lists, the fate is "included".
A pattern specified on the command line with --exclude or read
from the file specified with --exclude-from is relative to the
@@ -168,9 +169,9 @@ An example:
*.[oa]
$ cat Documentation/.gitignore
# ignore generated html files,
+ *.html
# except foo.html which is maintained by hand
!foo.html
- *.html
$ git-ls-files --ignored \
--exclude='Documentation/*.[0-9]' \
--exclude-from=.git/ignore \