Re: [Fundamental problem with relative system paths] [PATCH 2/2] run-command (Windows): Run dashless "git <cmd>"
- From
Steffen Prohaska <prohaska@zib.de>
- Date
- Jul 29, 2008, 05:15 UTC
- Message-ID
- <766FEC61-619E-4A13-A21B-0734D83074C5@zib.de>
- In-Reply-To
- <1217277453.488e2e0db0f41@webmail.nextra.at>
On Jul 28, 2008, at 10:37 PM, Johannes Sixt wrote:
Show 20 quoted lines
> Zitat von Steffen Prohaska <prohaska@zib.de>: > >> This might solve a fundamental problem we have with the >> computation of system directories based on relative paths >> in combination with the new gitexecpath 'libexec/git-core'. >> The problem is that the program 'git' is hardlinked to >> directories with different depth. It is either used as >> 'bin/git' (1 directory) or as 'libexec/git-core/git-*' >> (2 directories). Thus, using the same relative path >> in system_path() yields different results when starting from the >> two locations. I recognized the problem because /etc/gitconfig >> is no longer be read. >> >> The patch below might fix the problem by always calling 'bin/git' >> for builtin commands. The computation in system_path() would >> always start from 'bin' and thus yields predictable results. I >> am not sure however if it fully solves the problem because other >> code paths might run the dashed forms directly. > > This paragraph should go into the commit message.
I'll send an updated patch including a commit message defending the change more offensively.
Show 9 quoted lines
>> I think the only way to verify correctness would be to stop >> installing the dashed forms for builtins. If they were not >> installed they could not be called. The only entry point for all >> builtins would be 'bin/git'. I don't think we want to stop >> installing the dashed forms right away. >> >> So what shall we do? > > Your patches make a lot of sense.
Unfortunately, I am sure that they do not solve the problem fully, even if we removed the dashed forms completely. I'll send a second patch that modifies the Makefile to stop installing the BUILT_INS. It might be useful for debugging.
Steffen