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

Re: [PATCH 4/6] config: return configset value for current_config_ functions

From
Junio C Hamano <gitster@pobox.com>
Date
May 26, 2016, 17:36 UTC
Message-ID
<xmqqd1o8wwk3.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20160526165033.GA20355@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
> The problem is running test-config inside of a git alias. The
> bin-wrappers will set the exec-path to the root-level of git's build
> directory, which the git binary will then stick at the front of the
> $PATH.

I was wondering why exec-path does not point at bin-wrappers in the first place.

A wrapper script needs to know where the real thing lives in order to "exec" (or "exec gdb") anyway, and it hardcodes the path to it. It happens to use GIT_EXEC_PATH to shorten the hardcoded path it uses when it does "exec", but it does not have to.

Wouldn't we want to see "git" use any of these wrapped ones when it invokes a non-builtin subcommand when it does so normally, honoring GIT_EXEC_PATH? Pointing GIT_EXEC_PATH at the top-level means that wrappers are bypassed for such an invocation (if what is run happens to have executable at the top-level), and possibly a totally wrong thing is run (when we start generating the binaries in different directories, which is what we are seeing here).

> So the simplest solution really is: don't do that. The only debate
> in my mind is whether this is rare enough that it won't bite
> somebody again in the future, or if we should look into a solution
> that makes this Just Work.

I think it was you who alluded to revamping the test framework along the lines of preparing a "test installation" (aka "make install" with DESTDIR set to somewhere) and making bin-wrappers to point into that installation (or if we are testing an installed Git that may be different from what we have source for, that final installed location). An installed version of Git will not have test-* helpers so they need to come from a freshly built source tree, not from "test installation" or "installed Git". There may be other details that need to be worked out, but as a longer term direction that may not be a bad idea.

Previous: Jeff KingNext: Jeff King
Message 10 of 23 in “pack-objects hook for upload-pack”
  1. 0/6 pack-objects hook for upload-packJeff King, May 18, 2016
  2. 1/6 git_config_with_options: drop "found" countingJeff King, May 18, 2016
  3. 2/6 git_config_parse_parameter: refactor cleanup codeJeff King, May 18, 2016
  4. 3/6 config: set up config_source for command-line configJeff King, May 18, 2016
  5. 4/6 config: return configset value for current_config_ functionsJeff King, May 18, 2016
  6. Jeff KingMay 19, 2016
  7. Duy NguyenMay 26, 2016
  8. Junio C HamanoMay 26, 2016
  9. Jeff KingMay 26, 2016
  10. Junio C HamanoMay 26, 2016
  11. Jeff KingMay 27, 2016
  12. Junio C HamanoMay 27, 2016
  13. Jeff KingMay 27, 2016
  14. 5/6 config: add a notion of "scope"Jeff King, May 18, 2016
  15. 6/6 upload-pack: provide a hook for running pack-objectsJeff King, May 18, 2016
  16. Jeff KingMay 19, 2016
  17. Ævar Arnfjörð BjarmasonMay 19, 2016
  18. Jeff KingMay 19, 2016
  19. Ævar Arnfjörð BjarmasonMay 19, 2016
  20. Jeff KingMay 26, 2016
  21. Junio C HamanoMay 25, 2016
  22. Jeff KingMay 26, 2016
  23. Junio C HamanoMay 26, 2016

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.