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

Re: [PATCH 0/5] global: drop external `the_index` variable

From
PWPhillip Wood <phillip.wood123@gmail.com>
Date
Apr 15, 2024, 13:55 UTC
Message-ID
<28541f00-9054-4aa0-8e47-348043b5f863@gmail.com>
In-Reply-To
<cover.1713180749.git.ps@pks.im>
Hi Patrick
On 15/04/2024 12:42, Patrick Steinhardt wrote:
Show 6 quoted lines
> The motivation of these patches comes from the introduction of the ref
> format extension. I found it really hard to reason about the state of
> `the_repository` and would like to continue its deprecation in favor of
> explicitly passing down a `struct repository *`. Getting rid of
> `the_index` is a first easy step into that direction to make things more
> self-contained.

Maybe I've got the wrong end of the stick but my impression is that it is the use of "the_repository" in library code (i.e. the files outside builtin/) that causes most of the pain. With that in mind would be we better focusing contributor and reviewer effort on eliminating "the_repository" from those files instead? It would need to be done in carefully in stages but would bring real benefits.

Best Wishes
Phillip
Show 50 quoted lines
> Patrick
> 
> Patrick Steinhardt (5):
>    t/helper: stop using `the_index`
>    builtin: stop using `the_index`
>    repository: initialize index in `repo_init()`
>    builtin/clone: stop using `the_index`
>    repository: drop global `the_index` variable
> 
>   builtin/add.c                        |  48 +++++------
>   builtin/am.c                         |  36 ++++----
>   builtin/cat-file.c                   |   3 +-
>   builtin/check-attr.c                 |   5 +-
>   builtin/check-ignore.c               |   7 +-
>   builtin/checkout-index.c             |  22 ++---
>   builtin/checkout.c                   |  87 ++++++++++---------
>   builtin/clean.c                      |   7 +-
>   builtin/clone.c                      |   7 +-
>   builtin/commit.c                     |  81 +++++++++---------
>   builtin/describe.c                   |   3 +-
>   builtin/diff-tree.c                  |   3 +-
>   builtin/diff.c                       |   6 +-
>   builtin/difftool.c                   |   4 +-
>   builtin/merge-index.c                |  17 ++--
>   builtin/merge-tree.c                 |   3 +-
>   builtin/merge.c                      |  31 ++++---
>   builtin/mv.c                         |  68 +++++++--------
>   builtin/pull.c                       |   4 +-
>   builtin/read-tree.c                  |  15 ++--
>   builtin/rebase.c                     |   3 +-
>   builtin/replay.c                     |   1 -
>   builtin/reset.c                      |  32 +++----
>   builtin/rev-parse.c                  |   6 +-
>   builtin/rm.c                         |  40 ++++-----
>   builtin/stash.c                      |  45 +++++-----
>   builtin/submodule--helper.c          |  21 +++--
>   builtin/update-index.c               | 122 +++++++++++++--------------
>   builtin/write-tree.c                 |   6 +-
>   repository.c                         |  32 ++++---
>   repository.h                         |   3 -
>   t/helper/test-cache-tree.c           |  17 ++--
>   t/helper/test-dump-cache-tree.c      |   5 +-
>   t/helper/test-dump-split-index.c     |  11 ++-
>   t/helper/test-dump-untracked-cache.c |   3 +-
>   t/helper/test-lazy-init-name-hash.c  |  39 +++++----
>   t/helper/test-read-cache.c           |   9 +-
>   t/helper/test-scrap-cache-tree.c     |   7 +-
>   t/helper/test-write-cache.c          |   3 +-
>   39 files changed, 420 insertions(+), 442 deletions(-)
> 
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 12 of 26 in “global: drop external `the_index` variable”
  1. 0/5 global: drop external `the_index` variablePatrick Steinhardt, Apr 15, 2024
  2. 1/5 t/helper: stop using `the_index`Patrick Steinhardt, Apr 15, 2024
  3. Karthik NayakApr 17, 2024
  4. 2/5 builtin: stop using `the_index`Patrick Steinhardt, Apr 15, 2024
  5. Karthik NayakApr 17, 2024
  6. Patrick SteinhardtApr 18, 2024
  7. 3/5 repository: initialize index in `repo_init()`Patrick Steinhardt, Apr 15, 2024
  8. Karthik NayakApr 17, 2024
  9. Patrick SteinhardtApr 18, 2024
  10. 4/5 builtin/clone: stop using `the_index`Patrick Steinhardt, Apr 15, 2024
  11. 5/5 repository: drop global `the_index` variablePatrick Steinhardt, Apr 15, 2024
  12. Phillip WoodApr 15, 2024
  13. Patrick SteinhardtApr 15, 2024
  14. Junio C HamanoApr 15, 2024
  15. Patrick SteinhardtApr 16, 2024
  16. Karthik NayakApr 17, 2024
  17. Patrick SteinhardtApr 18, 2024
  18. 0/6 global: drop `the_index` variablePatrick Steinhardt, Apr 18, 2024
  19. 1/6 t/helper: stop using `the_index`Patrick Steinhardt, Apr 18, 2024
  20. 2/6 builtin: stop using `the_index`Patrick Steinhardt, Apr 18, 2024
  21. 3/6 repository: initialize index in `repo_init()`Patrick Steinhardt, Apr 18, 2024
  22. 4/6 builtin/clone: stop using `the_index`Patrick Steinhardt, Apr 18, 2024
  23. 5/6 repository: drop `the_index` variablePatrick Steinhardt, Apr 18, 2024
  24. 6/6 repository: drop `initialize_the_repository()`Patrick Steinhardt, Apr 18, 2024
  25. Junio C HamanoApr 18, 2024
  26. Patrick SteinhardtApr 19, 2024

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.