On July 13, 2021 9:05 PM. Junio C Hamano wrote: >randall.becker@xxxxxxxxxxxx writes: > >> From: "Randall S. Becker" <rsbecker@xxxxxxxxxxxxx> >> >> Documentation of the worktree and worktree/i conditionals is add based >> on gitdir rules except that the trailing / form of the path is not supported. >> >> Signed-off-by: Randall S. Becker <rsbecker@xxxxxxxxxxxxx> >> --- >> Documentation/config.txt | 11 ++++++++++- >> 1 file changed, 10 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/config.txt b/Documentation/config.txt index >> bf82766a6a..7e951937ae 100644 >> --- a/Documentation/config.txt >> +++ b/Documentation/config.txt >> @@ -143,7 +143,16 @@ refer to linkgit:gitignore[5] for details. For convenience: >> >> `gitdir/i`:: >> This is the same as `gitdir` except that matching is done >> - case-insensitively (e.g. on case-insensitive file systems) >> + case-insensitively (e.g. on case-insensitive file systems). >> + >> +`worktree`:: >> + This is similar to `gitdir` except that matching is done with >> + the path of a worktree instead of the main repository. Unlike >> + `gitdir`, the trailing / form of the worktree path is not supported. > >It is not immediately obvious what "the trailing / form" means. > >Does it refer to the 4th item in the 4-bullet list in the description just above the patch context (I am trying to make a guess here)? > >The problem I perceive in this description is that there is no phrase "trailing" in the vicinity of what readers have read so far; readers who >are not exactly familiar with the system may need a bit more assurance that they guessed correctly. > > Unlike `gitdir`, `**` will not be automatically added to a > pattern that ends with `/` > >would be easier to give that assurance, albeit more verbosely. > >Assuming that I guessed correctly, is this a deliberate design decision not to "automatically add ** after a pattern that ends with a slash", >and if so why? I would have thought that "in the worktrees that I create inside /var/tmp/, please enable these configuration variables" >would be a fairly natural thing to ask, and I do not immediately see a reason why we want to apply different syntax rules between "gitdir" >and "worktree". The reason for this comes down to what is in *the_repository. Essentially, the_repository->gitdir always has a /path/to/.git directory with full qualification. the_repository->worktree does not have /.git added for obvious reasons, so the /path/to is bare of the trailing /. This causes a trailing pattern /to/path/** match to fail. I could copy the value into a working buffer but that seemed a bit clunky. So using the available information, the syntax rules need to be different between the two, unless the value of worktree is augmented. I was unsure which way the team wanted to go on this.