git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Johannes SixtNext: Steffen Prohaska
Message 7 of 11 in “Refactor, adding prepare_git_cmd(const char **argv)”
  1. 1/2 Refactor, adding prepare_git_cmd(const char **argv)Steffen Prohaska, Jul 28, 2008
  2. [Fundamental problem with relative system paths] [PATCH 2/2] run-command (Windows): Run dashless "git <cmd>"Steffen Prohaska, Jul 28, 2008
  3. Junio C HamanoJul 28, 2008
  4. Junio C HamanoJul 28, 2008
  5. Johannes SchindelinJul 28, 2008
  6. Johannes SixtJul 28, 2008
  7. Steffen ProhaskaJul 29, 2008
  8. 2/2 run-command (Windows): Run dashless "git <cmd>" (solves part of problem with system_path)Steffen Prohaska, Jul 29, 2008
  9. [FOR DEBUGGING] Stop installing BUILT_INSSteffen Prohaska, Jul 29, 2008
  10. Junio C HamanoJul 29, 2008
  11. Johannes SixtJul 29, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.