Re: Multiple paths in GIT_EXEC_PATH
On Tue, 2017-10-17 at 18:21 +0300, Nikolay Yakimov wrote: > For why I need that is another matter. Long story short, I need git to > look for '.gitignore' in a particular non-standard location, since I > have multiple git repositories in the same workdir (that workdir being > $HOME and git repositories being stores for my different configs) That is solvable without needing multiple directories in $GIT_EXEC_PATH. vcsh, which also solves the 'multiple repos with same workdir' problem in a very thin wrapper around git, does this by setting core.excludesfile in the per repo config to a unique path. hurricane:~$ vcsh dotfiles config core.excludesfile .gitignore.d/dotfiles hurricane:~$ vcsh secrets config core.excludesfile .gitignore.d/secrets D.
Re: Multiple paths in GIT_EXEC_PATH
Kevin Daudt writes: > The commit that changed what you described is 1073094f3 (git-sh-setup: > be explicit where to dot-source git-sh-i18n from., 2016-10-29). That > commit claims there were already scripts that assumed GIT_EXEC_PATH is > just a single entry. That commit was included in v2.11. > > There was also a recent thread[0] about it that discussed this issue, > where someone stated that indeed treating GIT_EXEC_PATH with the same > semantics as PATH has been broken for a while, but it seems there are no > real plans to fix it. The variable was never meant to have more than one path concatenated with ':' from day one. In C code we've used it as a leading directory path to tack a command name to form a path to give to exec(3), without any intention to have it a list of paths, which is split at ':'. sh-setup was doing "PATH=$GIT_EXEC_PATH:$PATH" without rejecting a value in GIT_EXEC_PATH with a colon in it but that was merely being lazy and made it "work" by accident.
Re: Multiple paths in GIT_EXEC_PATH
On Tue, Oct 17, 2017 at 06:21:22PM +0300, Nikolay Yakimov wrote: > Hello. After updating to a recent git release (2.14, I believe, but > possibly earlier), setting GIT_EXEC_PATH to multiple directories > stopped working. It did work before, and I believe the culprit is > 'git-sh-setup', which uses 'git --exec-path' output directly, while > most other git components observe PATH syntax, i.e. multiple paths > with colon separator. Is this intended, or is it an oversight? > > For why I need that is another matter. Long story short, I need git to > look for '.gitignore' in a particular non-standard location, since I > have multiple git repositories in the same workdir (that workdir being > $HOME and git repositories being stores for my different configs) The commit that changed what you described is 1073094f3 (git-sh-setup: be explicit where to dot-source git-sh-i18n from., 2016-10-29). That commit claims there were already scripts that assumed GIT_EXEC_PATH is just a single entry. That commit was included in v2.11. There was also a recent thread[0] about it that discussed this issue, where someone stated that indeed treating GIT_EXEC_PATH with the same semantics as PATH has been broken for a while, but it seems there are no real plans to fix it. [0]:https://public-inbox.org/git/20170928223134.GA30744@varnish/
Multiple paths in GIT_EXEC_PATH
Hello. After updating to a recent git release (2.14, I believe, but possibly earlier), setting GIT_EXEC_PATH to multiple directories stopped working. It did work before, and I believe the culprit is 'git-sh-setup', which uses 'git --exec-path' output directly, while most other git components observe PATH syntax, i.e. multiple paths with colon separator. Is this intended, or is it an oversight? For why I need that is another matter. Long story short, I need git to look for '.gitignore' in a particular non-standard location, since I have multiple git repositories in the same workdir (that workdir being $HOME and git repositories being stores for my different configs)