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

Re: [PATCH v2 06/21] environment: make `get_git_work_tree()` accept a repository

From
Patrick Steinhardt <ps@pks.im>
Date
Sep 12, 2024, 11:16 UTC
Message-ID
<ZuLNjhWtNpO6T8Bs@pks.im>
In-Reply-To
<wnorpwj5stwekbdvqzz6oyom5ppqhcsg3afvujslmy45r2djdb@sn6voa5d2e5v>
On Wed, Sep 11, 2024 at 10:15:06AM -0500, Justin Tobler wrote:
Show 27 quoted lines
> On 24/08/30 11:09AM, Patrick Steinhardt wrote:
> > The `get_git_work_tree()` function retrieves the path of the work tree
> > of `the_repository`. Make it accept a `struct repository` such that it
> > can work on arbitrary repositories and make it part of the repository
> > subsystem. This reduces our reliance on `the_repository` and clarifies
> > scope.
> > 
> > Signed-off-by: Patrick Steinhardt <ps@pks.im>
> > ---
> [snip]
> > diff --git a/repository.c b/repository.c
> > index cdefcb4002d..92238da3d9e 100644
> > --- a/repository.c
> > +++ b/repository.c
> > @@ -126,6 +126,11 @@ const char *repo_get_graft_file(struct repository *repo)
> >  	return repo->graft_file;
> >  }
> >  
> > +const char *repo_get_work_tree(struct repository *repo)
> > +{
> > +	return repo->worktree;
> > +}
> > +
> 
> Now that `repo_get_work_tree()` is accepting a `struct repository`, it's
> only functioning as a simple accessor and seems somewhat unneccesary. Is
> it preferrable to keep this?

I think it still makes sense to keep it, mostly because we also have accessor functions for the other paths, too. It would feel weirdly asymmetric to have `repo_get_git_dir()` but not `repo_get_work_tree()`, in my opinion.

Patrick
Previous: Justin ToblerNext: Patrick Steinhardt
Message 39 of 92 in “environment: guard reliance on `the_repository`”
  1. 00/21 environment: guard reliance on `the_repository`Patrick Steinhardt, Aug 29, 2024
  2. 01/21 environment: make `get_git_dir()` accept a repositoryPatrick Steinhardt, Aug 29, 2024
  3. Justin ToblerAug 29, 2024
  4. Patrick SteinhardtAug 30, 2024
  5. 02/21 environment: make `get_git_common_dir()` accept a repositoryPatrick Steinhardt, Aug 29, 2024
  6. 03/21 environment: make `get_object_directory()` accept a repositoryPatrick Steinhardt, Aug 29, 2024
  7. 04/21 environment: make `get_index_file()` accept a repositoryPatrick Steinhardt, Aug 29, 2024
  8. 05/21 environment: make `get_graft_file()` accept a repositoryPatrick Steinhardt, Aug 29, 2024
  9. 06/21 environment: make `get_git_work_tree()` accept a repositoryPatrick Steinhardt, Aug 29, 2024
  10. 07/21 config: document `read_early_config()` and `read_very_early_config()`Patrick Steinhardt, Aug 29, 2024
  11. 08/21 config: make dependency on repo in `read_early_config()` explicitPatrick Steinhardt, Aug 29, 2024
  12. 09/21 environment: move `odb_mkstemp()` into object layerPatrick Steinhardt, Aug 29, 2024
  13. 10/21 environment: make `get_git_namespace()` self-containedPatrick Steinhardt, Aug 29, 2024
  14. 11/21 environment: move `set_git_dir()` and related into setup layerPatrick Steinhardt, Aug 29, 2024
  15. 12/21 environment: reorder header to split out `the_repository`-free sectionPatrick Steinhardt, Aug 29, 2024
  16. 13/21 environment: guard state depending on a repositoryPatrick Steinhardt, Aug 29, 2024
  17. 14/21 repo-settings: split out declarations into a standalone headerPatrick Steinhardt, Aug 29, 2024
  18. 15/21 branch: stop modifying `log_all_ref_updates` variablePatrick Steinhardt, Aug 29, 2024
  19. 16/21 refs: stop modifying global `log_all_ref_updates` variablePatrick Steinhardt, Aug 29, 2024
  20. 17/21 repo-settings: track defaults close to `struct repo_settings`Patrick Steinhardt, Aug 29, 2024
  21. 18/21 environment: stop storing "core.logAllRefUpdates" globallyPatrick Steinhardt, Aug 29, 2024
  22. 19/21 environment: stop storing "core.preferSymlinkRefs" globallyPatrick Steinhardt, Aug 29, 2024
  23. 20/21 environment: stop storing "core.warnAmbiguousRefs" globallyPatrick Steinhardt, Aug 29, 2024
  24. 21/21 environment: stop storing "core.notesRef" globallyPatrick Steinhardt, Aug 29, 2024
  25. Junio C HamanoAug 29, 2024
  26. Patrick SteinhardtAug 30, 2024
  27. Junio C HamanoAug 30, 2024
  28. Patrick SteinhardtSep 2, 2024
  29. 00/21 environment: guard reliance on `the_repository`Patrick Steinhardt, Aug 30, 2024
  30. 01/21 environment: make `get_git_dir()` accept a repositoryPatrick Steinhardt, Aug 30, 2024
  31. karthik nayakSep 11, 2024
  32. Patrick SteinhardtSep 12, 2024
  33. 02/21 environment: make `get_git_common_dir()` accept a repositoryPatrick Steinhardt, Aug 30, 2024
  34. 03/21 environment: make `get_object_directory()` accept a repositoryPatrick Steinhardt, Aug 30, 2024
  35. 04/21 environment: make `get_index_file()` accept a repositoryPatrick Steinhardt, Aug 30, 2024
  36. 05/21 environment: make `get_graft_file()` accept a repositoryPatrick Steinhardt, Aug 30, 2024
  37. 06/21 environment: make `get_git_work_tree()` accept a repositoryPatrick Steinhardt, Aug 30, 2024
  38. Justin ToblerSep 11, 2024
  39. Patrick SteinhardtSep 12, 2024
  40. 07/21 config: document `read_early_config()` and `read_very_early_config()`Patrick Steinhardt, Aug 30, 2024
  41. Justin ToblerSep 11, 2024
  42. Patrick SteinhardtSep 12, 2024
  43. 08/21 config: make dependency on repo in `read_early_config()` explicitPatrick Steinhardt, Aug 30, 2024
  44. James LiuSep 4, 2024
  45. Patrick SteinhardtSep 4, 2024
  46. 09/21 environment: move `odb_mkstemp()` into object layerPatrick Steinhardt, Aug 30, 2024
  47. karthik nayakSep 11, 2024
  48. Patrick SteinhardtSep 12, 2024
  49. 10/21 environment: make `get_git_namespace()` self-containedPatrick Steinhardt, Aug 30, 2024
  50. Justin ToblerSep 11, 2024
  51. 11/21 environment: move `set_git_dir()` and related into setup layerPatrick Steinhardt, Aug 30, 2024
  52. 12/21 environment: reorder header to split out `the_repository`-free sectionPatrick Steinhardt, Aug 30, 2024
  53. 13/21 environment: guard state depending on a repositoryPatrick Steinhardt, Aug 30, 2024
  54. 14/21 repo-settings: split out declarations into a standalone headerPatrick Steinhardt, Aug 30, 2024
  55. 15/21 repo-settings: track defaults close to `struct repo_settings`Patrick Steinhardt, Aug 30, 2024
  56. 16/21 branch: stop modifying `log_all_ref_updates` variablePatrick Steinhardt, Aug 30, 2024
  57. Justin ToblerSep 11, 2024
  58. Patrick SteinhardtSep 12, 2024
  59. 17/21 refs: stop modifying global `log_all_ref_updates` variablePatrick Steinhardt, Aug 30, 2024
  60. 18/21 environment: stop storing "core.logAllRefUpdates" globallyPatrick Steinhardt, Aug 30, 2024
  61. karthik nayakSep 12, 2024
  62. 19/21 environment: stop storing "core.preferSymlinkRefs" globallyPatrick Steinhardt, Aug 30, 2024
  63. 20/21 environment: stop storing "core.warnAmbiguousRefs" globallyPatrick Steinhardt, Aug 30, 2024
  64. James LiuSep 4, 2024
  65. 21/21 environment: stop storing "core.notesRef" globallyPatrick Steinhardt, Aug 30, 2024
  66. James LiuSep 4, 2024
  67. Patrick SteinhardtSep 4, 2024
  68. karthik nayakSep 12, 2024
  69. Patrick SteinhardtSep 12, 2024
  70. 00/21 environment: guard reliance on `the_repository`Patrick Steinhardt, Sep 12, 2024
  71. 01/21 environment: make `get_git_dir()` accept a repositoryPatrick Steinhardt, Sep 12, 2024
  72. 02/21 environment: make `get_git_common_dir()` accept a repositoryPatrick Steinhardt, Sep 12, 2024
  73. 03/21 environment: make `get_object_directory()` accept a repositoryPatrick Steinhardt, Sep 12, 2024
  74. 04/21 environment: make `get_index_file()` accept a repositoryPatrick Steinhardt, Sep 12, 2024
  75. 05/21 environment: make `get_graft_file()` accept a repositoryPatrick Steinhardt, Sep 12, 2024
  76. 06/21 environment: make `get_git_work_tree()` accept a repositoryPatrick Steinhardt, Sep 12, 2024
  77. 07/21 config: document `read_early_config()` and `read_very_early_config()`Patrick Steinhardt, Sep 12, 2024
  78. 08/21 config: make dependency on repo in `read_early_config()` explicitPatrick Steinhardt, Sep 12, 2024
  79. 09/21 environment: move object database functions into object layerPatrick Steinhardt, Sep 12, 2024
  80. 10/21 environment: make `get_git_namespace()` self-containedPatrick Steinhardt, Sep 12, 2024
  81. 11/21 environment: move `set_git_dir()` and related into setup layerPatrick Steinhardt, Sep 12, 2024
  82. 12/21 environment: reorder header to split out `the_repository`-free sectionPatrick Steinhardt, Sep 12, 2024
  83. 13/21 environment: guard state depending on a repositoryPatrick Steinhardt, Sep 12, 2024
  84. 14/21 repo-settings: split out declarations into a standalone headerPatrick Steinhardt, Sep 12, 2024
  85. 15/21 repo-settings: track defaults close to `struct repo_settings`Patrick Steinhardt, Sep 12, 2024
  86. 16/21 branch: stop modifying `log_all_ref_updates` variablePatrick Steinhardt, Sep 12, 2024
  87. 17/21 refs: stop modifying global `log_all_ref_updates` variablePatrick Steinhardt, Sep 12, 2024
  88. 18/21 environment: stop storing "core.logAllRefUpdates" globallyPatrick Steinhardt, Sep 12, 2024
  89. 19/21 environment: stop storing "core.preferSymlinkRefs" globallyPatrick Steinhardt, Sep 12, 2024
  90. 20/21 environment: stop storing "core.warnAmbiguousRefs" globallyPatrick Steinhardt, Sep 12, 2024
  91. 21/21 environment: stop storing "core.notesRef" globallyPatrick Steinhardt, Sep 12, 2024
  92. Junio C HamanoSep 12, 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.