From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: pclouds@gmail.com
Cc: git@vger.kernel.org, gitster@pobox.com, sbeller@google.com,
Brandon Williams <bmwill@google.com>,
Jonathan Tan <jonathantanmy@google.com>,
Eric Sunshine <sunshine@sunshineco.com>
Subject: [PATCH 12/12] packfile: keep prepare_packed_git() private
Date: Fri, 23 Mar 2018 18:45:27 +0100 [thread overview]
Message-ID: <20180323174527.30337-13-pclouds@gmail.com> (raw)
In-Reply-To: <20180323174527.30337-1-pclouds@gmail.com>
The reason callers have to call this is to make sure either packed_git
or packed_git_mru pointers are initialized since we don't do that by
default. Sometimes it's hard to see this connection between where the
function is called and where packed_git pointer is used (sometimes in
separate functions).
Keep this dependency internal because now all access to packed_git and
packed_git_mru must go through get_xxx() wrappers.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
builtin/count-objects.c | 3 +--
builtin/fsck.c | 2 --
builtin/gc.c | 1 -
builtin/pack-objects.c | 1 -
builtin/pack-redundant.c | 2 --
fast-import.c | 1 -
http-backend.c | 1 -
pack-bitmap.c | 1 -
packfile.c | 5 ++++-
packfile.h | 1 -
server-info.c | 1 -
sha1_name.c | 2 --
12 files changed, 5 insertions(+), 16 deletions(-)
diff --git a/builtin/count-objects.c b/builtin/count-objects.c
index ea8bd9e2e2..b054713e1a 100644
--- a/builtin/count-objects.c
+++ b/builtin/count-objects.c
@@ -122,8 +122,7 @@ int cmd_count_objects(int argc, const char **argv, const char *prefix)
struct strbuf loose_buf = STRBUF_INIT;
struct strbuf pack_buf = STRBUF_INIT;
struct strbuf garbage_buf = STRBUF_INIT;
- if (!get_packed_git(the_repository))
- prepare_packed_git(the_repository);
+
for (p = get_packed_git(the_repository); p; p = p->next) {
if (!p->pack_local)
continue;
diff --git a/builtin/fsck.c b/builtin/fsck.c
index d40a82b702..f9632353d9 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -729,8 +729,6 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
uint32_t total = 0, count = 0;
struct progress *progress = NULL;
- prepare_packed_git(the_repository);
-
if (show_progress) {
for (p = get_packed_git(the_repository); p;
p = p->next) {
diff --git a/builtin/gc.c b/builtin/gc.c
index a78dad51aa..0a667972ab 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -174,7 +174,6 @@ static int too_many_packs(void)
if (gc_auto_pack_limit <= 0)
return 0;
- prepare_packed_git(the_repository);
for (cnt = 0, p = get_packed_git(the_repository); p; p = p->next) {
if (!p->pack_local)
continue;
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 491ce433da..2f49b03cb1 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -3152,7 +3152,6 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
if (progress && all_progress_implied)
progress = 2;
- prepare_packed_git(the_repository);
if (ignore_packed_keep) {
struct packed_git *p;
for (p = get_packed_git(the_repository); p; p = p->next)
diff --git a/builtin/pack-redundant.c b/builtin/pack-redundant.c
index da6637f7fc..710cd0fb69 100644
--- a/builtin/pack-redundant.c
+++ b/builtin/pack-redundant.c
@@ -631,8 +631,6 @@ int cmd_pack_redundant(int argc, const char **argv, const char *prefix)
break;
}
- prepare_packed_git(the_repository);
-
if (load_all_packs)
load_all();
else
diff --git a/fast-import.c b/fast-import.c
index 47981e6db7..37a44752a8 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -3473,7 +3473,6 @@ int cmd_main(int argc, const char **argv)
rc_free[i].next = &rc_free[i + 1];
rc_free[cmd_save - 1].next = NULL;
- prepare_packed_git(the_repository);
start_packfile();
set_die_routine(die_nicely);
set_checkpoint_signal();
diff --git a/http-backend.c b/http-backend.c
index c1b1c2d557..88d2a9bc40 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -519,7 +519,6 @@ static void get_info_packs(struct strbuf *hdr, char *arg)
size_t cnt = 0;
select_getanyfile(hdr);
- prepare_packed_git(the_repository);
for (p = get_packed_git(the_repository); p; p = p->next) {
if (p->pack_local)
cnt++;
diff --git a/pack-bitmap.c b/pack-bitmap.c
index 57fec38f3f..3f2dab340f 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -336,7 +336,6 @@ static int open_pack_bitmap(void)
assert(!bitmap_git.map && !bitmap_git.loaded);
- prepare_packed_git(the_repository);
for (p = get_packed_git(the_repository); p; p = p->next) {
if (open_pack_bitmap_1(p) == 0)
ret = 0;
diff --git a/packfile.c b/packfile.c
index 89bd0d47bf..63c89ee31a 100644
--- a/packfile.c
+++ b/packfile.c
@@ -803,6 +803,7 @@ static void prepare_packed_git_one(struct repository *r, char *objdir, int local
strbuf_release(&path);
}
+static void prepare_packed_git(struct repository *r);
/*
* Give a fast, rough count of the number of objects in the repository. This
* ignores loose objects completely. If you have a lot of them, then either
@@ -883,7 +884,7 @@ static void prepare_packed_git_mru(struct repository *r)
list_add_tail(&p->mru, &r->objects->packed_git_mru);
}
-void prepare_packed_git(struct repository *r)
+static void prepare_packed_git(struct repository *r)
{
struct alternate_object_database *alt;
@@ -907,11 +908,13 @@ void reprepare_packed_git(struct repository *r)
struct packed_git *get_packed_git(struct repository *r)
{
+ prepare_packed_git(r);
return r->objects->packed_git;
}
struct list_head *get_packed_git_mru(struct repository *r)
{
+ prepare_packed_git(r);
return &r->objects->packed_git_mru;
}
diff --git a/packfile.h b/packfile.h
index fe1a6380e6..efda10329c 100644
--- a/packfile.h
+++ b/packfile.h
@@ -34,7 +34,6 @@ extern struct packed_git *parse_pack_index(unsigned char *sha1, const char *idx_
#define PACKDIR_FILE_GARBAGE 4
extern void (*report_garbage)(unsigned seen_bits, const char *path);
-extern void prepare_packed_git(struct repository *r);
extern void reprepare_packed_git(struct repository *r);
extern void install_packed_git(struct repository *r, struct packed_git *pack);
diff --git a/server-info.c b/server-info.c
index bf5c325867..83460ec0d6 100644
--- a/server-info.c
+++ b/server-info.c
@@ -201,7 +201,6 @@ static void init_pack_info(const char *infofile, int force)
objdir = get_object_directory();
objdirlen = strlen(objdir);
- prepare_packed_git(the_repository);
for (p = get_packed_git(the_repository); p; p = p->next) {
/* we ignore things on alternate path since they are
* not available to the pullers in general.
diff --git a/sha1_name.c b/sha1_name.c
index e0b62f3c56..31c013ac7e 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -196,7 +196,6 @@ static void find_short_packed_object(struct disambiguate_state *ds)
{
struct packed_git *p;
- prepare_packed_git(the_repository);
for (p = get_packed_git(the_repository); p && !ds->ambiguous;
p = p->next)
unique_in_pack(p, ds);
@@ -567,7 +566,6 @@ static void find_abbrev_len_packed(struct min_abbrev_data *mad)
{
struct packed_git *p;
- prepare_packed_git(the_repository);
for (p = get_packed_git(the_repository); p; p = p->next)
find_abbrev_len_for_pack(p, mad);
}
--
2.17.0.rc0.348.gd5a49e0b6f
next prev parent reply other threads:[~2018-03-23 17:46 UTC|newest]
Thread overview: 135+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-03 2:54 [PATCH 00/11] Moving global state into the repository object (part 2) Duy Nguyen
2018-03-03 11:35 ` [PATCH 00/44] reroll nd/remove-ignore-env.. sb/object-store and sb/packfiles Nguyễn Thái Ngọc Duy
2018-03-03 11:35 ` [PATCH 01/44] repository: initialize the_repository in main() Nguyễn Thái Ngọc Duy
2018-03-21 21:46 ` Brandon Williams
2018-03-03 11:35 ` [PATCH 02/44] repository.c: move env-related setup code back to environment.c Nguyễn Thái Ngọc Duy
2018-03-19 18:07 ` Jonathan Tan
2018-03-19 18:56 ` Duy Nguyen
2018-03-21 21:53 ` Brandon Williams
2018-03-03 11:35 ` [PATCH 03/44] repository.c: delete dead functions Nguyễn Thái Ngọc Duy
2018-03-21 21:57 ` Brandon Williams
2018-03-03 11:35 ` [PATCH 04/44] sha1_file.c: move delayed getenv(altdb) back to setup_git_env() Nguyễn Thái Ngọc Duy
2018-03-21 21:59 ` Brandon Williams
2018-03-03 11:35 ` [PATCH 05/44] repository: delete ignore_env member Nguyễn Thái Ngọc Duy
2018-03-21 21:59 ` Brandon Williams
2018-03-03 11:35 ` [PATCH 06/44] repository: introduce raw object store field Nguyễn Thái Ngọc Duy
2018-03-04 2:19 ` Eric Sunshine
2018-03-21 22:04 ` Brandon Williams
2018-03-03 11:36 ` [PATCH 07/44] object-store: migrate alternates struct and functions from cache.h Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 08/44] object-store: move alt_odb_list and alt_odb_tail to object store Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 09/44] object-store: free alt_odb_list Nguyễn Thái Ngọc Duy
2018-03-04 2:37 ` Eric Sunshine
2018-03-05 9:54 ` Duy Nguyen
2018-03-21 22:10 ` Brandon Williams
2018-03-03 11:36 ` [PATCH 10/44] object-store: move packed_git and packed_git_mru to object store Nguyễn Thái Ngọc Duy
2018-03-19 19:39 ` Jonathan Tan
2018-03-23 16:57 ` Duy Nguyen
2018-03-21 22:18 ` Brandon Williams
2018-03-23 17:03 ` Duy Nguyen
2018-03-23 17:07 ` Duy Nguyen
2018-03-23 18:28 ` Brandon Williams
2018-03-03 11:36 ` [PATCH 11/44] object-store: close all packs upon clearing the " Nguyễn Thái Ngọc Duy
2018-03-21 22:19 ` Brandon Williams
2018-03-03 11:36 ` [PATCH 12/44] pack: move prepare_packed_git_run_once to " Nguyễn Thái Ngọc Duy
2018-03-21 22:25 ` Brandon Williams
2018-03-03 11:36 ` [PATCH 13/44] pack: move approximate object count " Nguyễn Thái Ngọc Duy
2018-03-04 2:47 ` Eric Sunshine
2018-03-04 3:41 ` Duy Nguyen
2018-03-21 22:26 ` Brandon Williams
2018-03-03 11:36 ` [PATCH 14/44] sha1_file: add raw_object_store argument to alt_odb_usable Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 15/44] sha1_file: add repository argument to link_alt_odb_entry Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 16/44] sha1_file: add repository argument to read_info_alternates Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 17/44] sha1_file: add repository argument to link_alt_odb_entries Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 18/44] sha1_file: add repository argument to prepare_alt_odb Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 19/44] sha1_file: allow link_alt_odb_entries to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-21 22:30 ` Brandon Williams
2018-03-03 11:36 ` [PATCH 20/44] sha1_file: allow prepare_alt_odb " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 21/44] sha1_file: add repository argument to sha1_file_name Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 22/44] sha1_file: add repository argument to stat_sha1_file Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 23/44] sha1_file: add repository argument to open_sha1_file Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 24/44] sha1_file: add repository argument to map_sha1_file_1 Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 25/44] sha1_file: add repository argument to map_sha1_file Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 26/44] sha1_file: add repository argument to sha1_loose_object_info Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 27/44] sha1_file: allow sha1_file_name to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 28/44] sha1_file: allow stat_sha1_file " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 29/44] sha1_file: allow open_sha1_file " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 30/44] sha1_file: allow map_sha1_file_1 " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 31/44] sha1_file: allow map_sha1_file " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 32/44] sha1_file: allow sha1_loose_object_info " Nguyễn Thái Ngọc Duy
2018-03-21 22:34 ` Brandon Williams
2018-03-03 11:36 ` [PATCH 33/44] packfile: allow prepare_packed_git_mru " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 34/44] packfile: allow rearrange_packed_git " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 35/44] packfile: allow install_packed_git " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 36/44] packfile: add repository argument to prepare_packed_git_one Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 37/44] packfile: add repository argument to prepare_packed_git Nguyễn Thái Ngọc Duy
2018-03-04 3:03 ` Eric Sunshine
2018-03-03 11:36 ` [PATCH 38/44] packfile: add repository argument to reprepare_packed_git Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 39/44] packfile: allow prepare_packed_git_one to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-19 20:10 ` Jonathan Tan
2018-03-03 11:36 ` [PATCH 40/44] packfile: allow prepare_packed_git " Nguyễn Thái Ngọc Duy
2018-03-21 22:39 ` Brandon Williams
2018-03-22 1:47 ` Junio C Hamano
2018-03-03 11:36 ` [PATCH 41/44] packfile: allow reprepare_packed_git " Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 42/44] packfile: add repository argument to find_pack_entry Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 43/44] packfile: allow find_pack_entry to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-03 11:36 ` [PATCH 44/44] packfile: keep prepare_packed_git() private Nguyễn Thái Ngọc Duy
2018-03-19 20:34 ` Jonathan Tan
2018-03-21 22:42 ` Brandon Williams
2018-03-05 19:13 ` [PATCH 00/44] reroll nd/remove-ignore-env.. sb/object-store and sb/packfiles Junio C Hamano
2018-03-21 22:43 ` Brandon Williams
2018-03-23 15:55 ` [PATCH 0/1] nd/remove-ignore-env-field updates Nguyễn Thái Ngọc Duy
2018-03-23 15:55 ` [PATCH 1/1] repository.h: add comment and clarify repo_set_gitdir Nguyễn Thái Ngọc Duy
2018-03-26 21:04 ` Stefan Beller
2018-03-26 21:05 ` Stefan Beller
2018-03-23 17:20 ` [PATCH 00/27] sb/object-store updates Nguyễn Thái Ngọc Duy
2018-03-23 17:20 ` [PATCH 01/27] repository: introduce raw object store field Nguyễn Thái Ngọc Duy
2018-03-23 17:20 ` [PATCH 02/27] object-store: migrate alternates struct and functions from cache.h Nguyễn Thái Ngọc Duy
2018-03-23 17:20 ` [PATCH 03/27] object-store: move alt_odb_list and alt_odb_tail to object store Nguyễn Thái Ngọc Duy
2018-03-23 17:20 ` [PATCH 04/27] object-store: free alt_odb_list Nguyễn Thái Ngọc Duy
2018-03-23 18:43 ` Brandon Williams
2018-03-23 17:20 ` [PATCH 05/27] object-store: move packed_git and packed_git_mru to object store Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 06/27] object-store: close all packs upon clearing the " Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 07/27] pack: move prepare_packed_git_run_once to " Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 08/27] pack: move approximate object count " Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 09/27] sha1_file: add raw_object_store argument to alt_odb_usable Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 10/27] sha1_file: add repository argument to link_alt_odb_entry Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 11/27] sha1_file: add repository argument to read_info_alternates Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 12/27] sha1_file: add repository argument to link_alt_odb_entries Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 13/27] sha1_file: add repository argument to prepare_alt_odb Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 14/27] sha1_file: allow link_alt_odb_entries to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 15/27] sha1_file: allow prepare_alt_odb " Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 16/27] sha1_file: add repository argument to sha1_file_name Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 17/27] sha1_file: add repository argument to stat_sha1_file Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 18/27] sha1_file: add repository argument to open_sha1_file Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 19/27] sha1_file: add repository argument to map_sha1_file_1 Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 20/27] sha1_file: add repository argument to map_sha1_file Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 21/27] sha1_file: add repository argument to sha1_loose_object_info Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 22/27] sha1_file: allow sha1_file_name to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 23/27] sha1_file: allow stat_sha1_file " Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 24/27] sha1_file: allow open_sha1_file " Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 25/27] sha1_file: allow map_sha1_file_1 " Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 26/27] sha1_file: allow map_sha1_file " Nguyễn Thái Ngọc Duy
2018-03-23 17:21 ` [PATCH 27/27] sha1_file: allow sha1_loose_object_info " Nguyễn Thái Ngọc Duy
2018-03-23 18:35 ` [PATCH 00/27] sb/object-store updates Brandon Williams
2018-03-23 18:50 ` Brandon Williams
2018-03-23 21:31 ` Junio C Hamano
2018-03-23 18:58 ` Duy Nguyen
2018-03-23 22:07 ` Eric Sunshine
2018-03-24 5:31 ` Duy Nguyen
2018-03-26 17:45 ` Stefan Beller
2018-03-26 18:09 ` Junio C Hamano
2018-03-26 19:27 ` Junio C Hamano
2018-03-23 17:45 ` [PATCH 00/12] sb/packfiles-in-repository updates Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 01/12] packfile: allow prepare_packed_git_mru to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 02/12] packfile: allow rearrange_packed_git " Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 03/12] packfile: allow install_packed_git " Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 04/12] packfile: add repository argument to prepare_packed_git_one Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 05/12] packfile: add repository argument to prepare_packed_git Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 06/12] packfile: add repository argument to reprepare_packed_git Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 07/12] packfile: allow prepare_packed_git_one to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 08/12] packfile: allow prepare_packed_git " Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 09/12] packfile: allow reprepare_packed_git " Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 10/12] packfile: add repository argument to find_pack_entry Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` [PATCH 11/12] packfile: allow find_pack_entry to handle arbitrary repositories Nguyễn Thái Ngọc Duy
2018-03-23 17:45 ` Nguyễn Thái Ngọc Duy [this message]
2018-03-23 20:15 ` [PATCH 00/12] sb/packfiles-in-repository updates Brandon Williams
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180323174527.30337-13-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=bmwill@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=sbeller@google.com \
--cc=sunshine@sunshineco.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.