On Sat, Mar 3, 2018 at 8:36 PM, Dorab Patel <dorabpatel@xxxxxxxxx> 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.