From: Philip Oakley <philipoakley@iee.org> To: "Dr. Adam Nielsen" <admin@in-ici.net>, git@vger.kernel.org Subject: Re: [PATCH] make slash-rules more readable Date: Tue, 25 Jun 2019 12:31:41 +0100 Message-ID: <13f99ce6-f856-6554-5c14-1b1838d697d0@iee.org> (raw) In-Reply-To: <bd722415-1547-8db5-f88a-c35c8b48d8be@in-ici.net> only one minor point... On 25/06/2019 12:05, Dr. Adam Nielsen wrote: > Hi everyone, > > any comments about the patch note from 04.06 ? > > All the best, > Adam > > On 04.06.19 19:34, Dr. Adam Nielsen wrote: >> gitignore.txt: make slash-rules more readable >> >> Renew paragraphs relevant for pattern with slash. >> Aim to make it more clear and to avoid possible >> pitfalls for the reader. Add some examples. >> >> Signed-off-by: Dr. Adam Nielsen <admin@in-ici.net> >> >> --- >> Documentation/gitignore.txt | 66 ++++++++++++++++++++++++------------- >> 1 file changed, 44 insertions(+), 22 deletions(-) >> >> diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt >> index b5bc9dbff0..d47b1ae296 100644 >> --- a/Documentation/gitignore.txt >> +++ b/Documentation/gitignore.txt >> @@ -89,28 +89,28 @@ PATTERN FORMAT >> Put a backslash ("`\`") in front of the first "`!`" for patterns >> that begin with a literal "`!`", for example, "`\!important!.txt`". >> - - If the pattern ends with a slash, it is removed for the >> - purpose of the following description, but it would only find >> - a match with a directory. In other words, `foo/` will match a >> - directory `foo` and paths underneath it, but will not match a >> - regular file or a symbolic link `foo` (this is consistent >> - with the way how pathspec works in general in Git). >> - >> - - If the pattern does not contain a slash '/', Git treats it as >> - a shell glob pattern and checks for a match against the >> - pathname relative to the location of the `.gitignore` file >> - (relative to the toplevel of the work tree if not from a >> - `.gitignore` file). >> - >> - - Otherwise, Git treats the pattern as a shell glob: "`*`" matches >> - anything except "`/`", "`?`" matches any one character except "`/`" >> - and "`[]`" matches one character in a selected range. See >> - fnmatch(3) and the FNM_PATHNAME flag for a more detailed >> - description. >> - >> - - A leading slash matches the beginning of the pathname. >> - For example, "/{asterisk}.c" matches "cat-file.c" but not >> - "mozilla-sha1/sha1.c". >> + - The slash '/' is used as the directory separator. Separators may >> + occur at the beginning, middle or end of the `.gitignore` search >> pattern. >> + >> + - If there is a separator at the beginning or middle (or both) of the >> + pattern, then the pattern is relative to the directory level of the >> + particular `.gitignore` file itself. Otherwise the pattern may also >> + match at any level below the `.gitignore` level. >> + >> + - If there is a separator at the end of the pattern then the pattern >> + will only match directories, otherwise the pattern can match both >> + files and directories. >> + >> + - For example, a pattern `doc/frotz/` matches `doc/frotz` directory, >> + but not `a/doc/frotz` directory; however `frotz/` matches `frotz` her I misread this as: "but not a `doc/frotz` directory;" i.e. the leading 'a' is too easy to skim over as is part of the sentence's prose, so maybe change to a 'baz' lead directory (bar already having been used below). >> + and `a/frotz` that is a directory (all paths are relative from >> + the `.gitignore` file). >> + >> + - An asterisk "`*`" matches anything except a slash. >> + The character "`?`" matches any one character except "`/`". >> + The range notation, e.g. `[a-zA-Z]`, can be used to match >> + one of the characters in a range. See fnmatch(3) and the >> + FNM_PATHNAME flag for a more detailed description. >> Two consecutive asterisks ("`**`") in patterns matched against >> full pathname may have special meaning: >> @@ -152,6 +152,28 @@ To stop tracking a file that is currently >> tracked, use >> EXAMPLES >> -------- >> + - The pattern `hello.*` matches any file or folder >> + whose name begins with `hello`. If one wants to restrict >> + this only to the directory and not in its subdirectories, >> + one can prepend the pattern with a slash, i.e. `/hello.*`; >> + the pattern now matches `hello.txt`, `hello.c` but not >> + `a/hello.java`. >> + >> + - The pattern `foo/` will match a directory `foo` and >> + paths underneath it, but will not match a regular file >> + or a symbolic link `foo` (this is consistent with the >> + way how pathspec works in general in Git) >> + >> + - The pattern `doc/frotz` and `/doc/frotz` have the same effect >> + in any `.gitignore` file. In other words, a leading slash >> + is not relevant if there is already a middle slash in >> + the pattern. >> + >> + - The pattern "foo/*", matches "foo/test.json" >> + (a regular file), "foo/bar" (a directory), but it does not match >> + "foo/bar/hello.c" (a regular file), as the asterisk in the >> + pattern does not match "bar/hello.c" which has a slash in it. >> + >> -------------------------------------------------------------- >> $ git status >> [...] >> > Have you tried it out on any StackOverflow replies to see if those that inhabit that zone find it helpful? Philip
next prev parent reply other threads:[~2019-06-25 11:31 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-04 17:34 Dr. Adam Nielsen 2019-06-25 11:05 ` Dr. Adam Nielsen 2019-06-25 11:31 ` Philip Oakley [this message] 2019-06-27 17:10 ` Dr. Adam Nielsen 2019-07-04 10:40 ` Philip Oakley 2019-07-04 10:46 ` Philip Oakley 2019-06-27 17:43 ` Junio C Hamano -- strict thread matches above, loose matches on Subject: below -- 2020-02-15 3:08 Pavel Ivashkov 2019-06-02 9:04 Dr. Adam Nielsen 2019-05-31 18:17 Dr. Adam Nielsen 2019-05-31 18:16 Dr. Adam Nielsen 2019-05-31 7:44 Dr. Adam Nielsen 2019-05-31 16:30 ` Junio C Hamano 2019-05-31 17:24 ` Dr. Adam Nielsen 2019-05-31 17:40 ` Junio C Hamano 2019-06-01 9:33 ` Philip Oakley 2019-06-02 9:01 ` Dr. Adam Nielsen 2019-06-03 18:01 ` Junio C Hamano 2019-06-04 10:40 ` Philip Oakley 2019-06-01 9:23 ` Philip Oakley 2019-06-04 12:34 ` Philip Oakley 2019-06-04 17:22 ` Dr. Adam Nielsen 2019-05-18 14:13 Dr. Adam Nielsen 2019-05-19 1:59 ` Junio C Hamano 2019-05-19 6:59 ` Johannes Sixt 2019-05-18 14:07 Dr. Adam Nielsen 2019-05-18 19:34 ` Philip Oakley 2019-05-19 15:33 ` Dr. Adam Nielsen [not found] ` <0c2894ce-7eab-8207-9af8-7ce5e779d4ec@iee.org> 2019-05-29 8:28 ` Dr. Adam Nielsen 2019-05-07 10:45 Dr. Adam Nielsen 2019-05-08 5:33 ` Junio C Hamano 2019-05-12 9:56 ` Dr. Adam Nielsen 2019-05-17 21:43 ` Dr. Adam Nielsen 2019-05-18 6:42 ` Johannes Sixt 2019-05-18 13:20 ` Dr. Adam Nielsen 2019-04-26 14:32 Dr. Adam Nielsen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=13f99ce6-f856-6554-5c14-1b1838d697d0@iee.org \ --to=philipoakley@iee.org \ --cc=admin@in-ici.net \ --cc=git@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
git@vger.kernel.org list mirror (unofficial, one of many) This inbox may be cloned and mirrored by anyone: git clone --mirror https://public-inbox.org/git git clone --mirror http://ou63pmih66umazou.onion/git git clone --mirror http://czquwvybam4bgbro.onion/git git clone --mirror http://hjrcffqmbrq6wope.onion/git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 git git/ https://public-inbox.org/git \ git@vger.kernel.org public-inbox-index git Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.version-control.git nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git nntp://news.gmane.io/gmane.comp.version-control.git note: .onion URLs require Tor: https://www.torproject.org/ code repositories for the project(s) associated with this inbox: https://80x24.org/mirrors/git.git AGPL code for this site: git clone https://public-inbox.org/public-inbox.git