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

[PATCH v3 17/27] revisions API: have release_revisions() release "mailmap"

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Mar 25, 2022, 17:18 UTC
Message-ID
<patch-v3-17.27-65803961ee2-20220325T171340Z-avarab@gmail.com>
In-Reply-To
<cover-v3-00.27-00000000000-20220325T171340Z-avarab@gmail.com>

Extend the the release_revisions() function so that it frees the "mailmap" in the "struct rev_info".

The log family of functions now calls the clear_mailmap() function added in fa8afd18e5a (revisions API: provide and use a release_revisions(), 2021-09-19), allowing us to whitelist some tests with "TEST_PASSES_SANITIZE_LEAK=true".

Unfortunately having a pointer to a mailmap in "struct rev_info" instead of an embedded member that we "own" get a bit messy, as can be seen in the change to builtin/commit.c.

When we free() this data we won't be able to tell apart a pointer to a "mailmap" on the heap from one on the stack. As seen in ea57bc0d41b (log: add --use-mailmap option, 2013-01-05) the "log" family allocates it on the heap, but in the find_author_by_nickname() code added in ea16794e430 (commit: search author pattern against mailmap, 2013-08-23) we allocated it on the stack instead.

Ideally we'd simply change that member to a "struct string_list mailmap" and never free() the "mailmap" itself, but that would be a much larger change to the revisions API.

We have code that needs to hand an existing "mailmap" to a "struct rev_info", while we could change all of that, let's not go there now.

The complexity isn't in the ownership of the "mailmap" per-se, but that various things assume a "rev_info.mailmap == NULL" means "doesn't want mailmap", if we changed that to an init'd "struct string_list we'd need to carefully refactor things to change those assumptions.

Let's instead always free() it, and simply declare that if you add such a "mailmap" it must be allocated on the heap. Any modern libc will correctly panic if we free() a stack variable, so this should be safe going forward.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 builtin/commit.c                   | 5 ++---
 revision.c                         | 9 +++++++++
 t/t0056-git-C.sh                   | 1 +
 t/t3302-notes-index-expensive.sh   | 1 +
 t/t4055-diff-context.sh            | 1 +
 t/t4066-diff-emit-delay.sh         | 1 +
 t/t7008-filter-branch-null-sha1.sh | 1 +
 7 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c
index c7eda9bbb72..cd6cebcf8c8 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1100,7 +1100,6 @@ static const char *find_author_by_nickname(const char *name)
 	struct rev_info revs;
 	struct commit *commit;
 	struct strbuf buf = STRBUF_INIT;
-	struct string_list mailmap = STRING_LIST_INIT_NODUP;
 	const char *av[20];
 	int ac = 0;
 
@@ -1111,7 +1110,8 @@ static const char *find_author_by_nickname(const char *name)
 	av[++ac] = buf.buf;
 	av[++ac] = NULL;
 	setup_revisions(ac, av, &revs, NULL);
-	revs.mailmap = &mailmap;
+	revs.mailmap = xmalloc(sizeof(struct string_list));
+	string_list_init_nodup(revs.mailmap);
 	read_mailmap(revs.mailmap);
 
 	if (prepare_revision_walk(&revs))
@@ -1122,7 +1122,6 @@ static const char *find_author_by_nickname(const char *name)
 		ctx.date_mode.type = DATE_NORMAL;
 		strbuf_release(&buf);
 		format_commit_message(commit, "%aN <%aE>", &buf, &ctx);
-		clear_mailmap(&mailmap);
 		release_revisions(&revs);
 		return strbuf_detach(&buf, NULL);
 	}
diff --git a/revision.c b/revision.c
index 84b47552a3e..8520823d503 100644
--- a/revision.c
+++ b/revision.c
@@ -2931,10 +2931,19 @@ static void release_revisions_commit_list(struct rev_info *revs)
 	}
 }
 
+static void release_revisions_mailmap(struct string_list *mailmap)
+{
+	if (!mailmap)
+		return;
+	clear_mailmap(mailmap);
+	free(mailmap);
+}
+
 void release_revisions(struct rev_info *revs)
 {
 	release_revisions_commit_list(revs);
 	object_array_clear(&revs->pending);
+	release_revisions_mailmap(revs->mailmap);
 }
 
 static void add_child(struct rev_info *revs, struct commit *parent, struct commit *child)
diff --git a/t/t0056-git-C.sh b/t/t0056-git-C.sh
index 2630e756dab..752aa8c9454 100755
--- a/t/t0056-git-C.sh
+++ b/t/t0056-git-C.sh
@@ -2,6 +2,7 @@
 
 test_description='"-C <path>" option and its effects on other path-related options'
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 test_expect_success '"git -C <path>" runs git from the directory <path>' '
diff --git a/t/t3302-notes-index-expensive.sh b/t/t3302-notes-index-expensive.sh
index bb5fea02a03..d0c4d38b4d4 100755
--- a/t/t3302-notes-index-expensive.sh
+++ b/t/t3302-notes-index-expensive.sh
@@ -8,6 +8,7 @@ test_description='Test commit notes index (expensive!)'
 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 create_repo () {
diff --git a/t/t4055-diff-context.sh b/t/t4055-diff-context.sh
index 741e0803c1a..73048d0a526 100755
--- a/t/t4055-diff-context.sh
+++ b/t/t4055-diff-context.sh
@@ -5,6 +5,7 @@
 
 test_description='diff.context configuration'
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 test_expect_success 'setup' '
diff --git a/t/t4066-diff-emit-delay.sh b/t/t4066-diff-emit-delay.sh
index a1de63b77f8..0ecb3915412 100755
--- a/t/t4066-diff-emit-delay.sh
+++ b/t/t4066-diff-emit-delay.sh
@@ -4,6 +4,7 @@ test_description='test combined/stat/moved interaction'
 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 # This test covers a weird 3-way interaction between "--cc -p", which will run
diff --git a/t/t7008-filter-branch-null-sha1.sh b/t/t7008-filter-branch-null-sha1.sh
index 9ba9f24ad2f..93fbc92b8db 100755
--- a/t/t7008-filter-branch-null-sha1.sh
+++ b/t/t7008-filter-branch-null-sha1.sh
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 test_description='filter-branch removal of trees with null sha1'
+
 . ./test-lib.sh
 
 test_expect_success 'setup: base commits' '
-- 
2.35.1.1509.ge4eeb5bd39e
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 120 of 252 in “revision.[ch]: add and use release_revisions()”
  1. 00/24 revision.[ch]: add and use release_revisions()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  2. 01/24 t/helper/test-fast-rebase.c: don't leak "struct strbuf"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  3. 02/24 blame: use "goto cleanup" for cleanup_scoreboard()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  4. 03/24 format-patch: don't leak "extra_headers" or "ref_message_ids"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  5. Taylor BlauMar 9, 2022
  6. 04/24 revision.[ch]: split freeing of revs->commit into a functionÆvar Arnfjörð Bjarmason, Mar 9, 2022
  7. 05/24 revision.[ch]: provide and start using a release_revisions()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  8. Taylor BlauMar 9, 2022
  9. Junio C HamanoMar 9, 2022
  10. Ævar Arnfjörð BjarmasonMar 10, 2022
  11. Junio C HamanoMar 10, 2022
  12. Ævar Arnfjörð BjarmasonMar 10, 2022
  13. Ævar Arnfjörð BjarmasonMar 10, 2022
  14. 06/24 revisions API users: add straightforward release_revisions()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  15. 07/24 revisions API users: use release_revisions() needing "{ 0 }" initÆvar Arnfjörð Bjarmason, Mar 9, 2022
  16. 08/24 revisions API users: add "goto cleanup" for release_revisions()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  17. Derrick StoleeMar 9, 2022
  18. 10/24 revisions API users: use release_revisions() in builtin/log.cÆvar Arnfjörð Bjarmason, Mar 9, 2022
  19. Derrick StoleeMar 9, 2022
  20. Taylor BlauMar 9, 2022
  21. Taylor BlauMar 9, 2022
  22. 09/24 revisions API users: use release_revisions() in http-push.cÆvar Arnfjörð Bjarmason, Mar 9, 2022
  23. 11/24 revisions API users: use release_revisions() with UNLEAK()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  24. 14/24 revisions API users: use release_revisions() for "prune_data" usersÆvar Arnfjörð Bjarmason, Mar 9, 2022
  25. 15/24 revisions API: have release_revisions() release "commits"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  26. 21/24 revisions API: release "reflog_info" in release revisions()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  27. Derrick StoleeMar 9, 2022
  28. Ævar Arnfjörð BjarmasonMar 10, 2022
  29. 20/24 revisions API: clear "boundary_commits" in release_revisions()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  30. Derrick StoleeMar 9, 2022
  31. Ævar Arnfjörð BjarmasonMar 10, 2022
  32. 19/24 revisions API: have release_revisions() release "prune_data"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  33. 17/24 revisions API: have release_revisions() release "cmdline"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  34. Derrick StoleeMar 9, 2022
  35. Ævar Arnfjörð BjarmasonMar 10, 2022
  36. 18/24 revisions API: have release_revisions() release "grep_filter"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  37. 16/24 revisions API: have release_revisions() release "mailmap"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  38. Derrick StoleeMar 9, 2022
  39. 12/24 revisions API users: use release_revisions() in submodule.c edge caseÆvar Arnfjörð Bjarmason, Mar 9, 2022
  40. 13/24 revisions API users: use release_revisions() in wt-status.c edge caseÆvar Arnfjörð Bjarmason, Mar 9, 2022
  41. 22/24 revisions API: call diff_free(&revs->pruning) in revisions_release()Ævar Arnfjörð Bjarmason, Mar 9, 2022
  42. 23/24 revisions API: have release_revisions() release "date_mode"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  43. 24/24 revisions API: have release_revisions() release "topo_walk_info"Ævar Arnfjörð Bjarmason, Mar 9, 2022
  44. Derrick StoleeMar 9, 2022
  45. Derrick StoleeMar 9, 2022
  46. Derrick StoleeMar 9, 2022
  47. Ævar Arnfjörð BjarmasonMar 9, 2022
  48. Junio C HamanoMar 9, 2022
  49. 00/27 revision.[ch]: add and use release_revisions()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  50. 01/27 t/helper/test-fast-rebase.c: don't leak "struct strbuf"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  51. Junio C HamanoMar 24, 2022
  52. Ævar Arnfjörð BjarmasonMar 24, 2022
  53. Junio C HamanoMar 24, 2022
  54. 02/27 blame: use "goto cleanup" for cleanup_scoreboard()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  55. Junio C HamanoMar 24, 2022
  56. 03/27 string_list API users: use string_list_init_{no,}dupÆvar Arnfjörð Bjarmason, Mar 23, 2022
  57. 05/27 revision.[ch]: split freeing of revs->commit into a functionÆvar Arnfjörð Bjarmason, Mar 23, 2022
  58. Junio C HamanoMar 24, 2022
  59. Ævar Arnfjörð BjarmasonMar 24, 2022
  60. 06/27 revision.[ch]: provide and start using a release_revisions()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  61. Junio C HamanoMar 24, 2022
  62. Ævar Arnfjörð BjarmasonMar 24, 2022
  63. 04/27 format-patch: don't leak "extra_headers" or "ref_message_ids"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  64. Junio C HamanoMar 24, 2022
  65. Ævar Arnfjörð BjarmasonMar 24, 2022
  66. 07/27 revisions API users: add straightforward release_revisions()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  67. 08/27 revisions API users: use release_revisions() needing "{ 0 }" initÆvar Arnfjörð Bjarmason, Mar 23, 2022
  68. Junio C HamanoMar 24, 2022
  69. Ævar Arnfjörð BjarmasonMar 24, 2022
  70. Junio C HamanoMar 24, 2022
  71. Junio C HamanoMar 25, 2022
  72. 12/27 revisions API users: use release_revisions() in builtin/log.cÆvar Arnfjörð Bjarmason, Mar 23, 2022
  73. Junio C HamanoMar 25, 2022
  74. 13/27 revisions API users: use release_revisions() with UNLEAK()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  75. 10/27 revisions API users: add "goto cleanup" for release_revisions()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  76. Junio C HamanoMar 25, 2022
  77. 11/27 revisions API users: use release_revisions() in http-push.cÆvar Arnfjörð Bjarmason, Mar 23, 2022
  78. 09/27 stash: always have the owner of "stash_info" free itÆvar Arnfjörð Bjarmason, Mar 23, 2022
  79. Junio C HamanoMar 25, 2022
  80. 14/27 revisions API users: use release_revisions() in submodule.c edge caseÆvar Arnfjörð Bjarmason, Mar 23, 2022
  81. Junio C HamanoMar 25, 2022
  82. 16/27 revisions API: have release_revisions() release "commits"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  83. 15/27 revisions API users: use release_revisions() for "prune_data" usersÆvar Arnfjörð Bjarmason, Mar 23, 2022
  84. 19/27 revisions API: have release_revisions() release "filter"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  85. Junio C HamanoMar 25, 2022
  86. 18/27 revisions API: have release_revisions() release "cmdline"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  87. Junio C HamanoMar 25, 2022
  88. 17/27 revisions API: have release_revisions() release "mailmap"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  89. Junio C HamanoMar 25, 2022
  90. 20/27 revisions API: have release_revisions() release "grep_filter"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  91. 22/27 revisions API: clear "boundary_commits" in release_revisions()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  92. 21/27 revisions API: have release_revisions() release "prune_data"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  93. Junio C HamanoMar 25, 2022
  94. 23/27 revisions API: release "reflog_info" in release revisions()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  95. 24/27 revisions API: call diff_free(&revs->pruning) in revisions_release()Ævar Arnfjörð Bjarmason, Mar 23, 2022
  96. 27/27 revisions API: add a TODO for diff_free(&revs->diffopt)Ævar Arnfjörð Bjarmason, Mar 23, 2022
  97. 25/27 revisions API: have release_revisions() release "date_mode"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  98. 26/27 revisions API: have release_revisions() release "topo_walk_info"Ævar Arnfjörð Bjarmason, Mar 23, 2022
  99. Junio C HamanoMar 25, 2022
  100. Ævar Arnfjörð BjarmasonMar 25, 2022
  101. 00/27 revision.[ch]: add and use release_revisions()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  102. 21/27 revisions API: have release_revisions() release "prune_data"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  103. 01/27 t/helper/test-fast-rebase.c: don't leak "struct strbuf"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  104. 13/27 revisions API users: use release_revisions() in builtin/log.cÆvar Arnfjörð Bjarmason, Mar 25, 2022
  105. 09/27 revisions API users: use release_revisions() in submodule.c edge caseÆvar Arnfjörð Bjarmason, Mar 25, 2022
  106. 26/27 revisions API: have release_revisions() release "topo_walk_info"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  107. 23/27 revisions API: release "reflog_info" in release revisions()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  108. 08/27 revisions API users: add "goto cleanup" for "rev_info" early exitÆvar Arnfjörð Bjarmason, Mar 25, 2022
  109. Junio C HamanoMar 25, 2022
  110. Ævar Arnfjörð BjarmasonMar 26, 2022
  111. Junio C HamanoMar 26, 2022
  112. Derrick StoleeMar 28, 2022
  113. Ævar Arnfjörð BjarmasonMar 28, 2022
  114. Junio C HamanoMar 28, 2022
  115. 25/27 revisions API: have release_revisions() release "date_mode"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  116. 14/27 revisions API users: use release_revisions() with UNLEAK()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  117. 20/27 revisions API: have release_revisions() release "grep_filter"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  118. 07/27 revisions API users: add straightforward release_revisions()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  119. 06/27 revision.[ch]: provide and start using a release_revisions()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  120. 17/27 revisions API: have release_revisions() release "mailmap"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  121. 22/27 revisions API: clear "boundary_commits" in release_revisions()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  122. 18/27 revisions API: have release_revisions() release "cmdline"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  123. 16/27 revisions API: have release_revisions() release "commits"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  124. 27/27 revisions API: add a TODO for diff_free(&revs->diffopt)Ævar Arnfjörð Bjarmason, Mar 25, 2022
  125. 19/27 revisions API: have release_revisions() release "filter"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  126. 12/27 revisions API users: use release_revisions() in http-push.cÆvar Arnfjörð Bjarmason, Mar 25, 2022
  127. 03/27 string_list API users: use string_list_init_{no,}dupÆvar Arnfjörð Bjarmason, Mar 25, 2022
  128. 05/27 revision.[ch]: split freeing of revs->commit into a functionÆvar Arnfjörð Bjarmason, Mar 25, 2022
  129. 10/27 stash: always have the owner of "stash_info" free itÆvar Arnfjörð Bjarmason, Mar 25, 2022
  130. 02/27 blame: use "goto cleanup" for cleanup_scoreboard()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  131. 15/27 revisions API users: use release_revisions() for "prune_data" usersÆvar Arnfjörð Bjarmason, Mar 25, 2022
  132. 24/27 revisions API: call diff_free(&revs->pruning) in revisions_release()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  133. 04/27 format-patch: don't leak "extra_headers" or "ref_message_ids"Ævar Arnfjörð Bjarmason, Mar 25, 2022
  134. 11/27 revisions API users: add "goto cleanup" for release_revisions()Ævar Arnfjörð Bjarmason, Mar 25, 2022
  135. 00/27 revision.[ch]: add and use release_revisions()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  136. 01/27 t/helper/test-fast-rebase.c: don't leak "struct strbuf"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  137. 02/27 blame: use "goto cleanup" for cleanup_scoreboard()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  138. 03/27 string_list API users: use string_list_init_{no,}dupÆvar Arnfjörð Bjarmason, Mar 31, 2022
  139. 04/27 format-patch: don't leak "extra_headers" or "ref_message_ids"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  140. Phillip WoodApr 1, 2022
  141. Ævar Arnfjörð BjarmasonApr 1, 2022
  142. Junio C HamanoApr 1, 2022
  143. 05/27 revision.[ch]: split freeing of revs->commit into a functionÆvar Arnfjörð Bjarmason, Mar 31, 2022
  144. Phillip WoodApr 1, 2022
  145. Junio C HamanoApr 1, 2022
  146. 06/27 revision.[ch]: provide and start using a release_revisions()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  147. Phillip WoodApr 1, 2022
  148. Ævar Arnfjörð BjarmasonApr 1, 2022
  149. 09/27 revisions API users: use release_revisions() needing REV_INFO_INITÆvar Arnfjörð Bjarmason, Mar 31, 2022
  150. Junio C HamanoMar 31, 2022
  151. Ævar Arnfjörð BjarmasonApr 1, 2022
  152. 08/27 revision.[ch]: document and move code declared around "init"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  153. Phillip WoodApr 1, 2022
  154. 07/27 revisions API users: add straightforward release_revisions()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  155. 12/27 revisions API users: use release_revisions() in http-push.cÆvar Arnfjörð Bjarmason, Mar 31, 2022
  156. 10/27 stash: always have the owner of "stash_info" free itÆvar Arnfjörð Bjarmason, Mar 31, 2022
  157. Phillip WoodApr 1, 2022
  158. Ævar Arnfjörð BjarmasonApr 1, 2022
  159. Phillip WoodApr 1, 2022
  160. 11/27 revisions API users: add "goto cleanup" for release_revisions()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  161. 13/27 revisions API users: use release_revisions() in builtin/log.cÆvar Arnfjörð Bjarmason, Mar 31, 2022
  162. Phillip WoodApr 2, 2022
  163. Ævar Arnfjörð BjarmasonApr 3, 2022
  164. Phillip WoodApr 4, 2022
  165. Junio C HamanoApr 3, 2022
  166. 14/27 revisions API users: use release_revisions() with UNLEAK()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  167. 15/27 revisions API users: use release_revisions() for "prune_data" usersÆvar Arnfjörð Bjarmason, Mar 31, 2022
  168. 17/27 revisions API: have release_revisions() release "mailmap"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  169. 19/27 revisions API: have release_revisions() release "filter"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  170. 21/27 revisions API: have release_revisions() release "prune_data"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  171. 18/27 revisions API: have release_revisions() release "cmdline"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  172. 20/27 revisions API: have release_revisions() release "grep_filter"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  173. 24/27 revisions API: call diff_free(&revs->pruning) in revisions_release()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  174. 23/27 revisions API: release "reflog_info" in release revisions()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  175. 22/27 revisions API: clear "boundary_commits" in release_revisions()Ævar Arnfjörð Bjarmason, Mar 31, 2022
  176. 27/27 revisions API: add a TODO for diff_free(&revs->diffopt)Ævar Arnfjörð Bjarmason, Mar 31, 2022
  177. 25/27 revisions API: have release_revisions() release "date_mode"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  178. 16/27 revisions API: have release_revisions() release "commits"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  179. 26/27 revisions API: have release_revisions() release "topo_walk_info"Ævar Arnfjörð Bjarmason, Mar 31, 2022
  180. 00/27 revision.[ch]: add and use release_revisions()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  181. 01/27 t/helper/test-fast-rebase.c: don't leak "struct strbuf"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  182. 02/27 blame: use "goto cleanup" for cleanup_scoreboard()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  183. 03/27 string_list API users: use string_list_init_{no,}dupÆvar Arnfjörð Bjarmason, Apr 2, 2022
  184. 04/27 format-patch: don't leak "extra_headers" or "ref_message_ids"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  185. 05/27 cocci: add and apply free_commit_list() rulesÆvar Arnfjörð Bjarmason, Apr 2, 2022
  186. 06/27 revision.[ch]: provide and start using a release_revisions()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  187. 07/27 revisions API users: add straightforward release_revisions()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  188. 08/27 revision.[ch]: document and move code declared around "init"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  189. 09/27 revisions API users: use release_revisions() needing REV_INFO_INITÆvar Arnfjörð Bjarmason, Apr 2, 2022
  190. 10/27 stash: always have the owner of "stash_info" free itÆvar Arnfjörð Bjarmason, Apr 2, 2022
  191. 11/27 revisions API users: add "goto cleanup" for release_revisions()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  192. 12/27 revisions API users: use release_revisions() in http-push.cÆvar Arnfjörð Bjarmason, Apr 2, 2022
  193. 13/27 revisions API users: use release_revisions() in builtin/log.cÆvar Arnfjörð Bjarmason, Apr 2, 2022
  194. 14/27 revisions API users: use release_revisions() with UNLEAK()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  195. Phillip WoodApr 3, 2022
  196. Ævar Arnfjörð BjarmasonApr 3, 2022
  197. 15/27 revisions API users: use release_revisions() for "prune_data" usersÆvar Arnfjörð Bjarmason, Apr 2, 2022
  198. 16/27 revisions API: have release_revisions() release "commits"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  199. 17/27 revisions API: have release_revisions() release "mailmap"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  200. Phillip WoodApr 3, 2022
  201. Ævar Arnfjörð BjarmasonApr 3, 2022
  202. Phillip WoodApr 4, 2022
  203. 18/27 revisions API: have release_revisions() release "cmdline"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  204. Phillip WoodApr 3, 2022
  205. Ævar Arnfjörð BjarmasonApr 3, 2022
  206. 27/27 revisions API: add a TODO for diff_free(&revs->diffopt)Ævar Arnfjörð Bjarmason, Apr 2, 2022
  207. 22/27 revisions API: clear "boundary_commits" in release_revisions()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  208. 23/27 revisions API: release "reflog_info" in release revisions()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  209. Phillip WoodApr 3, 2022
  210. 20/27 revisions API: have release_revisions() release "grep_filter"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  211. 24/27 revisions API: call diff_free(&revs->pruning) in revisions_release()Ævar Arnfjörð Bjarmason, Apr 2, 2022
  212. Phillip WoodApr 3, 2022
  213. Ævar Arnfjörð BjarmasonApr 3, 2022
  214. 26/27 revisions API: have release_revisions() release "topo_walk_info"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  215. 25/27 revisions API: have release_revisions() release "date_mode"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  216. 21/27 revisions API: have release_revisions() release "prune_data"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  217. 19/27 revisions API: have release_revisions() release "filter"Ævar Arnfjörð Bjarmason, Apr 2, 2022
  218. Phillip WoodApr 3, 2022
  219. Ævar Arnfjörð BjarmasonApr 3, 2022
  220. 00/27 revision.[ch]: add and use release_revisions()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  221. 01/27 t/helper/test-fast-rebase.c: don't leak "struct strbuf"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  222. 02/27 blame: use "goto cleanup" for cleanup_scoreboard()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  223. 03/27 string_list API users: use string_list_init_{no,}dupÆvar Arnfjörð Bjarmason, Apr 13, 2022
  224. 04/27 format-patch: don't leak "extra_headers" or "ref_message_ids"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  225. 05/27 cocci: add and apply free_commit_list() rulesÆvar Arnfjörð Bjarmason, Apr 13, 2022
  226. 06/27 revision.[ch]: provide and start using a release_revisions()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  227. 08/27 revision.[ch]: document and move code declared around "init"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  228. 10/27 stash: always have the owner of "stash_info" free itÆvar Arnfjörð Bjarmason, Apr 13, 2022
  229. 09/27 revisions API users: use release_revisions() needing REV_INFO_INITÆvar Arnfjörð Bjarmason, Apr 13, 2022
  230. 07/27 revisions API users: add straightforward release_revisions()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  231. 13/27 revisions API users: use release_revisions() in builtin/log.cÆvar Arnfjörð Bjarmason, Apr 13, 2022
  232. 11/27 revisions API users: add "goto cleanup" for release_revisions()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  233. Jeff KingJul 11, 2022
  234. Ævar Arnfjörð BjarmasonJul 11, 2022
  235. Jeff KingJul 12, 2022
  236. diff-files: move misplaced cleanup labelJeff King, Jul 12, 2022
  237. 12/27 revisions API users: use release_revisions() in http-push.cÆvar Arnfjörð Bjarmason, Apr 13, 2022
  238. 15/27 revisions API users: use release_revisions() for "prune_data" usersÆvar Arnfjörð Bjarmason, Apr 13, 2022
  239. 16/27 revisions API: have release_revisions() release "commits"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  240. 14/27 revisions API users: use release_revisions() with UNLEAK()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  241. Phillip WoodApr 15, 2022
  242. 17/27 revisions API: have release_revisions() release "mailmap"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  243. 19/27 revisions API: have release_revisions() release "filter"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  244. 20/27 revisions API: have release_revisions() release "grep_filter"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  245. 18/27 revisions API: have release_revisions() release "cmdline"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  246. 21/27 revisions API: have release_revisions() release "prune_data"Ævar Arnfjörð Bjarmason, Apr 13, 2022
  247. 23/27 revisions API: release "reflog_info" in release revisions()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  248. 22/27 revisions API: clear "boundary_commits" in release_revisions()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  249. 24/27 revisions API: call diff_free(&revs->pruning) in revisions_release()Ævar Arnfjörð Bjarmason, Apr 13, 2022
  250. 25/27 revisions API: have release_revisions() release "date_mode"Ævar Arnfjörð Bjarmason, Apr 14, 2022
  251. 26/27 revisions API: have release_revisions() release "topo_walk_info"Ævar Arnfjörð Bjarmason, Apr 14, 2022
  252. 27/27 revisions API: add a TODO for diff_free(&revs->diffopt)Ævar Arnfjörð Bjarmason, Apr 14, 2022

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.