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

[PATCH jn/paginate-fix 0/12] Re: git --paginate: do not commit pager choice too early

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Aug 6, 2010, 02:35 UTC
Message-ID
<20100806023529.GB22369@burratino>
In-Reply-To
<7v630hyf5r.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
Show 8 quoted lines
>     So delay the pager startup when possible:
>     
>     1. run_argv() already commits pager choice inside run_builtin() if a
>        command is found.  For commands that use RUN_SETUP, waiting until
>        then fixes the problem described above: once git knows where to
>        look, it happily respects the core.pager setting.
> 
> ... and for commands that do not use RUN_SETUP, what happens?
Let’s help some of them out a little.

These patches teach a few more built-ins to do something like RUN_SETUP; more precisely, a RUN_SETUP_GENTLY facility is introduced to run setup_git_directory_gently() early just like NEEDS_PREFIX has always caused setup_git_directory() to be run early.

This series wouldn’t be possible without Duy’s recent efforts to roll out other fixes from the famous nd/setup topic --- thanks! The patches should be familiar[1] and I think they are better justified now.

The first 8 patches apply on top to jn/paginate-fix from pu. Between patch 8 and 9 I have a merge of jn/maint-setup-fix^, with the following explanation:

	Merge branch 'jn/maint-setup-fix' (early part) into jn/paginate-fix
	That topic includes a fix for “git index-pack” (which used
	to save the cwd before the repository search to work around
	a bug) which is needed before the repository search can be
	safely run earlier.

That merge involves a trivial conflict between adding the RUN_SETUP_GENTLY flag for this topic and removing USE_PAGER for grep -O. The conflict is only nominal --- the two changes do not interfere with each other.

One final note: this series is deliberately very conservative, in that it does not touch commands like diff (which has a --no-index mode suppressing the repository search). Such commands are neither helped nor hindered by this series, and I think that during this transition time we should be opportunistic rather than rigid: the rule is to run the repository search as soon as can be easily justified but no sooner.

Thoughts welcome, as always.
Nguyễn Thái Ngọc Duy (12):
  git wrapper: introduce startup_info struct
  setup: remember whether repository was found
  git wrapper: allow setup_git_directory_gently() be called earlier
  shortlog: run setup_git_directory_gently() sooner
  grep: run setup_git_directory_gently() sooner
  apply: run setup_git_directory_gently() sooner
  bundle: run setup_git_directory_gently() sooner
  config: run setup_git_directory_gently() sooner
  index-pack: run setup_git_directory_gently() sooner
  ls-remote: run setup_git_directory_gently() sooner
  var: run setup_git_directory_gently() sooner
  merge-file: run setup_git_directory_gently() sooner
[1] http://thread.gmane.org/gmane.comp.version-control.git/144000/focus=144110
Previous: Nguyen Thai Ngoc DuyNext: Jonathan Nieder
Message 16 of 42 in “git --paginate: do not commit pager choice too early”
  1. 0/4 git --paginate: do not commit pager choice too earlyJonathan Nieder, Jun 26, 2010
  2. 1/4 t7006 (pager): introduce helper for parameterized testsJonathan Nieder, Jun 26, 2010
  3. 2/4 t7006: test pager configuration for several git commandsJonathan Nieder, Jun 26, 2010
  4. Jonathan NiederJun 26, 2010
  5. 3/4 tests: local config file should be honored from subdirs of toplevelJonathan Nieder, Jun 26, 2010
  6. 4/4 git --paginate: do not commit pager choice too earlyJonathan Nieder, Jun 26, 2010
  7. Jeff KingJun 28, 2010
  8. Jonathan NiederJun 28, 2010
  9. Jeff KingJun 28, 2010
  10. Nguyen Thai Ngoc DuyJun 28, 2010
  11. Junio C HamanoJun 29, 2010
  12. Junio C HamanoJul 14, 2010
  13. Jonathan NiederJul 14, 2010
  14. git --paginate: paginate external commands againJonathan Nieder, Jul 14, 2010
  15. Nguyen Thai Ngoc DuyJul 18, 2010
  16. 0/12 Re: git --paginate: do not commit pager choice too earlyJonathan Nieder, Aug 6, 2010
  17. 01/12 git wrapper: introduce startup_info structJonathan Nieder, Aug 6, 2010
  18. 02/12 setup: remember whether repository was foundJonathan Nieder, Aug 6, 2010
  19. 03/12 git wrapper: allow setup_git_directory_gently() be called earlierJonathan Nieder, Aug 6, 2010
  20. 04/12 shortlog: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  21. 05/12 grep: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  22. 06/12 apply: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  23. Ævar Arnfjörð BjarmasonAug 15, 2010
  24. Nguyen Thai Ngoc DuyAug 15, 2010
  25. Jonathan NiederAug 15, 2010
  26. 06/12 apply: run setup_git_directory_gently() soonerNguyễn Thái Ngọc Duy, Aug 16, 2010
  27. Junio C HamanoAug 16, 2010
  28. 07/12 bundle: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  29. Thomas RastAug 16, 2010
  30. Jonathan NiederAug 16, 2010
  31. 2/2 t7006 (pager): add missing TTY prerequisiteJonathan Nieder, Aug 16, 2010
  32. Junio C HamanoAug 16, 2010
  33. 08/12 config: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  34. 09/12 index-pack: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  35. 10/12 ls-remote: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  36. 11/12 var: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  37. 12/12 merge-file: run setup_git_directory_gently() soonerJonathan Nieder, Aug 6, 2010
  38. 0/2 fix "check-ref-format --branch" from subdir of toplevelJonathan Nieder, Aug 6, 2010
  39. 1/2 check-ref-format: handle subcommands in separate functionsJonathan Nieder, Aug 6, 2010
  40. 2/2 Allow "check-ref-format --branch" from subdirectoryJonathan Nieder, Aug 6, 2010
  41. Junio C HamanoAug 6, 2010
  42. Nguyen Thai Ngoc DuyAug 6, 2010

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.