Re: [PATCH] git.el: handle default excludesfile properly
- From
- Dorab Patel <dorabpatel@gmail.com>
- Date
- Mar 4, 2018, 02:57 UTC
- Message-ID
- <CAE09B1Ky1_PKWq17Nm_Uc9sZn7khycR0aK2Z3AHnyjYoPMy8Qg@mail.gmail.com>
- In-Reply-To
- <CAPig+cTyZAFx486Y9LrQuaK0qMnQEGD3U55sk9Vvyb_TgDz5tQ@mail.gmail.com>
Thanks for reviewing and locating the commits.
OK, I'll re-roll and add the relevant commits. It may take some time.
Should I just send the revised patch as a separate thread (with the relevant commits and history)?
On Sat, Mar 3, 2018 at 6:12 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 37 quoted lines
> On Sat, Mar 3, 2018 at 8:36 PM, Dorab Patel <dorabpatel@gmail.com> wrote: >> Correct me if I'm wrong, but my understanding, from >> https://git-scm.com/docs/gitignore, is that $HOME/.gitignore is used >> only if it is specified as the value of core.excludesfile in >> ~/.gitconfig. It is not used by default. If that is so, then the >> proposed (and original) code works. The changes I am proposing handle >> the default case, when core.excludesfile is not specified. > > You're right. I must have set core.excludesfile so long ago that I > forgot about it and assumed $HOME/.gitignore was consulted by default. > >> Looking deeper into how the function git-get-exclude-files is used, I >> see that it is only being called from git-run-ls-files-with-excludes. >> So, perhaps, a better (or additional) fix might be to add the >> parameter "--exclude-standard" in the call to git-run-ls-files from >> within git-run-ls-files-with-excludes. And remove the need for >> get-get-exclude-files altogether. Presumably, "--exclude-standard" >> handles the default case with/without XDG_CONFIG_HOME correctly. The >> question I'd have then is: why didn't the original author use that >> option? Either I'm missing something? Or the option was added later, >> after the original code was written? Or something else? > > Using --exclude-standard rather than --exclude-from and retiring > git-get-exclude-files() makes sense to me. > > As for why the original author didn't use --exclude-standard, project > history tells us that. In particular, git-get-exclude-files() was > implemented by 274e13e0e9 (git.el: Take into account the > core.excludesfile config option., 2007-07-31), whereas > --exclude-standard was introduced by 8e7b07c8a7 (git-ls-files: add > --exclude-standard, 2007-11-15), three and a half months later. > > If you do re-roll to use --exclude-standard, then it would be good for > your commit message to explain this history, citing the relevant > commits. > > Thanks.