* does "git clean" deliberately ignore "core.excludesFile"? @ 2019-02-23 15:11 Robert P. J. Day 2019-02-23 15:28 ` Junio C Hamano 0 siblings, 1 reply; 7+ messages in thread From: Robert P. J. Day @ 2019-02-23 15:11 UTC (permalink / raw) To: Git Mailing list [-- Attachment #1: Type: text/plain, Size: 1195 bytes --] not sure why i never noticed this before, but the "-x" option for "git clean" reads: -x Don’t use the standard ignore rules read from .gitignore (per directory) and $GIT_DIR/info/exclude, but do still use the ignore rules given with -e options. This allows removing all untracked files, including build products. This can be used (possibly in conjunction with git reset) to create a pristine working directory to test a clean build. but i see no mention of whether the file specified by core.excludesFile is taken into account, and perusing the source code doesn't seem to show that command checking that config option. am i misreading something? and if not, is there a reason git clean does not consult core.excludesFile? rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca/dokuwiki Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: does "git clean" deliberately ignore "core.excludesFile"? 2019-02-23 15:11 does "git clean" deliberately ignore "core.excludesFile"? Robert P. J. Day @ 2019-02-23 15:28 ` Junio C Hamano 2019-02-23 18:06 ` Johannes Schindelin 0 siblings, 1 reply; 7+ messages in thread From: Junio C Hamano @ 2019-02-23 15:28 UTC (permalink / raw) To: Robert P. J. Day; +Cc: Git Mailing list "Robert P. J. Day" <rpjday@crashcourse.ca> writes: > am i misreading something? and if not, is there a reason git clean > does not consult core.excludesFile? Can you ask "git log" and "git blame" whch of core.excludesFile and "clean -x" features came earlier and by how big a difference? Most likely this is because the exclude came much much later, and either we forgot to teach the implementation of clean to pay attention to it or (much more likely) the implementaiton is fine but we did not update the doc, which was trying to overly be exhaustive, doing no good (if the original just stopped at saying "... the standard ignore rules read from the usual places", we won't be having this discussion). ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: does "git clean" deliberately ignore "core.excludesFile"? 2019-02-23 15:28 ` Junio C Hamano @ 2019-02-23 18:06 ` Johannes Schindelin 2019-02-23 18:19 ` Johannes Schindelin 0 siblings, 1 reply; 7+ messages in thread From: Johannes Schindelin @ 2019-02-23 18:06 UTC (permalink / raw) To: Junio C Hamano; +Cc: Robert P. J. Day, Git Mailing list Hi, On Sat, 23 Feb 2019, Junio C Hamano wrote: > "Robert P. J. Day" <rpjday@crashcourse.ca> writes: > > > am i misreading something? and if not, is there a reason git clean > > does not consult core.excludesFile? > > Can you ask "git log" and "git blame" whch of core.excludesFile and > "clean -x" features came earlier and by how big a difference? Or maybe we can have a look why the `core.excludesfile` regression test case in t7300 does not catch this? https://github.com/git/git/blob/v2.21.0-rc2/t/t7300-clean.sh#L408-L417 Ciao, Dscho ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: does "git clean" deliberately ignore "core.excludesFile"? 2019-02-23 18:06 ` Johannes Schindelin @ 2019-02-23 18:19 ` Johannes Schindelin 2019-02-23 18:32 ` Robert P. J. Day 0 siblings, 1 reply; 7+ messages in thread From: Johannes Schindelin @ 2019-02-23 18:19 UTC (permalink / raw) To: Junio C Hamano; +Cc: Robert P. J. Day, Git Mailing list Hi, On Sat, 23 Feb 2019, Johannes Schindelin wrote: > On Sat, 23 Feb 2019, Junio C Hamano wrote: > > > "Robert P. J. Day" <rpjday@crashcourse.ca> writes: > > > > > am i misreading something? and if not, is there a reason git clean > > > does not consult core.excludesFile? > > > > Can you ask "git log" and "git blame" whch of core.excludesFile and > > "clean -x" features came earlier and by how big a difference? > > Or maybe we can have a look why the `core.excludesfile` regression test > case in t7300 does not catch this? > > https://github.com/git/git/blob/v2.21.0-rc2/t/t7300-clean.sh#L408-L417 I actually doubt that `git clean` ignores `core.excludesFile`: in https://github.com/git/git/blob/v2.21.0-rc2/config.c#L1297-L1298, `git_default_core_config()` (which is called via the `git_clean_config()` -> `git_color_default_config()` -> `git_default_config()` chain from `cmd_clean()`) does interpret `core.excludesFile`: if (!strcmp(var, "core.excludesfile")) return git_config_pathname(&excludes_file, var, value); Then, `cmd_clean()` goes on to parse the options, setting the `ignored` variable upon `-x` and then doing [this](https://github.com/git/git/blob/v2.21.0-rc2/builtin/clean.c#L957-L958): if (!ignored) setup_standard_excludes(&dir); This function specifically looks at `excludes_file` in https://github.com/git/git/blob/v2.21.0-rc2/dir.c#L2481-L2483: if (excludes_file && !access_or_warn(excludes_file, R_OK, 0)) add_excludes_from_file_1(dir, excludes_file, dir->untracked ? &dir->ss_excludes_file : NULL); So I am quite puzzled by the claim that `git clean` might not consult `core.excludesFile`. Robert, care to come up with an example demonstrating where it does not? Ciao, Johannes ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: does "git clean" deliberately ignore "core.excludesFile"? 2019-02-23 18:19 ` Johannes Schindelin @ 2019-02-23 18:32 ` Robert P. J. Day 2019-02-24 5:30 ` Junio C Hamano 0 siblings, 1 reply; 7+ messages in thread From: Robert P. J. Day @ 2019-02-23 18:32 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Junio C Hamano, Git Mailing list [-- Attachment #1: Type: text/plain, Size: 2798 bytes --] On Sat, 23 Feb 2019, Johannes Schindelin wrote: > Hi, > > On Sat, 23 Feb 2019, Johannes Schindelin wrote: > > > On Sat, 23 Feb 2019, Junio C Hamano wrote: > > > > > "Robert P. J. Day" <rpjday@crashcourse.ca> writes: > > > > > > > am i misreading something? and if not, is there a reason git clean > > > > does not consult core.excludesFile? > > > > > > Can you ask "git log" and "git blame" whch of core.excludesFile and > > > "clean -x" features came earlier and by how big a difference? > > > > Or maybe we can have a look why the `core.excludesfile` regression test > > case in t7300 does not catch this? > > > > https://github.com/git/git/blob/v2.21.0-rc2/t/t7300-clean.sh#L408-L417 > > I actually doubt that `git clean` ignores `core.excludesFile`: in > https://github.com/git/git/blob/v2.21.0-rc2/config.c#L1297-L1298, > `git_default_core_config()` (which is called via the `git_clean_config()` > -> `git_color_default_config()` -> `git_default_config()` chain from > `cmd_clean()`) does interpret `core.excludesFile`: > > if (!strcmp(var, "core.excludesfile")) > return git_config_pathname(&excludes_file, var, value); > > Then, `cmd_clean()` goes on to parse the options, setting the `ignored` > variable upon `-x` and then doing > [this](https://github.com/git/git/blob/v2.21.0-rc2/builtin/clean.c#L957-L958): > > if (!ignored) > setup_standard_excludes(&dir); > > This function specifically looks at `excludes_file` in > https://github.com/git/git/blob/v2.21.0-rc2/dir.c#L2481-L2483: > > if (excludes_file && !access_or_warn(excludes_file, R_OK, 0)) > add_excludes_from_file_1(dir, excludes_file, > dir->untracked ? &dir->ss_excludes_file : NULL); > > So I am quite puzzled by the claim that `git clean` might not consult > `core.excludesFile`. > > Robert, care to come up with an example demonstrating where it does not? sorry i wasn't clear, all i was pointing out was that "man git-clean" *explicitly* mentioned two locations related to cleaning: -x Don’t use the standard ignore rules read from .gitignore (per directory) and $GIT_DIR/info/exclude, ... without additionally *explicitly* mentioning core.excludesFile. if the man page simply said something like, "using the standard ignore processing" and left it at that, it would be fine, but to list two of the locations without the third is potentially confusing. rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca/dokuwiki Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: does "git clean" deliberately ignore "core.excludesFile"? 2019-02-23 18:32 ` Robert P. J. Day @ 2019-02-24 5:30 ` Junio C Hamano 2019-02-24 14:15 ` Johannes Schindelin 0 siblings, 1 reply; 7+ messages in thread From: Junio C Hamano @ 2019-02-24 5:30 UTC (permalink / raw) To: Robert P. J. Day; +Cc: Johannes Schindelin, Git Mailing list "Robert P. J. Day" <rpjday@crashcourse.ca> writes: > On Sat, 23 Feb 2019, Johannes Schindelin wrote: > >> Robert, care to come up with an example demonstrating where it does not? > > sorry i wasn't clear, all i was pointing out was that "man > git-clean" *explicitly* mentioned two locations related to cleaning: > ... > without additionally *explicitly* mentioning core.excludesFile. OK, so together with the homework Dscho did for you and what I wrote earlier, I think you have enough information to answer the question yourself. That is, the code does *not* ignore, and the doc was trying to be (overly) exhaustive but because it predates core.excludesFile, after the introduction of that configuration, it no longer is exhaustigve and has become stale. Which would leave a small, easy and low-hanging fruit, I guess ;-). Thanks. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: does "git clean" deliberately ignore "core.excludesFile"? 2019-02-24 5:30 ` Junio C Hamano @ 2019-02-24 14:15 ` Johannes Schindelin 0 siblings, 0 replies; 7+ messages in thread From: Johannes Schindelin @ 2019-02-24 14:15 UTC (permalink / raw) To: Junio C Hamano; +Cc: Robert P. J. Day, Git Mailing list Hi, On Sat, 23 Feb 2019, Junio C Hamano wrote: > "Robert P. J. Day" <rpjday@crashcourse.ca> writes: > > > On Sat, 23 Feb 2019, Johannes Schindelin wrote: > > > >> Robert, care to come up with an example demonstrating where it does not? > > > > sorry i wasn't clear, all i was pointing out was that "man > > git-clean" *explicitly* mentioned two locations related to cleaning: > > ... > > without additionally *explicitly* mentioning core.excludesFile. > > OK, so together with the homework Dscho did for you and what I wrote > earlier, I think you have enough information to answer the question > yourself. > > That is, the code does *not* ignore, and the doc was trying to be > (overly) exhaustive but because it predates core.excludesFile, after > the introduction of that configuration, it no longer is exhaustigve > and has become stale. > > Which would leave a small, easy and low-hanging fruit, I guess ;-). #leftoverbits ;-) Thanks, Dscho > Thanks. > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-02-24 14:21 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-02-23 15:11 does "git clean" deliberately ignore "core.excludesFile"? Robert P. J. Day 2019-02-23 15:28 ` Junio C Hamano 2019-02-23 18:06 ` Johannes Schindelin 2019-02-23 18:19 ` Johannes Schindelin 2019-02-23 18:32 ` Robert P. J. Day 2019-02-24 5:30 ` Junio C Hamano 2019-02-24 14:15 ` Johannes Schindelin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).