From: Emily Shaffer <emilyshaffer@google.com> To: git@vger.kernel.org Cc: Emily Shaffer <emilyshaffer@google.com> Subject: [PATCH v8 13/15] bugreport: add packed object summary Date: Wed, 19 Feb 2020 17:58:56 -0800 Message-ID: <20200220015858.181086-14-emilyshaffer@google.com> (raw) In-Reply-To: <20200220015858.181086-1-emilyshaffer@google.com> Alongside the loose object counts, it can be useful to show the number of packs and packed objects. This way we can check whether the repo has an appropriate ratio of packed to loose objects to help determine whether it's behaving correctly. Add a utility to easily traverse all packfiles in a given repository. Use it in packfile.c and remove a redundant call to prepare_packed_git(), which is already called in get_all_packs(). Signed-off-by: Emily Shaffer <emilyshaffer@google.com> --- Documentation/git-bugreport.txt | 1 + bugreport.c | 30 ++++++++++++++++++++++++++++++ object-store.h | 6 ++++++ packfile.c | 3 +-- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/Documentation/git-bugreport.txt b/Documentation/git-bugreport.txt index 4fe1c60506..eb41f0677f 100644 --- a/Documentation/git-bugreport.txt +++ b/Documentation/git-bugreport.txt @@ -33,6 +33,7 @@ The following information is captured automatically: - Selected config values - A list of enabled hooks - The number of loose objects in the repository + - The number of packs and packed objects in the repository This tool is invoked via the typical Git setup process, which means that in some cases, it might not be able to launch - for example, if a relevant config file diff --git a/bugreport.c b/bugreport.c index fb7bc72723..71191f1331 100644 --- a/bugreport.c +++ b/bugreport.c @@ -177,6 +177,33 @@ static void get_loose_object_summary(struct strbuf *obj_info, int nongit) { total_count_questionable ? " (problem during count)" : ""); } +static void get_packed_object_summary(struct strbuf *obj_info, int nongit) +{ + struct packed_git *pack = NULL; + int pack_count = 0; + int object_count = 0; + + if (nongit) { + strbuf_addstr(obj_info, + "not run from a git repository - no objects to show\n"); + return; + } + + for_each_pack(the_repository, pack) { + pack_count++; + /* + * To accurately count how many objects are packed, look inside + * the packfile's index. + */ + open_pack_index(pack); + object_count += pack->num_objects; + } + + strbuf_addf(obj_info, "%d total packs (%d objects)\n", pack_count, + object_count); + +} + static const char * const bugreport_usage[] = { N_("git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]"), NULL @@ -271,6 +298,9 @@ int cmd_main(int argc, const char **argv) get_header(&buffer, "Loose Object Counts"); get_loose_object_summary(&buffer, nongit_ok); + get_header(&buffer, "Packed Object Summary"); + get_packed_object_summary(&buffer, nongit_ok); + report = fopen_for_writing(report_path.buf); if (report == NULL) { diff --git a/object-store.h b/object-store.h index 5b047637e3..f881a1756e 100644 --- a/object-store.h +++ b/object-store.h @@ -7,6 +7,7 @@ #include "sha1-array.h" #include "strbuf.h" #include "thread-utils.h" +#include "packfile.h" struct object_directory { struct object_directory *next; @@ -447,4 +448,9 @@ int for_each_object_in_pack(struct packed_git *p, int for_each_packed_object(each_packed_object_fn, void *, enum for_each_object_flags flags); +#define for_each_pack(repo, pack) \ + for (pack = get_all_packs(repo);\ + pack; \ + pack = pack->next) + #endif /* OBJECT_STORE_H */ diff --git a/packfile.c b/packfile.c index 99dd1a7d09..95afcc1187 100644 --- a/packfile.c +++ b/packfile.c @@ -2095,8 +2095,7 @@ int for_each_packed_object(each_packed_object_fn cb, void *data, int r = 0; int pack_errors = 0; - prepare_packed_git(the_repository); - for (p = get_all_packs(the_repository); p; p = p->next) { + for_each_pack(the_repository, p) { if ((flags & FOR_EACH_OBJECT_LOCAL_ONLY) && !p->pack_local) continue; if ((flags & FOR_EACH_OBJECT_PROMISOR_ONLY) && -- 2.25.0.265.gbab2e86ba0-goog
next prev parent reply other threads:[~2020-02-20 1:59 UTC|newest] Thread overview: 273+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-12-13 0:42 [PATCH v4 00/15] add git-bugreport tool Emily Shaffer 2019-12-13 0:42 ` [PATCH v4 01/15] bugreport: add tool to generate debugging info Emily Shaffer 2019-12-13 0:42 ` [PATCH v4 02/15] help: move list_config_help to builtin/help Emily Shaffer 2019-12-13 20:51 ` Junio C Hamano 2019-12-16 21:36 ` Emily Shaffer 2019-12-16 22:19 ` Junio C Hamano 2019-12-16 22:34 ` Emily Shaffer 2019-12-13 0:43 ` [PATCH v4 03/15] bugreport: gather git version and build info Emily Shaffer 2019-12-13 21:06 ` Junio C Hamano 2019-12-20 1:46 ` Emily Shaffer 2019-12-17 18:45 ` Johannes Schindelin 2019-12-17 20:34 ` Junio C Hamano 2019-12-20 1:25 ` Emily Shaffer 2019-12-13 0:43 ` [PATCH v4 04/15] help: add shell-path to --build-options Emily Shaffer 2019-12-13 0:43 ` [PATCH v4 05/15] bugreport: add uname info Emily Shaffer 2019-12-13 21:12 ` Junio C Hamano 2020-01-10 2:05 ` Aaron Schrab 2019-12-13 0:43 ` [PATCH v4 06/15] bugreport: add glibc version Emily Shaffer 2019-12-13 21:18 ` Junio C Hamano 2019-12-16 22:39 ` Emily Shaffer 2019-12-13 0:43 ` [PATCH v4 07/15] bugreport: add curl version Emily Shaffer 2019-12-13 21:27 ` Junio C Hamano 2019-12-16 22:49 ` Emily Shaffer 2019-12-17 18:47 ` Johannes Schindelin 2019-12-13 0:43 ` [PATCH v4 08/15] bugreport: include user interactive shell Emily Shaffer 2019-12-13 21:38 ` Junio C Hamano 2019-12-13 0:43 ` [PATCH v4 09/15] bugreport: generate config safelist based on docs Emily Shaffer 2019-12-13 22:57 ` Junio C Hamano 2019-12-16 23:01 ` Emily Shaffer 2019-12-17 0:41 ` Emily Shaffer 2019-12-15 20:17 ` Johannes Schindelin 2019-12-16 22:52 ` Emily Shaffer 2019-12-17 18:38 ` Johannes Schindelin 2019-12-13 0:43 ` [PATCH v4 10/15] bugreport: add config values from safelist Emily Shaffer 2019-12-13 21:45 ` Junio C Hamano 2019-12-16 23:40 ` Emily Shaffer 2019-12-17 17:43 ` Junio C Hamano 2020-01-24 3:29 ` Emily Shaffer 2019-12-29 20:17 ` Johannes Schindelin 2019-12-13 0:43 ` [PATCH v4 11/15] bugreport: collect list of populated hooks Emily Shaffer 2019-12-13 21:47 ` Junio C Hamano 2019-12-16 23:51 ` Emily Shaffer 2019-12-13 0:43 ` [PATCH v4 12/15] bugreport: count loose objects Emily Shaffer 2019-12-13 21:51 ` Junio C Hamano 2019-12-16 23:54 ` Emily Shaffer 2019-12-13 0:43 ` [PATCH v4 13/15] bugreport: add packed object summary Emily Shaffer 2019-12-13 21:56 ` Junio C Hamano 2019-12-16 23:56 ` Emily Shaffer 2019-12-13 0:43 ` [PATCH v4 14/15] bugreport: list contents of $OBJDIR/info Emily Shaffer 2019-12-13 0:43 ` [PATCH v4 15/15] bugreport: summarize contents of alternates file Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 00/15] add git-bugreport tool emilyshaffer 2020-01-24 3:34 ` [PATCH v5 01/15] bugreport: add tool to generate debugging info emilyshaffer 2020-01-30 22:18 ` Martin Ågren 2020-02-04 22:00 ` Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 02/15] help: move list_config_help to builtin/help emilyshaffer 2020-01-30 22:19 ` Martin Ågren 2020-02-04 0:53 ` Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 03/15] bugreport: gather git version and build info emilyshaffer 2020-01-30 22:19 ` Martin Ågren 2020-02-04 22:21 ` Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 04/15] help: add shell-path to --build-options emilyshaffer 2020-01-30 22:21 ` Martin Ågren 2020-01-24 3:34 ` [PATCH v5 05/15] bugreport: add uname info emilyshaffer 2020-01-24 3:34 ` [PATCH v5 06/15] bugreport: add compiler info emilyshaffer 2020-01-30 22:21 ` Martin Ågren 2020-02-04 22:51 ` Emily Shaffer 2020-02-05 19:47 ` Martin Ågren 2020-01-24 3:34 ` [PATCH v5 07/15] bugreport: add curl version emilyshaffer 2020-01-30 22:27 ` Martin Ågren 2020-02-04 22:54 ` Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 08/15] bugreport: include user interactive shell emilyshaffer 2020-01-30 22:28 ` Martin Ågren 2020-02-04 23:16 ` Emily Shaffer 2020-02-05 20:06 ` Junio C Hamano 2020-02-05 20:14 ` Martin Ågren 2020-01-24 3:34 ` [PATCH v5 09/15] bugreport: generate config safelist based on docs emilyshaffer 2020-01-30 22:34 ` Martin Ågren 2020-02-05 0:44 ` Emily Shaffer 2020-02-05 19:53 ` Martin Ågren 2020-01-31 21:20 ` Martin Ågren 2020-02-05 0:30 ` Emily Shaffer 2020-02-05 0:52 ` Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 10/15] bugreport: add config values from safelist emilyshaffer 2020-01-30 22:36 ` Martin Ågren 2020-02-05 1:34 ` Emily Shaffer 2020-01-31 21:25 ` Martin Ågren 2020-02-05 2:31 ` Emily Shaffer 2020-02-05 20:12 ` Martin Ågren 2020-01-24 3:34 ` [PATCH v5 11/15] bugreport: collect list of populated hooks emilyshaffer 2020-02-04 18:44 ` Junio C Hamano 2020-02-05 2:48 ` Emily Shaffer 2020-02-05 3:00 ` Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 12/15] bugreport: count loose objects emilyshaffer 2020-02-04 18:48 ` Junio C Hamano 2020-02-05 2:50 ` Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 13/15] bugreport: add packed object summary emilyshaffer 2020-02-04 19:00 ` Junio C Hamano 2020-02-05 3:15 ` Emily Shaffer 2020-02-04 19:03 ` Junio C Hamano 2020-02-05 3:09 ` Emily Shaffer 2020-01-24 3:34 ` [PATCH v5 14/15] bugreport: list contents of $OBJDIR/info emilyshaffer 2020-01-24 3:34 ` [PATCH v5 15/15] bugreport: summarize contents of alternates file emilyshaffer 2020-01-24 3:38 ` [PATCH v5 00/15] add git-bugreport tool Emily Shaffer 2020-01-28 23:04 ` Jonathan Tan 2020-01-28 23:26 ` Emily Shaffer 2020-01-30 22:15 ` Martin Ågren 2020-02-04 0:07 ` Emily Shaffer 2020-02-06 0:40 ` [PATCH v6 " Emily Shaffer 2020-02-06 0:40 ` [PATCH v6 01/15] help: move list_config_help to builtin/help Emily Shaffer 2020-02-06 1:35 ` Danh Doan 2020-02-13 22:58 ` Emily Shaffer 2020-02-13 23:07 ` Eric Sunshine 2020-02-13 23:24 ` Junio C Hamano 2020-02-13 23:29 ` Eric Sunshine 2020-02-14 1:20 ` Emily Shaffer 2020-02-06 0:40 ` [PATCH v6 02/15] help: add shell-path to --build-options Emily Shaffer 2020-02-06 0:40 ` [PATCH v6 03/15] bugreport: add tool to generate debugging info Emily Shaffer 2020-02-07 14:18 ` SZEDER Gábor 2020-02-07 18:51 ` Junio C Hamano 2020-02-11 22:40 ` Emily Shaffer 2020-02-07 14:54 ` SZEDER Gábor 2020-02-12 18:06 ` Junio C Hamano 2020-02-12 22:36 ` Emily Shaffer 2020-02-06 0:40 ` [PATCH v6 04/15] bugreport: gather git version and build info Emily Shaffer 2020-02-06 0:40 ` [PATCH v6 05/15] bugreport: add uname info Emily Shaffer 2020-02-06 0:40 ` [PATCH v6 06/15] bugreport: add compiler info Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 07/15] bugreport: add git-remote-https version Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 08/15] bugreport: include user interactive shell Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 09/15] bugreport: generate config safelist based on docs Emily Shaffer 2020-02-07 15:30 ` SZEDER Gábor 2020-02-13 23:14 ` Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 10/15] bugreport: add config values from safelist Emily Shaffer 2020-02-07 14:47 ` SZEDER Gábor 2020-02-07 15:08 ` SZEDER Gábor 2020-02-07 16:24 ` Eric Sunshine 2020-02-07 16:51 ` Andreas Schwab 2020-02-13 22:02 ` Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 11/15] bugreport: collect list of populated hooks Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 12/15] bugreport: count loose objects Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 13/15] bugreport: add packed object summary Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 14/15] bugreport: list contents of $OBJDIR/info Emily Shaffer 2020-02-06 0:41 ` [PATCH v6 15/15] bugreport: summarize contents of alternates file Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 00/15] add git-bugreport tool Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 01/15] help: move list_config_help to builtin/help Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 02/15] help: add shell-path to --build-options Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 03/15] bugreport: add tool to generate debugging info Emily Shaffer 2020-02-14 17:25 ` Junio C Hamano 2020-02-15 1:57 ` Emily Shaffer 2020-02-15 18:24 ` Junio C Hamano 2020-02-18 23:46 ` Emily Shaffer 2020-02-18 23:56 ` Emily Shaffer 2020-02-19 23:15 ` Emily Shaffer 2020-02-19 23:24 ` Junio C Hamano 2020-02-19 14:18 ` Johannes Schindelin 2020-02-19 16:55 ` Junio C Hamano 2020-02-19 21:52 ` Emily Shaffer 2020-02-19 22:09 ` Junio C Hamano 2020-02-19 23:06 ` Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 04/15] bugreport: gather git version and build info Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 05/15] bugreport: add uname info Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 06/15] bugreport: add compiler info Emily Shaffer 2020-02-19 14:23 ` Johannes Schindelin 2020-02-19 22:45 ` Emily Shaffer 2020-02-20 22:33 ` Johannes Schindelin 2020-02-20 23:33 ` Emily Shaffer 2020-02-21 15:22 ` Johannes Schindelin 2020-02-22 0:04 ` Emily Shaffer 2020-02-24 2:55 ` Junio C Hamano 2020-02-14 1:53 ` [PATCH v7 07/15] bugreport: add git-remote-https version Emily Shaffer 2020-02-19 14:28 ` Johannes Schindelin 2020-02-19 22:28 ` Emily Shaffer 2020-02-19 22:33 ` Junio C Hamano 2020-02-20 22:33 ` Johannes Schindelin 2020-02-14 1:53 ` [PATCH v7 08/15] bugreport: include user interactive shell Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 09/15] bugreport: generate config safelist based on docs Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 10/15] bugreport: add config values from safelist Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 11/15] bugreport: collect list of populated hooks Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 12/15] bugreport: count loose objects Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 13/15] bugreport: add packed object summary Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 14/15] bugreport: list contents of $OBJDIR/info Emily Shaffer 2020-02-14 17:04 ` Junio C Hamano 2020-02-18 23:59 ` Emily Shaffer 2020-02-14 1:53 ` [PATCH v7 15/15] bugreport: summarize contents of alternates file Emily Shaffer 2020-02-14 17:32 ` [PATCH v7 00/15] add git-bugreport tool Junio C Hamano 2020-02-14 22:00 ` Emily Shaffer 2020-02-14 22:30 ` Junio C Hamano 2020-02-20 1:58 ` [PATCH v8 " Emily Shaffer 2020-02-20 1:58 ` [PATCH v8 01/15] help: move list_config_help to builtin/help Emily Shaffer 2020-02-20 1:58 ` [PATCH v8 02/15] help: add shell-path to --build-options Emily Shaffer 2020-02-20 19:03 ` Junio C Hamano 2020-02-20 21:15 ` Emily Shaffer 2020-02-20 1:58 ` [PATCH v8 03/15] bugreport: add tool to generate debugging info Emily Shaffer 2020-02-20 19:33 ` Junio C Hamano 2020-02-20 22:33 ` Emily Shaffer 2020-02-26 16:12 ` Johannes Schindelin 2020-02-20 1:58 ` [PATCH v8 04/15] bugreport: gather git version and build info Emily Shaffer 2020-02-20 20:07 ` Junio C Hamano 2020-02-20 23:03 ` Emily Shaffer 2020-02-20 23:18 ` Junio C Hamano 2020-02-20 1:58 ` [PATCH v8 05/15] bugreport: add uname info Emily Shaffer 2020-02-20 20:12 ` Junio C Hamano 2020-02-20 23:20 ` Emily Shaffer 2020-02-20 1:58 ` [PATCH v8 06/15] bugreport: add compiler info Emily Shaffer 2020-02-20 2:49 ` Danh Doan 2020-02-20 23:23 ` Emily Shaffer 2020-02-20 20:23 ` Junio C Hamano 2020-02-21 0:26 ` Junio C Hamano 2020-02-20 1:58 ` [PATCH v8 07/15] bugreport: add git-remote-https version Emily Shaffer 2020-02-20 20:35 ` Junio C Hamano 2020-02-20 23:28 ` Emily Shaffer 2020-02-21 3:44 ` Junio C Hamano 2020-02-25 22:08 ` Emily Shaffer 2020-02-25 22:26 ` Junio C Hamano 2020-02-25 23:29 ` Emily Shaffer 2020-02-25 23:29 ` Junio C Hamano 2020-02-25 23:55 ` Emily Shaffer 2020-02-20 1:58 ` [PATCH v8 08/15] bugreport: include user interactive shell Emily Shaffer 2020-02-20 1:58 ` [PATCH v8 09/15] bugreport: generate config safelist based on docs Emily Shaffer 2020-02-20 20:40 ` Junio C Hamano 2020-02-26 16:13 ` Johannes Schindelin 2020-02-26 16:49 ` Junio C Hamano 2020-02-20 1:58 ` [PATCH v8 10/15] bugreport: add config values from safelist Emily Shaffer 2020-02-20 20:47 ` Junio C Hamano 2020-02-20 1:58 ` [PATCH v8 11/15] bugreport: collect list of populated hooks Emily Shaffer 2020-02-20 20:58 ` Junio C Hamano 2020-02-25 23:19 ` Emily Shaffer 2020-02-20 1:58 ` [PATCH v8 12/15] bugreport: count loose objects Emily Shaffer 2020-02-20 21:04 ` Junio C Hamano 2020-02-25 23:22 ` Emily Shaffer 2020-02-25 23:26 ` Emily Shaffer 2020-02-20 1:58 ` Emily Shaffer [this message] 2020-02-20 22:04 ` [PATCH v8 13/15] bugreport: add packed object summary Junio C Hamano 2020-02-25 23:58 ` Emily Shaffer 2020-02-20 1:58 ` [PATCH v8 14/15] bugreport: list contents of $OBJDIR/info Emily Shaffer 2020-02-20 22:18 ` Junio C Hamano 2020-02-20 1:58 ` [PATCH v8 15/15] bugreport: summarize contents of alternates file Emily Shaffer 2020-02-20 14:08 ` Johannes Schindelin 2020-02-20 22:22 ` Junio C Hamano 2020-03-02 23:03 ` [PATCH v9 0/5] add git-bugreport tool Emily Shaffer 2020-03-02 23:03 ` [PATCH v9 1/5] help: move list_config_help to builtin/help Emily Shaffer 2020-03-02 23:03 ` [PATCH v9 2/5] bugreport: add tool to generate debugging info Emily Shaffer 2020-03-03 14:18 ` Johannes Schindelin 2020-03-04 21:35 ` Johannes Schindelin 2020-03-05 23:34 ` Jeff Hostetler 2020-03-06 13:57 ` Johannes Schindelin 2020-03-06 18:25 ` Junio C Hamano 2020-03-06 18:08 ` Junio C Hamano 2020-03-06 18:58 ` Jeff Hostetler 2020-03-08 22:24 ` Johannes Schindelin 2020-03-09 14:59 ` Junio C Hamano 2020-03-09 19:17 ` Johannes Schindelin 2020-03-09 19:47 ` Junio C Hamano 2020-03-10 11:42 ` Johannes Schindelin 2020-03-10 18:37 ` Junio C Hamano 2020-03-10 22:08 ` Johannes Schindelin 2020-03-19 21:39 ` Emily Shaffer 2020-03-20 0:28 ` Junio C Hamano 2020-03-20 15:35 ` Johannes Schindelin 2020-03-23 18:52 ` Emily Shaffer 2020-03-20 15:42 ` Johannes Schindelin 2020-03-23 18:50 ` Emily Shaffer 2020-03-20 17:43 ` Junio C Hamano 2020-03-20 22:38 ` Johannes Schindelin 2020-03-20 22:47 ` Junio C Hamano 2020-03-21 10:53 ` Johannes Schindelin 2020-03-02 23:03 ` [PATCH v9 3/5] bugreport: gather git version and build info Emily Shaffer 2020-03-23 21:20 ` Junio C Hamano 2020-03-02 23:03 ` [PATCH v9 4/5] bugreport: add uname info Emily Shaffer 2020-03-02 23:04 ` [PATCH v9 5/5] bugreport: add compiler info Emily Shaffer 2020-03-03 11:46 ` Danh Doan 2020-03-03 14:07 ` Junio C Hamano 2020-03-04 21:39 ` Johannes Schindelin 2020-03-23 21:27 ` Emily Shaffer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200220015858.181086-14-emilyshaffer@google.com \ --to=emilyshaffer@google.com \ --cc=git@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
git@vger.kernel.org list mirror (unofficial, one of many) This inbox may be cloned and mirrored by anyone: git clone --mirror https://public-inbox.org/git git clone --mirror http://ou63pmih66umazou.onion/git git clone --mirror http://czquwvybam4bgbro.onion/git git clone --mirror http://hjrcffqmbrq6wope.onion/git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 git git/ https://public-inbox.org/git \ git@vger.kernel.org public-inbox-index git Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.version-control.git nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git nntp://news.gmane.io/gmane.comp.version-control.git note: .onion URLs require Tor: https://www.torproject.org/ code repositories for the project(s) associated with this inbox: https://80x24.org/mirrors/git.git AGPL code for this site: git clone https://public-inbox.org/public-inbox.git