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

[PATCH 00/15] Kill the_index part 1, expose it

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Jun 16, 2018, 05:41 UTC
Message-ID
<20180616054157.32433-1-pclouds@gmail.com>

This is the beginning of the end of the_index. The problem with the_index is it lets library code anywhere access it freely. This is not good because from high level you may not realize that the_index is being used while you don't want to touch index at all, or you want to use a different index instead.

This is a long series, 86 patches [1], so I'm going to split and submit it in 15-20 patches at a time. The first two parts are trivial though and could be safely fast tracked if needed.

This is the first part, which kills the use of index compat macros outside builtin/ and expose the_index in all library code. Later on we will ban the_index from one file each time until it's gone for good.

"struct index_state *" will be passed from builtin/ through the call chain to the function that needs it. In some cases, "struct repository *" will be passed instead when the whole operation spans more than just the index. By the end, the_index becomes part of "index compat macros" and cannot be used outside builtin/

Part one is mechanical conversion with the help of coccinelle. The only real patches are the first and the last one.

[1] https://gitlab.com/pclouds/git/commits/really-kill-the-index
Nguyễn Thái Ngọc Duy (15):
  contrib: add cocci script to replace index compat macros
  apply.c: stop using index compat macros
  blame.c: stop using index compat macros
  check-racy.c: stop using index compat macros
  diff-lib.c: stop using index compat macros
  diff.c: stop using index compat macros
  entry.c: stop using index compat macros
  merge-recursive.c: stop using index compat macros
  merge.c: stop using index compat macros
  rerere.c: stop using index compat macros
  revision.c: stop using index compat macros
  sequencer.c: stop using index compat macros
  sha1-name.c: stop using index compat macros
  wt-status.c: stop using index compat macros
  cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch
 apply.c                               |  34 ++---
 attr.c                                |   1 -
 blame.c                               |  19 +--
 builtin/add.c                         |   1 +
 builtin/am.c                          |   1 +
 builtin/check-attr.c                  |   1 +
 builtin/check-ignore.c                |   1 +
 builtin/checkout-index.c              |   1 +
 builtin/checkout.c                    |   1 +
 builtin/clean.c                       |   1 +
 builtin/commit.c                      |   1 +
 builtin/describe.c                    |   1 +
 builtin/diff-files.c                  |   1 +
 builtin/diff-index.c                  |   1 +
 builtin/diff-tree.c                   |   1 +
 builtin/diff.c                        |   1 +
 builtin/fsck.c                        |   1 +
 builtin/ls-files.c                    |   1 -
 builtin/merge-index.c                 |   1 +
 builtin/merge-ours.c                  |   1 +
 builtin/merge.c                       |   1 +
 builtin/mv.c                          |   1 +
 builtin/pull.c                        |   1 +
 builtin/read-tree.c                   |   1 +
 builtin/reset.c                       |   1 +
 builtin/rev-parse.c                   |   1 +
 builtin/rm.c                          |   1 +
 builtin/submodule--helper.c           |   1 +
 builtin/update-index.c                |   1 +
 cache.h                               |   2 +-
 check-racy.c                          |  10 +-
 contrib/coccinelle/index-compat.cocci | 184 ++++++++++++++++++++++++++
 convert.c                             |   1 -
 diff-lib.c                            |   8 +-
 diff.c                                |  12 +-
 dir.c                                 |   1 -
 entry.c                               |   3 +-
 merge-recursive.c                     |  65 ++++-----
 merge.c                               |  14 +-
 name-hash.c                           |   1 -
 pathspec.c                            |   1 -
 read-cache.c                          |   1 -
 rerere.c                              |  36 ++---
 revision.c                            |  14 +-
 sequencer.c                           |  32 ++---
 sha1-name.c                           |  22 +--
 submodule.c                           |   1 -
 t/helper/test-dump-untracked-cache.c  |   1 +
 t/helper/test-tool.h                  |   2 +
 tree.c                                |   1 -
 unpack-trees.c                        |   1 -
 wt-status.c                           |  24 ++--
 52 files changed, 363 insertions(+), 154 deletions(-)
 create mode 100644 contrib/coccinelle/index-compat.cocci
-- 
2.18.0.rc0.333.g22e6ee6cdf
Next: Nguyễn Thái Ngọc Duy
Message 1 of 32 in “Kill the_index part 1, expose it”
  1. 00/15 Kill the_index part 1, expose itNguyễn Thái Ngọc Duy, Jun 16, 2018
  2. 01/15 contrib: add cocci script to replace index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  3. Derrick StoleeJun 19, 2018
  4. Derrick StoleeJun 19, 2018
  5. Duy NguyenJun 19, 2018
  6. Derrick StoleeJun 19, 2018
  7. SZEDER GáborJul 23, 2018
  8. 05/15 diff-lib.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  9. 11/15 revision.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  10. 04/15 check-racy.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  11. 14/15 wt-status.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  12. 10/15 rerere.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  13. 12/15 sequencer.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  14. 13/15 sha1-name.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  15. 03/15 blame.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  16. 08/15 merge-recursive.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  17. 09/15 merge.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  18. 15/15 cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switchNguyễn Thái Ngọc Duy, Jun 16, 2018
  19. Brandon WilliamsJun 18, 2018
  20. 02/15 apply.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  21. Junio C HamanoJun 25, 2018
  22. Duy NguyenJun 30, 2018
  23. Junio C HamanoJul 3, 2018
  24. Duy NguyenJul 9, 2018
  25. 07/15 entry.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  26. 06/15 diff.c: stop using index compat macrosNguyễn Thái Ngọc Duy, Jun 16, 2018
  27. Elijah NewrenJun 17, 2018
  28. Duy NguyenJun 17, 2018
  29. Brandon WilliamsJun 18, 2018
  30. Ben PeartJun 19, 2018
  31. Derrick StoleeJun 19, 2018
  32. Duy NguyenJun 19, 2018

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.