From: Junio C Hamano <gitster@pobox.com> To: "Dr. Adam Nielsen" <admin@in-ici.net> Cc: git@vger.kernel.org Subject: Re: [PATCH] make slash-rules more readable Date: Sun, 19 May 2019 10:59:59 +0900 Message-ID: <xmqqo93z19wg.fsf@gitster-ct.c.googlers.com> (raw) In-Reply-To: <20190518141337.14919-1-admin@in-ici.net> (Adam Nielsen's message of "Sat, 18 May 2019 16:13:37 +0200") "Dr. Adam Nielsen" <admin@in-ici.net> writes: > gitignore.txt: make slash-rules more readable > > Make all paragraphs valid, even if they are not read > in strict order. I think you are giving up on this, and I do not think that is particularly a bad thing ;-) > + - A slash `/` is used as a directory separator. A leading and trailing > + slash have special meaning and are explained in the following. > + > + - If the pattern ends with a slash, it would only find > + directory `foo`, 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 end with a slash, it would find a match > + with a file or directory. > + > + - If the pattern contains no slash or only a trailing slash, > + the pattern is matched against all files and folders (recursively) > + from the location of the `.gitignore` file. > + For example, `frotz/` matches `frotz` and `a/frotz` that > + is a directory (relative from the `.gitignore` file). > + Otherwise the pattern is matched relative to the > + location of the `.gitignore` file. > + For example, `doc/frotz/` matches `doc/frotz` directory, but not > + `a/doc/frotz` (relative from the `.gitignore` file). OK. > + - The above pargraph also includes the case of a leading slash. Now you (not you the author of the document, but figuratively "any reader of this document") must have read all the four before this point ;-) To put it differently, your reading of the above four bullets are incomplete unless you read this too. Typofix: "pargraph" -> "paragraph". In any case, I cannot guess what 'also include the case of a leaning slash' wants to say. Perhaps Note that the above rule means you cannot easily say "a file whose name contains 'hello' and in this directory only, not in its subdirectories." because a pattern 'hello.*' does not have any slash. To work around this limitation, you can prepend your pattern with a slash, i.e. '/hello.*'; the pattern now matches 'hello.txt', 'hello.c' but not 'a/hello.java'. as the third point of the above paragraph (the first is about a pattern without a slash, the second "Otherwise" is about a pattern with one or more slashes, and the new "Note that" becomes the third) may make it easier to follow and keep your "each bullet point is independent". > + For example, the pattern `/bar` only matches the file or > + folder `bar` that is at the same location as the `gitignore` > + file. Whereas the pattern `bar` would also match in folders > + below the `gitignore` file. > + > + - An asterisk "`*`" matches anything except a slash. > + A pattern "foo/*", for example, matches "foo/test.json" > + (a regular file), "foo/bar" (a diretory), but it does not match > + "foo/bar/hello.c" (a regular file), as the asterisk in the > + patter does not match "bar/hello.c" which has a slash in it. > + 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:
next prev parent reply other threads:[~2019-05-19 2:00 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-18 14:13 Dr. Adam Nielsen 2019-05-19 1:59 ` Junio C Hamano [this message] 2019-05-19 6:59 ` Johannes Sixt -- strict thread matches above, loose matches on Subject: below -- 2020-02-15 3:08 Pavel Ivashkov 2019-06-04 17:34 Dr. Adam Nielsen 2019-06-25 11:05 ` Dr. Adam Nielsen 2019-06-25 11:31 ` Philip Oakley 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 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: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=xmqqo93z19wg.fsf@gitster-ct.c.googlers.com \ --to=gitster@pobox.com \ --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