From: Steffen Prohaska Date: Tue, 29 Jul 2008 05:15:41 GMT Subject: Re: [Fundamental problem with relative system paths] [PATCH 2/2] run-command (Windows): Run dashless "git " 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: > Zitat von Steffen Prohaska : > >> 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. >> 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