From: "Harald Nordgren via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Phillip Wood <phillip.wood123@gmail.com>,
"D. Ben Knoble" <ben.knoble@gmail.com>, Matt Hunter <m@lfurio.us>,
Harald Nordgren <haraldnordgren@gmail.com>
Subject: [PATCH v14 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo
Date: Sat, 14 Nov 2026 18:38:11 +0000 [thread overview]
Message-ID: <pull.2412.v14.git.git.1794681496.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2412.git.git.1789829246437.gitgitgadget@gmail.com>
In a shallow single-branch clone of a large repository, git remote add
upstream <url> sets up the default +refs/heads/*:refs/remotes/upstream/*
refspec. The next git fetch upstream then downloads every branch of that
remote, which defeats the point of a shallow clone.
This series lets a remote fetch only the branches that local branches track:
git remote add --limited-fetch upstream <url>
git fetch upstream main
git branch --set-upstream-to=upstream/main
git fetch upstream # fetches only main from now on
* Patches 1 and 2 add remote.<name>.fetchRefmap, a configured default for
--refmap, and a small helper refactor.
* Patch 3 makes a remote with a fetchRefmap and no fetch refspec work on
its own. A plain git fetch fetches the branches whose @{upstream} is on
that remote, and @{push} resolves through the refmap.
* Patch 4 adds git remote add --limited-fetch to set up such a remote.
* Patch 5 makes --limited-fetch the default for git remote add in a shallow
repository.
Changes in v14:
* Squashed the @{push} fix into "fetch: infer branches to fetch from a
refmap-only remote", so the series no longer adds the bug in one patch
and fixes it in a later one
* Moved its test to t5586 using the refmap-only remote, so it no longer
depends on --limited-fetch
* Dropped the separate "remote: resolve @{push} through
remote..fetchRefmap" commit
Changes in v13:
* Added a new commit so @{push} resolves correctly for a --limited-fetch
remote, falling back to remote.<name>.fetchRefmap the same way fetch
already does when remote.<name>.fetch doesn't cover the branch being
pushed.
* Added a regression test to fetch: add remote.<name>.fetchRefmap covering
a remote.<name>.fetch entry with an explicit destination, confirming it's
stored in both that destination and the refmap's.
Changes in v12:
* Renamed remote.<name>.refmap to remote.<name>.fetchRefmap throughout
code, docs, and tests, so it reads unambiguously as fetch-only.
* Added the missing code path in get_ref_map() so a branch fetched by name
via remote.<name>.fetch is also stored through remote.<name>.fetchRefmap,
with a new test (the "cabal" example: fetch = master/next/seen plus a
refmap storing them all under one namespace).
* Reworded the fetchRefmap commit message and doc entry to drop a redundant
sentence, fix a confusing paragraph, and spell out that
remote.<name>.fetch, when configured, still decides what's fetched while
the refmap only remaps it.
* Added a prefetch coverage test to t5586-fetch-refmap.sh.
Changes in v11:
* remote_find_tracking() now falls back to remote.<name>.refmap when
remote.<name>.fetch doesn't match. Negative refspecs in fetch still
exclude refs, and both cases have tests
* The helpers write straight into a strvec, take the output parameter last
and the remote as const
* The followRemoteHEAD lookup is done once, not duplicated in two branches
* Clearer commit messages and docs: a working example plus a reference to
49ca2fba39, the goal stated first, an incorrect "used to die" claim
dropped, and an explanation of why a refmap turns on the inference
* use_limited_fetch is a bool
Changes in v10:
* Resolve merge conflict after master integrated
ch/fetch-followremotehead-lazy-validation.
Changes in v9:
* Moved the do_fetch() if/else-if/else split out of the preliminary
helper-extraction commit and into the refmap-inference commit that needs
it. Preliminary commit is now a simpler refactor.
Changes in v8:
* Split into a preliminary collect_upstream_from_remote() helper commit
plus a simplified refmap-inference commit.
* Fixed a regression that could drop the current branch's @{upstream} when
remote.<name>.fetch was narrowed.
* Threaded struct repository * through instead of hardcoding
the_repository.
* Minor naming and comment cleanups.
Changes in v7:
* Fixed fatal: --refmap option is only meaningful with command-line
refspec(s) firing just from configuring remote.<name>.refmap alone, with
nothing else to fetch.
* When both remote.<name>.fetch and remote.<name>.refmap are configured, a
refspec-less fetch follows .fetch as usual, .refmap only remaps something
already being fetched by name. Added tests.
Changes in v6:
* Remove leftover reference to deleted default-branch logic in commit
message.
Changes in v5:
* Renumber test file from t5585 to t5586.
Changes in v4:
* Removed the automatic default-branch fetch. A fresh remote fetches
nothing until you track a branch explicitly.
* Fixed fetch report showing "new ref HEAD" instead of "new branch "
* Reworded remote..refmap docs and commit message.
Changes in v3:
* Replace the special ":"/"+:" fetch refspec with remote.<name>.refmap,
reusing git's existing --refmap mechanism instead of inventing new
refspec syntax.
* Split the change into 4 commits.
Changes in v2:
* Replaced the opt-in fetch.shallow config entirely with a new special
fetch refspec (+:) that git remote add now defaults new remotes to in a
shallow repository. The new refspec fetches whichever branches any local
branch tracks at that remote, plus the remote's default branch.
Harald Nordgren (5):
fetch: add remote.<name>.fetchRefmap
fetch: extract collect_upstream_from_remote() helper
fetch: infer branches to fetch from a refmap-only remote
remote: add "git remote add --limited-fetch"
remote: default to --limited-fetch in a shallow repository
Documentation/config/remote.adoc | 9 ++
Documentation/fetch-options.adoc | 10 ++
Documentation/git-remote.adoc | 14 ++-
builtin/fetch.c | 100 +++++++++++++++-----
builtin/remote.c | 31 +++++--
remote.c | 62 ++++++++++++-
remote.h | 20 ++++
t/meson.build | 1 +
t/t5505-remote.sh | 76 ++++++++++++++++
t/t5510-fetch.sh | 151 +++++++++++++++++++++++++++++++
t/t5586-fetch-refmap.sh | 147 ++++++++++++++++++++++++++++++
11 files changed, 588 insertions(+), 33 deletions(-)
create mode 100755 t/t5586-fetch-refmap.sh
base-commit: 7fb6055e678f800320d8ab8cd8f201d9493d1ba0
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2412%2FHaraldNordgren%2Ffetch-shallow-narrow-refspec-v14
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2412/HaraldNordgren/fetch-shallow-narrow-refspec-v14
Pull-Request: https://github.com/git/git/pull/2412
Range-diff vs v13:
1: 07081828d1 = 1: c63699b402 fetch: add remote.<name>.fetchRefmap
2: 3f5808cbf3 = 2: 4ad94eefe9 fetch: extract collect_upstream_from_remote() helper
3: b02e0a5397 ! 3: 6724152e69 fetch: infer branches to fetch from a refmap-only remote
@@ Commit message
already on that remote. The refmap itself still only controls where
those fetched refs land, not which branches are selected.
+ Let @{push} use the refmap too, so a branch pushed to such a remote
+ resolves to the remote-tracking branch the push updated, instead of
+ failing with "has no local tracking branch".
+
Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>
## Documentation/config/remote.adoc ##
@@ remote.c: void collect_upstream_from_remote(struct repository *repo,
__attribute__((format (printf,2,3)))
static char *error_buf(struct strbuf *err, const char *fmt, ...)
{
+@@ remote.c: static char *tracking_for_push_dest(struct repository *repo,
+
+ remote = repo_remote_for_push_tracking(repo, remote);
+ ret = apply_refspecs(&remote->fetch, refname);
++ if (!ret)
++ ret = apply_refspecs(&remote->refmap, refname);
+ if (!ret)
+ return error_buf(err,
+ _("push destination '%s' on remote '%s' has no local tracking branch"),
## remote.h ##
@@ remote.h: void collect_upstream_from_remote(struct repository *repo,
@@ t/t5586-fetch-refmap.sh (new)
+ )
+'
+
++test_expect_success '@{push} resolves for a branch pushed to a refmap-only remote' '
++ (
++ cd client &&
++ git config push.default current &&
++ git checkout -b topic upstream/main &&
++ test_commit topic-1 &&
++ git push &&
++ echo refs/remotes/upstream/topic >expect &&
++ git rev-parse --symbolic-full-name topic@{push} >actual &&
++ test_cmp expect actual &&
++ test_cmp_rev topic topic@{push}
++ )
++'
++
+test_done
4: 3ee427de87 = 4: 6cff6786ba remote: add "git remote add --limited-fetch"
5: 2cba4623ee = 5: 00f9d44a88 remote: default to --limited-fetch in a shallow repository
6: 25eec8d967 < -: ---------- remote: resolve @{push} through remote.<name>.fetchRefmap
--
gitgitgadget
next prev parent reply other threads:[~2026-11-14 18:38 UTC|newest]
Thread overview: 149+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-19 14:47 [PATCH] fetch: add config to avoid fetching every branch in shallow repo Harald Nordgren via GitGitGadget
2026-09-21 13:28 ` Phillip Wood
2026-09-21 21:45 ` Harald Nordgren
2026-09-22 13:00 ` Harald Nordgren
2026-09-22 14:53 ` Phillip Wood
2026-09-22 15:37 ` Harald Nordgren
2026-09-23 15:14 ` Phillip Wood
2026-09-22 17:11 ` Junio C Hamano
2026-09-22 21:40 ` Harald Nordgren
2026-09-23 15:19 ` Phillip Wood
2026-09-23 15:34 ` Junio C Hamano
2026-09-23 16:55 ` D. Ben Knoble
2026-09-23 19:50 ` Junio C Hamano
2026-09-24 17:10 ` D. Ben Knoble
2026-09-24 18:02 ` Junio C Hamano
2026-09-23 20:35 ` [PATCH v2] fetch: avoid fetching every branch of a new remote in a " Harald Nordgren via GitGitGadget
2026-09-23 21:38 ` Junio C Hamano
2026-09-25 10:49 ` [PATCH v3 0/4] " Harald Nordgren via GitGitGadget
2026-09-25 10:49 ` [PATCH v3 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-09-25 22:38 ` Junio C Hamano
2026-09-25 10:50 ` [PATCH v3 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-09-25 23:26 ` Junio C Hamano
2026-09-25 10:50 ` [PATCH v3 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-09-25 10:50 ` [PATCH v3 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-09-29 9:19 ` [PATCH v4 0/4] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-09-29 9:19 ` [PATCH v4 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-09-29 9:19 ` [PATCH v4 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-09-29 9:27 ` Harald Nordgren
2026-09-29 20:17 ` Junio C Hamano
2026-09-29 9:19 ` [PATCH v4 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-09-29 9:19 ` [PATCH v4 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-09-29 19:36 ` [PATCH v4 0/4] fetch: avoid fetching every branch of a new remote in a shallow repo Junio C Hamano
2026-10-02 7:13 ` [PATCH v5 " Harald Nordgren via GitGitGadget
2026-10-02 7:13 ` [PATCH v5 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-02 7:13 ` [PATCH v5 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-02 7:13 ` [PATCH v5 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-02 16:28 ` Junio C Hamano
2026-10-02 7:13 ` [PATCH v5 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-04 8:31 ` [PATCH v6 0/4] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-04 8:31 ` [PATCH v6 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-04 8:31 ` [PATCH v6 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-04 8:31 ` [PATCH v6 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-04 8:31 ` [PATCH v6 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-04 17:17 ` [PATCH v6 0/4] fetch: avoid fetching every branch of a new remote in a shallow repo Junio C Hamano
2026-10-04 19:51 ` Harald Nordgren
2026-10-05 12:17 ` Junio C Hamano
2026-10-05 18:09 ` Harald Nordgren
2026-10-07 21:56 ` [PATCH v7 " Harald Nordgren via GitGitGadget
2026-10-07 21:56 ` [PATCH v7 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-07 21:56 ` [PATCH v7 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-08 16:59 ` Junio C Hamano
2026-10-09 7:05 ` Harald Nordgren
2026-10-09 8:09 ` Harald Nordgren
2026-10-07 21:56 ` [PATCH v7 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-07 21:56 ` [PATCH v7 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-10 8:02 ` [PATCH v8 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-10 8:02 ` [PATCH v8 1/5] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-10 8:02 ` [PATCH v8 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-10 17:11 ` Junio C Hamano
2026-10-10 18:36 ` Harald Nordgren
2026-10-10 8:02 ` [PATCH v8 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-10 8:02 ` [PATCH v8 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-10 17:16 ` Junio C Hamano
2026-10-10 8:02 ` [PATCH v8 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-14 7:04 ` [PATCH v9 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-14 7:04 ` [PATCH v9 1/5] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-14 7:04 ` [PATCH v9 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-14 7:04 ` [PATCH v9 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-14 7:04 ` [PATCH v9 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-14 7:04 ` [PATCH v9 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-20 13:42 ` [PATCH v10 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-20 13:42 ` [PATCH v10 1/5] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-24 15:08 ` D. Ben Knoble
2026-10-24 17:18 ` Harald Nordgren
2026-10-25 14:14 ` D. Ben Knoble
2026-10-25 16:47 ` Harald Nordgren
2026-10-25 22:15 ` Junio C Hamano
2026-10-26 8:21 ` Harald Nordgren
2026-10-26 15:48 ` Junio C Hamano
2026-10-27 17:03 ` Phillip Wood
2026-10-27 17:21 ` Junio C Hamano
2026-10-28 16:16 ` Phillip Wood
2026-10-28 17:42 ` Junio C Hamano
2026-10-28 20:57 ` Harald Nordgren
2026-10-29 16:26 ` Phillip Wood
2026-10-29 22:18 ` Junio C Hamano
2026-10-26 10:44 ` Phillip Wood
2026-10-26 15:51 ` Junio C Hamano
2026-10-26 9:44 ` Phillip Wood
2026-10-29 14:30 ` Ben Knoble
2026-10-29 14:50 ` Harald Nordgren
2026-10-29 22:21 ` Junio C Hamano
2026-10-30 10:14 ` Harald Nordgren
2026-11-07 20:20 ` Notes, refs, etc. (was: Re: [PATCH v10 1/5] fetch: add remote.<name>.refmap) D. Ben Knoble
2026-10-20 13:42 ` [PATCH v10 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-24 15:08 ` D. Ben Knoble
2026-10-25 17:20 ` Harald Nordgren
2026-10-27 19:41 ` D. Ben Knoble
2026-10-20 13:42 ` [PATCH v10 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-24 15:09 ` D. Ben Knoble
2026-10-25 17:27 ` Harald Nordgren
2026-10-20 13:42 ` [PATCH v10 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-24 15:11 ` D. Ben Knoble
2026-10-20 13:42 ` [PATCH v10 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-24 15:13 ` D. Ben Knoble
2026-10-25 18:12 ` Harald Nordgren
2026-10-23 23:13 ` [PATCH v10 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Junio C Hamano
2026-10-24 15:15 ` D. Ben Knoble
2026-10-26 9:43 ` Phillip Wood
2026-10-26 15:44 ` Junio C Hamano
2026-10-27 12:22 ` Harald Nordgren
2026-10-27 17:04 ` Phillip Wood
2026-10-25 20:25 ` [PATCH v11 " Harald Nordgren via GitGitGadget
2026-10-25 20:25 ` [PATCH v11 1/5] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-25 20:25 ` [PATCH v11 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-25 20:25 ` [PATCH v11 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-25 20:25 ` [PATCH v11 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-25 20:25 ` [PATCH v11 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-27 12:24 ` [PATCH v12 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-27 12:24 ` [PATCH v12 1/5] fetch: add remote.<name>.fetchRefmap Harald Nordgren via GitGitGadget
2026-10-27 12:24 ` [PATCH v12 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-27 12:24 ` [PATCH v12 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-27 12:24 ` [PATCH v12 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-27 12:24 ` [PATCH v12 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-30 10:52 ` [PATCH v13 0/6] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-30 10:52 ` [PATCH v13 1/6] fetch: add remote.<name>.fetchRefmap Harald Nordgren via GitGitGadget
2026-11-12 11:00 ` Phillip Wood
2026-11-12 19:49 ` Junio C Hamano
2026-11-13 9:48 ` Phillip Wood
2026-10-30 10:52 ` [PATCH v13 2/6] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-30 10:52 ` [PATCH v13 3/6] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-30 10:52 ` [PATCH v13 4/6] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-30 10:52 ` [PATCH v13 5/6] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-30 10:52 ` [PATCH v13 6/6] remote: resolve @{push} through remote.<name>.fetchRefmap Harald Nordgren via GitGitGadget
2026-11-11 18:27 ` D. Ben Knoble
2026-11-11 22:10 ` Junio C Hamano
2026-11-14 16:10 ` Harald Nordgren
2026-11-11 8:31 ` [PATCH v13 0/6] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren
2026-11-11 14:12 ` Phillip Wood
2026-11-11 17:37 ` Junio C Hamano
2026-11-11 18:35 ` D. Ben Knoble
2026-11-12 11:16 ` Phillip Wood
2026-11-12 15:25 ` Matt Hunter
2026-11-14 18:38 ` Harald Nordgren via GitGitGadget [this message]
2026-11-14 18:38 ` [PATCH v14 1/5] fetch: add remote.<name>.fetchRefmap Harald Nordgren via GitGitGadget
2026-11-14 18:38 ` [PATCH v14 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-11-14 18:38 ` [PATCH v14 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-11-14 18:38 ` [PATCH v14 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-11-14 18:38 ` [PATCH v14 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
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=pull.2412.v14.git.git.1794681496.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=ben.knoble@gmail.com \
--cc=git@vger.kernel.org \
--cc=haraldnordgren@gmail.com \
--cc=m@lfurio.us \
--cc=phillip.wood123@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox