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

[PATCH v3 00/56] Convert parts of refs.c to struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
May 25, 2015, 18:38 UTC
Message-ID
<1432579162-411464-1-git-send-email-sandals@crustytoothpaste.net>
This is a conversion of parts of refs.c to use struct object_id.

refs.c, and the for_each_ref series of functions explicitly, is the source for many instances of object IDs in the codebase. Therefore, it makes sense to convert this series of functions to provide a basis for further conversions.

Changes from v2:
* Adopt Michael Haggerty's patch series that uses an adapter function.
* Squash some of these patches together where it makes sense in order to
  reduce the quantity of patches.

This does only slightly more than my original series, just in a different way, with a larger number of much smaller patches. If the quantity of patches is too large for people's tastes, I can do a v4 based off of v2 that has less of this problem.

Converting most of the for_each_ref series of functions all at once is important to avoid confusing interface mismatches. I intend to send smaller patch series in the future to make reviewers' lives easier.

This passes the testsuite at each step and is based off of master.
Also available in branch oid-refs-adapter-squashed at:
  https://git.crustytoothpaste.net/git/bmc/git.git
  https://github.com/bk2204/git.git
Michael Haggerty (55):
  each_ref_fn: change to take an object_id parameter
  builtin/rev-parse: rewrite to take an object_id argument
  handle_one_ref(): rewrite to take an object_id argument
  register_ref(): rewrite to take an object_id argument
  append_ref(): rewrite to take an object_id argument
  add_pending_uninteresting_ref(): rewrite to take an object_id argument
  get_name(): rewrite to take an object_id argument
  builtin/fetch: rewrite to take an object_id argument
  grab_single_ref(): rewrite to take an object_id argument
  name_ref(): rewrite to take an object_id argument
  builtin/pack-objects: rewrite to take an object_id argument
  show_ref_cb(): rewrite to take an object_id argument
  builtin/reflog: rewrite ref functions to take an object_id argument
  add_branch_for_removal(): rewrite to take an object_id argument
  add_branch_for_removal(): don't set "util" field of string_list
    entries
  builtin/remote: rewrite functions to take object_id arguments
  show_reference(): rewrite to take an object_id argument
  append_matching_ref(): rewrite to take an object_id argument
  builtin/show-branch: rewrite functions to take object_id arguments
  append_one_rev(): rewrite to work with object_id
  builtin/show-branch: rewrite functions to work with object_id
  cmd_show_branch(): fix error message
  fsck: change functions to use object_id
  builtin/show-ref: rewrite to use object_id
  show_ref(): convert local variable peeled to object_id
  builtin/show-ref: rewrite to take an object_id argument
  append_similar_ref(): rewrite to take an object_id argument
  http-backend: rewrite to take an object_id argument
  show_head_ref(): convert local variable "unused" to object_id
  add_ref_decoration(): rewrite to take an object_id argument
  add_ref_decoration(): convert local variable original_sha1 to
    object_id
  string_list_add_one_ref(): rewrite to take an object_id argument
  add_one_ref(): rewrite to take an object_id argument
  remote: rewrite functions to take object_id arguments
  register_replace_ref(): rewrite to take an object_id argument
  handle_one_reflog(): rewrite to take an object_id argument
  add_info_ref(): rewrite to take an object_id argument
  handle_one_ref(): rewrite to take an object_id argument
  shallow: rewrite functions to take object_id arguments
  submodule: rewrite to take an object_id argument
  write_refs_to_temp_dir(): convert local variable sha1 to object_id
  write_one_ref(): rewrite to take an object_id argument
  find_symref(): rewrite to take an object_id argument
  find_symref(): convert local variable "unused" to object_id
  upload-pack: rewrite functions to take object_id arguments
  send_ref(): convert local variable "peeled" to object_id
  mark_complete(): rewrite to take an object_id argument
  clear_marks(): rewrite to take an object_id argument
  mark_complete_oid(): new function, taking an object_oid
  mark_complete(): remove unneeded arguments
  rev_list_insert_ref_oid(): new function, taking an object_oid
  rev_list_insert_ref(): remove unneeded arguments
  each_ref_fn_adapter(): remove adapter
  warn_if_dangling_symref(): convert local variable "junk" to object_id
  struct ref_lock: convert old_sha1 member to object_id
brian m. carlson (1):
  refs: convert struct ref_entry to use struct object_id
 Documentation/technical/api-ref-iteration.txt |   2 +-
 bisect.c                                      |   8 +-
 builtin/branch.c                              |   4 +-
 builtin/checkout.c                            |   4 +-
 builtin/describe.c                            |  12 +--
 builtin/fetch.c                               |  15 ++--
 builtin/for-each-ref.c                        |   5 +-
 builtin/fsck.c                                |  20 ++---
 builtin/name-rev.c                            |   6 +-
 builtin/pack-objects.c                        |  14 ++--
 builtin/receive-pack.c                        |   5 +-
 builtin/reflog.c                              |   9 ++-
 builtin/remote.c                              |  21 +++---
 builtin/replace.c                             |  16 ++--
 builtin/rev-parse.c                           |   8 +-
 builtin/show-branch.c                         |  73 ++++++++++--------
 builtin/show-ref.c                            |  28 +++----
 builtin/tag.c                                 |  18 ++---
 fetch-pack.c                                  |  29 +++++--
 help.c                                        |   2 +-
 http-backend.c                                |  18 ++---
 log-tree.c                                    |  12 +--
 notes.c                                       |   2 +-
 reachable.c                                   |   5 +-
 refs.c                                        | 104 +++++++++++++-------------
 refs.h                                        |   2 +-
 remote.c                                      |  13 ++--
 replace_object.c                              |   4 +-
 revision.c                                    |  11 ++-
 server-info.c                                 |   7 +-
 sha1_name.c                                   |   7 +-
 shallow.c                                     |  12 +--
 submodule.c                                   |   7 +-
 transport.c                                   |  14 ++--
 upload-pack.c                                 |  32 ++++----
 walker.c                                      |   6 +-
 36 files changed, 300 insertions(+), 255 deletions(-)
-- 
2.4.0
Next: brian m. carlson
Message 1 of 63 in “Convert parts of refs.c to struct object_id”
  1. 00/56 Convert parts of refs.c to struct object_idbrian m. carlson, May 25, 2015
  2. 01/56 refs: convert struct ref_entry to use struct object_idbrian m. carlson, May 25, 2015
  3. 02/56 each_ref_fn: change to take an object_id parameterbrian m. carlson, May 25, 2015
  4. 03/56 builtin/rev-parse: rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  5. 04/56 handle_one_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  6. 05/56 register_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  7. 06/56 append_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  8. 07/56 add_pending_uninteresting_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  9. 08/56 get_name(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  10. 09/56 builtin/fetch: rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  11. 10/56 grab_single_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  12. 11/56 name_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  13. 12/56 builtin/pack-objects: rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  14. 13/56 show_ref_cb(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  15. 14/56 builtin/reflog: rewrite ref functions to take an object_id argumentbrian m. carlson, May 25, 2015
  16. 15/56 add_branch_for_removal(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  17. 16/56 add_branch_for_removal(): don't set "util" field of string_list entriesbrian m. carlson, May 25, 2015
  18. Michael HaggertyJun 5, 2015
  19. 17/56 builtin/remote: rewrite functions to take object_id argumentsbrian m. carlson, May 25, 2015
  20. 18/56 show_reference(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  21. 19/56 append_matching_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  22. 20/56 builtin/show-branch: rewrite functions to take object_id argumentsbrian m. carlson, May 25, 2015
  23. 21/56 append_one_rev(): rewrite to work with object_idbrian m. carlson, May 25, 2015
  24. 22/56 builtin/show-branch: rewrite functions to work with object_idbrian m. carlson, May 25, 2015
  25. 23/56 cmd_show_branch(): fix error messagebrian m. carlson, May 25, 2015
  26. 24/56 fsck: change functions to use object_idbrian m. carlson, May 25, 2015
  27. 25/56 builtin/show-ref: rewrite to use object_idbrian m. carlson, May 25, 2015
  28. 26/56 show_ref(): convert local variable peeled to object_idbrian m. carlson, May 25, 2015
  29. 27/56 builtin/show-ref: rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  30. 28/56 append_similar_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  31. 29/56 http-backend: rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  32. 30/56 show_head_ref(): convert local variable "unused" to object_idbrian m. carlson, May 25, 2015
  33. 31/56 add_ref_decoration(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  34. 32/56 add_ref_decoration(): convert local variable original_sha1 to object_idbrian m. carlson, May 25, 2015
  35. 33/56 string_list_add_one_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  36. 34/56 add_one_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  37. 35/56 remote: rewrite functions to take object_id argumentsbrian m. carlson, May 25, 2015
  38. 36/56 register_replace_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  39. 37/56 handle_one_reflog(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  40. 38/56 add_info_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  41. 39/56 handle_one_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  42. 40/56 shallow: rewrite functions to take object_id argumentsbrian m. carlson, May 25, 2015
  43. 41/56 submodule: rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  44. 42/56 write_refs_to_temp_dir(): convert local variable sha1 to object_idbrian m. carlson, May 25, 2015
  45. 43/56 write_one_ref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  46. 44/56 find_symref(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  47. 45/56 find_symref(): convert local variable "unused" to object_idbrian m. carlson, May 25, 2015
  48. 46/56 upload-pack: rewrite functions to take object_id argumentsbrian m. carlson, May 25, 2015
  49. 47/56 send_ref(): convert local variable "peeled" to object_idbrian m. carlson, May 25, 2015
  50. 48/56 mark_complete(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  51. 49/56 clear_marks(): rewrite to take an object_id argumentbrian m. carlson, May 25, 2015
  52. 50/56 mark_complete_oid(): new function, taking an object_oidbrian m. carlson, May 25, 2015
  53. 51/56 mark_complete(): remove unneeded argumentsbrian m. carlson, May 25, 2015
  54. 52/56 rev_list_insert_ref_oid(): new function, taking an object_oidbrian m. carlson, May 25, 2015
  55. 53/56 rev_list_insert_ref(): remove unneeded argumentsbrian m. carlson, May 25, 2015
  56. 54/56 each_ref_fn_adapter(): remove adapterbrian m. carlson, May 25, 2015
  57. 55/56 warn_if_dangling_symref(): convert local variable "junk" to object_idbrian m. carlson, May 25, 2015
  58. 56/56 struct ref_lock: convert old_sha1 member to object_idbrian m. carlson, May 25, 2015
  59. Junio C HamanoMay 25, 2015
  60. brian m. carlsonMay 25, 2015
  61. Stefan BellerMay 26, 2015
  62. brian m. carlsonMay 27, 2015
  63. Junio C HamanoMay 27, 2015

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.