Re: [PATCH] git.el: handle default excludesfile properly
- Date: Sat, 3 Mar 2018 18:57:39 -0800
- From: Dorab Patel <dorabpatel@xxxxxxxxx>
- Subject: Re: [PATCH] git.el: handle default excludesfile properly
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@xxxxxxxxxxxxxx> wrote:
> 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