public inbox for git@vger.kernel.org
 help / color / mirror / Atom feed
From: "Harald Nordgren via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Harald Nordgren <haraldnordgren@gmail.com>
Subject: [PATCH v26 0/2] status: add status.compareBranches config for multiple branch comparisons
Date: Sun, 18 Jan 2026 19:59:11 +0000	[thread overview]
Message-ID: <pull.2138.v26.git.git.1768766353.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2138.v25.git.git.1768306316.gitgitgadget@gmail.com>

cc: Chris Torek chris.torek@gmail.com cc: Yee Cheng Chin
ychin.macvim@gmail.com cc: "brian m. carlson" sandals@crustytoothpaste.net
cc: Ben Knoble ben.knoble@gmail.com cc: "Kristoffer Haugsbakk"
kristofferhaugsbakk@fastmail.com cc: Phillip Wood phillip.wood123@gmail.com
cc: Nico Williams nico@cryptonector.com cc: Patrick Steinhardt ps@pks.im cc:
Jeff King peff@peff.net

Harald Nordgren (2):
  refactor format_branch_comparison in preparation
  status: add status.compareBranches config for multiple branch
    comparisons

 Documentation/config/status.adoc |  20 ++
 remote.c                         | 187 ++++++++++++++----
 t/t6040-tracking-info.sh         | 322 +++++++++++++++++++++++++++++++
 3 files changed, 492 insertions(+), 37 deletions(-)


base-commit: b5c409c40f1595e3e590760c6f14a16b6683e22c
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2138%2FHaraldNordgren%2Fahead_of_main_status-v26
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2138/HaraldNordgren/ahead_of_main_status-v26
Pull-Request: https://github.com/git/git/pull/2138

Range-diff vs v25:

 1:  fd05c7b778 = 1:  27a46f8d9c refactor format_branch_comparison in preparation
 2:  fa744efc59 ! 2:  caa761f615 status: show comparison with push remote tracking branch
     @@ Metadata
      Author: Harald Nordgren <haraldnordgren@gmail.com>
      
       ## Commit message ##
     -    status: show comparison with push remote tracking branch
     +    status: add status.compareBranches config for multiple branch comparisons
      
     -    "git status" on a branch that follows a remote branch compares
     -    commits on the current branch and the remote-tracking branch it
     -    builds upon, to show "ahead", "behind", or "diverged" status.
     +    Add a new configuration variable `status.compareBranches` that allows
     +    users to specify a space-separated list of branches to compare against
     +    the current branch in `git status` output.
      
     -    When working on a feature branch that tracks a remote feature branch,
     -    but you also want to track progress relative to the push destination
     -    tracking branch (which may differ from the upstream branch), git status
     -    now shows an additional comparison.
     +    Each branch in the list can be:
     +    - A remote-tracking branch name (e.g., `origin/main`)
     +    - The special reference `@{upstream}` for the tracking branch
     +    - The special reference `@{push}` for the push destination
      
     -    When the upstream tracking branch differs from the push destination
     -    tracking branch, git status shows both the comparison with the upstream
     -    tracking branch (as before) and an additional comparison with the push
     -    destination tracking branch. The push branch comparison appears on a
     -    separate line after the upstream branch status, using the same format.
     +    When not configured, the default behavior is equivalent to setting
     +    `status.compareBranches = @{upstream}`, preserving backward compatibility.
      
     -    Example output when tracking origin/main but push destination is
     -    origin/feature:
     -        On branch feature
     -        Your branch and 'origin/main' have diverged,
     -        and have 3 and 1 different commits each, respectively.
     -          (use "git pull" if you want to integrate the remote branch with yours)
     +    The advice messages shown are context-aware:
     +    - "git pull" advice is shown only when comparing against @{upstream}
     +    - "git push" advice is shown only when comparing against @{push}
     +    - Divergence advice is shown for upstream branch comparisons
      
     -        Your branch is ahead of 'origin/feature' by 1 commit.
     -          (use "git push" to publish your local commits)
     +    This is useful for triangular workflows where the upstream tracking
     +    branch differs from the push destination, allowing users to see their
     +    status relative to both branches at once.
      
     -    The comparison is only shown when the push destination tracking branch
     -    differs from the upstream tracking branch, even if they are on the same
     -    remote.
     +    Example configuration:
     +        [status]
     +            compareBranches = @{upstream} @{push}
      
          Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>
      
     + ## Documentation/config/status.adoc ##
     +@@ Documentation/config/status.adoc: status.aheadBehind::
     + 	`--no-ahead-behind` by default in linkgit:git-status[1] for
     + 	non-porcelain status formats.  Defaults to true.
     + 
     ++status.compareBranches::
     ++	A space-separated list of branches to compare the current branch
     ++	against in linkgit:git-status[1]. Each branch specification can be
     ++	a remote-tracking branch name (e.g. `origin/main`), or a special
     ++	reference like `@{upstream}` or `@{push}`. For each branch in the
     ++	list, git status shows whether the current branch is ahead, behind,
     ++	or has diverged from that branch.
     +++
     ++If not set, the default behavior is equivalent to `@{upstream}`, which
     ++compares against the configured upstream tracking branch.
     +++
     ++Example:
     +++
     ++----
     ++[status]
     ++	compareBranches = origin/main origin/develop
     ++----
     +++
     ++This would show comparisons against both `origin/main` and `origin/develop`.
     ++
     + status.displayCommentPrefix::
     + 	If set to true, linkgit:git-status[1] will insert a comment
     + 	prefix before each output line (starting with
     +
       ## remote.c ##
      @@
       
     @@ remote.c
       struct counted_string {
       	size_t len;
       	const char *s;
     +@@ remote.c: static void branch_release(struct branch *branch)
     + 	free((char *)branch->refname);
     + 	free(branch->remote_name);
     + 	free(branch->pushremote_name);
     ++	free((char *)branch->push_tracking_ref);
     + 	merge_clear(branch);
     + }
     + 
      @@ remote.c: int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
       	return stat_branch_pair(branch->refname, base, num_ours, num_theirs, abf);
       }
       
     -+static char *get_remote_push_branch(struct branch *branch)
     ++static char *resolve_compare_branch(struct branch *branch, const char *name)
      +{
     -+	struct remote *remote;
     -+	const char *push_remote;
     -+	char *push_dst = NULL;
     -+	char *tracking_ref;
     -+	const char *resolved;
     ++	struct strbuf buf = STRBUF_INIT;
     ++	const char *resolved = NULL;
      +	char *ret;
      +
     -+	if (!branch)
     -+		return NULL;
     -+
     -+	push_remote = pushremote_for_branch(branch, NULL);
     -+	if (!push_remote)
     ++	if (!branch || !name)
      +		return NULL;
      +
     -+	remote = remotes_remote_get(the_repository, push_remote);
     -+	if (!remote)
     -+		return NULL;
     ++	if (!strcasecmp(name, "@{upstream}") || !strcasecmp(name, "@{u}"))
     ++		resolved = branch_get_upstream(branch, NULL);
     ++	else if (!strcasecmp(name, "@{push}"))
     ++		resolved = branch_get_push(branch, NULL);
      +
     -+	push_dst = remote_ref_for_branch(branch, 1);
     -+	if (!push_dst) {
     -+		if (remote->push.nr)
     -+			return NULL;
     -+		push_dst = xstrdup(branch->refname);
     -+	}
     -+
     -+	tracking_ref = (char *)tracking_for_push_dest(remote, push_dst, NULL);
     -+	free(push_dst);
     -+
     -+	if (!tracking_ref)
     -+		return NULL;
     ++	if (resolved)
     ++		return xstrdup(resolved);
      +
     ++	strbuf_addf(&buf, "refs/remotes/%s", name);
      +	resolved = refs_resolve_ref_unsafe(
      +		get_main_ref_store(the_repository),
     -+		tracking_ref,
     ++		buf.buf,
      +		RESOLVE_REF_READING,
      +		NULL, NULL);
     -+
     -+	if (!resolved) {
     -+		free(tracking_ref);
     -+		return NULL;
     ++	if (resolved) {
     ++		ret = xstrdup(resolved);
     ++		strbuf_release(&buf);
     ++		return ret;
      +	}
      +
     -+	ret = xstrdup(resolved);
     -+	free(tracking_ref);
     -+	return ret;
     ++	strbuf_release(&buf);
     ++	return NULL;
      +}
      +
       static void format_branch_comparison(struct strbuf *sb,
     @@ remote.c: static void format_branch_comparison(struct strbuf *sb,
       				_("  (use \"git pull\" if you want to integrate the remote branch with yours)\n"));
       	}
      @@ remote.c: int format_tracking_info(struct branch *branch, struct strbuf *sb,
     - 	const char *full_base;
     - 	char *base;
     - 	int upstream_is_gone = 0;
     -+	unsigned base_branch_flags = ENABLE_ADVICE_PULL | ENABLE_ADVICE_PUSH;
     -+	int push_ours, push_theirs, push_cmp_fetch;
     -+	char *full_push;
     -+	char *push = NULL;
     -+	unsigned push_branch_flags = 0;
     + 			 enum ahead_behind_flags abf,
     + 			 int show_divergence_advice)
     + {
     +-	int ours, theirs, cmp_fetch;
     +-	const char *full_base;
     +-	char *base;
     +-	int upstream_is_gone = 0;
     +-
     +-	cmp_fetch = stat_tracking_info(branch, &ours, &theirs, &full_base, 0, abf);
     +-	if (cmp_fetch < 0) {
     +-		if (!full_base)
     +-			return 0;
     +-		upstream_is_gone = 1;
     ++	char *compare_branches_config = NULL;
     ++	struct string_list compare_branches = STRING_LIST_INIT_DUP;
     ++	struct string_list_item *item;
     ++	int reported = 0;
     ++	size_t i;
     ++	const char *upstream_ref;
     ++	const char *push_ref;
     ++
     ++	repo_config_get_string(the_repository, "status.comparebranches",
     ++			       &compare_branches_config);
     ++
     ++	if (compare_branches_config) {
     ++		string_list_split(&compare_branches, compare_branches_config,
     ++				  " ", -1);
     ++		string_list_remove_empty_items(&compare_branches, 0);
     ++	} else {
     ++		string_list_append(&compare_branches, "@{upstream}");
     + 	}
       
     - 	cmp_fetch = stat_tracking_info(branch, &ours, &theirs, &full_base, 0, abf);
     - 	if (cmp_fetch < 0) {
     -@@ remote.c: int format_tracking_info(struct branch *branch, struct strbuf *sb,
     - 	base = refs_shorten_unambiguous_ref(get_main_ref_store(the_repository),
     - 					    full_base, 0);
     +-	base = refs_shorten_unambiguous_ref(get_main_ref_store(the_repository),
     +-					    full_base, 0);
     ++	upstream_ref = branch_get_upstream(branch, NULL);
     ++	push_ref = branch_get_push(branch, NULL);
       
     -+	full_push = get_remote_push_branch(branch);
     -+	if (full_push) {
     -+		push = refs_shorten_unambiguous_ref(get_main_ref_store(the_repository),
     -+						     full_push, 0);
     -+		if (push && base && strcmp(base, push)) {
     -+			push_cmp_fetch = stat_branch_pair(branch->refname, full_push,
     -+						   &push_ours, &push_theirs, abf);
     -+			if (push_cmp_fetch >= 0) {
     -+				base_branch_flags = ENABLE_ADVICE_PULL;
     -+				push_branch_flags = ENABLE_ADVICE_PUSH;
     +-	if (upstream_is_gone) {
     +-		strbuf_addf(sb,
     +-			_("Your branch is based on '%s', but the upstream is gone.\n"),
     +-			base);
     +-		if (advice_enabled(ADVICE_STATUS_HINTS))
     +-			strbuf_addstr(sb,
     +-				_("  (use \"git branch --unset-upstream\" to fixup)\n"));
     +-	} else {
     +-		format_branch_comparison(sb, !cmp_fetch, ours, theirs, base, abf, show_divergence_advice);
     ++	for (i = 0; i < compare_branches.nr; i++) {
     ++		char *full_ref;
     ++		char *short_ref;
     ++		int ours, theirs, cmp;
     ++		int is_upstream, is_push;
     ++		unsigned flags = 0;
     ++
     ++		item = &compare_branches.items[i];
     ++		full_ref = resolve_compare_branch(branch, item->string);
     ++		if (!full_ref)
     ++			continue;
     ++
     ++		short_ref = refs_shorten_unambiguous_ref(
     ++			get_main_ref_store(the_repository), full_ref, 0);
     ++
     ++		is_upstream = upstream_ref && !strcmp(full_ref, upstream_ref);
     ++		is_push = push_ref && !strcmp(full_ref, push_ref);
     ++
     ++		if (is_upstream && (!push_ref || !strcmp(upstream_ref, push_ref)))
     ++			is_push = 1;
     ++
     ++		cmp = stat_branch_pair(branch->refname, full_ref,
     ++				       &ours, &theirs, abf);
     ++
     ++		if (cmp < 0) {
     ++			if (is_upstream) {
     ++				strbuf_addf(sb,
     ++					_("Your branch is based on '%s', but the upstream is gone.\n"),
     ++					short_ref);
     ++				if (advice_enabled(ADVICE_STATUS_HINTS))
     ++					strbuf_addstr(sb,
     ++						_("  (use \"git branch --unset-upstream\" to fixup)\n"));
     ++				reported = 1;
      +			}
     ++			free(full_ref);
     ++			free(short_ref);
     ++			continue;
      +		}
     -+	}
      +
     - 	if (upstream_is_gone) {
     - 		strbuf_addf(sb,
     - 			_("Your branch is based on '%s', but the upstream is gone.\n"),
     -@@ remote.c: int format_tracking_info(struct branch *branch, struct strbuf *sb,
     - 			strbuf_addstr(sb,
     - 				_("  (use \"git branch --unset-upstream\" to fixup)\n"));
     - 	} else {
     --		format_branch_comparison(sb, !cmp_fetch, ours, theirs, base, abf, show_divergence_advice);
     -+		if (show_divergence_advice)
     -+			base_branch_flags |= ENABLE_ADVICE_DIVERGENCE;
     -+		format_branch_comparison(sb, !cmp_fetch, ours, theirs, base, abf,
     -+					 base_branch_flags);
     -+	}
     -+
     -+	if (push_branch_flags & ENABLE_ADVICE_PUSH) {
     -+		strbuf_addstr(sb, "\n");
     -+		format_branch_comparison(sb, !push_cmp_fetch, push_ours, push_theirs, push, abf,
     -+					 push_branch_flags);
     ++		if (reported)
     ++			strbuf_addstr(sb, "\n");
     ++
     ++		if (is_upstream)
     ++			flags |= ENABLE_ADVICE_PULL;
     ++		if (is_push)
     ++			flags |= ENABLE_ADVICE_PUSH;
     ++		if (show_divergence_advice && is_upstream)
     ++			flags |= ENABLE_ADVICE_DIVERGENCE;
     ++		format_branch_comparison(sb, !cmp, ours, theirs, short_ref,
     ++					 abf, flags);
     ++		reported = 1;
     ++
     ++		free(full_ref);
     ++		free(short_ref);
       	}
       
     - 	free(base);
     -+	free(full_push);
     -+	free(push);
     - 	return 1;
     +-	free(base);
     +-	return 1;
     ++	string_list_clear(&compare_branches, 0);
     ++	free(compare_branches_config);
     ++	return reported;
       }
       
     + static int one_local_ref(const struct reference *ref, void *cb_data)
      
       ## t/t6040-tracking-info.sh ##
      @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'status shows ahead of both origin/main and feature branch' '
     ++test_expect_success 'setup for compareBranches tests' '
     ++	(
     ++		cd test &&
     ++		git config push.default current &&
     ++		git config status.compareBranches "@{upstream} @{push}"
     ++	)
     ++'
     ++
     ++test_expect_success 'status.compareBranches shows ahead of both upstream and push branch' '
      +	(
      +		cd test &&
      +		git checkout -b feature2 origin/main &&
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'checkout shows ahead of both origin/main and feature branch' '
     ++test_expect_success 'checkout with status.compareBranches shows both branches' '
      +	(
      +		cd test &&
      +		git checkout feature2 >../actual
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	)
      +'
      +
     -+test_expect_success 'status shows diverged from origin/main and ahead of feature branch' '
     ++test_expect_success 'status.compareBranches shows diverged and ahead' '
      +	(
      +		cd test &&
      +		git checkout feature4 &&
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'status --no-ahead-behind shows diverged from origin/main and ahead of feature branch' '
     ++test_expect_success 'status --no-ahead-behind with status.compareBranches' '
      +	(
      +		cd test &&
      +		git checkout feature4 &&
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	)
      +'
      +
     -+test_expect_success 'status with upstream remote and push.default set to origin' '
     ++test_expect_success 'status.compareBranches with upstream and origin remotes' '
      +	(
      +		cd test &&
      +		git checkout -b feature5 upstream/main &&
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'status with upstream remote and push.default set to origin and diverged' '
     ++test_expect_success 'status.compareBranches with upstream and origin remotes multiple compare branches' '
      +	(
      +		cd test &&
      +		git checkout -b feature6 upstream/main &&
     ++		git push origin &&
     ++		advance work &&
     ++		git -c status.compareBranches="upstream/main origin/feature6 origin/feature5" status >../actual
     ++	) &&
     ++	cat >expect <<-EOF &&
     ++	On branch feature6
     ++	Your branch is ahead of ${SQ}upstream/main${SQ} by 1 commit.
     ++
     ++	Your branch is ahead of ${SQ}origin/feature6${SQ} by 1 commit.
     ++	  (use "git push" to publish your local commits)
     ++
     ++	Your branch is ahead of ${SQ}origin/feature5${SQ} by 1 commit.
     ++
     ++	nothing to commit, working tree clean
     ++	EOF
     ++	test_cmp expect actual
     ++'
     ++
     ++test_expect_success 'status.compareBranches with diverged push branch' '
     ++	(
     ++		cd test &&
     ++		git checkout -b feature7 upstream/main &&
      +		advance work &&
      +		git push origin &&
      +		git reset --hard upstream/main &&
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +		git status >../actual
      +	) &&
      +	cat >expect <<-EOF &&
     -+	On branch feature6
     ++	On branch feature7
      +	Your branch is ahead of ${SQ}upstream/main${SQ} by 1 commit.
      +
     -+	Your branch and ${SQ}origin/feature6${SQ} have diverged,
     ++	Your branch and ${SQ}origin/feature7${SQ} have diverged,
      +	and have 1 and 1 different commits each, respectively.
      +
      +	nothing to commit, working tree clean
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'status with upstream remote and push branch up to date' '
     ++test_expect_success 'status.compareBranches shows up to date branches' '
      +	(
      +		cd test &&
     -+		git checkout -b feature7 upstream/main &&
     ++		git checkout -b feature8 upstream/main &&
      +		git push origin &&
      +		git status >../actual
      +	) &&
      +	cat >expect <<-EOF &&
     -+	On branch feature7
     ++	On branch feature8
      +	Your branch is up to date with ${SQ}upstream/main${SQ}.
      +
     -+	Your branch is up to date with ${SQ}origin/feature7${SQ}.
     ++	Your branch is up to date with ${SQ}origin/feature8${SQ}.
      +
      +	nothing to commit, working tree clean
      +	EOF
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'status --no-ahead-behind with upstream remote and push branch up to date' '
     ++test_expect_success 'status --no-ahead-behind with status.compareBranches up to date' '
      +	(
      +		cd test &&
     -+		git checkout feature7 &&
     ++		git checkout feature8 &&
      +		git push origin &&
      +		git status --no-ahead-behind >../actual
      +	) &&
      +	cat >expect <<-EOF &&
     -+	On branch feature7
     ++	On branch feature8
      +	Your branch is up to date with ${SQ}upstream/main${SQ}.
      +
     -+	Your branch is up to date with ${SQ}origin/feature7${SQ}.
     ++	Your branch is up to date with ${SQ}origin/feature8${SQ}.
      +
      +	nothing to commit, working tree clean
      +	EOF
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'checkout shows push branch up to date' '
     ++test_expect_success 'checkout with status.compareBranches shows up to date' '
      +	(
      +		cd test &&
     -+		git checkout feature7 >../actual
     ++		git checkout feature8 >../actual
      +	) &&
      +	cat >expect <<-EOF &&
      +	Your branch is up to date with ${SQ}upstream/main${SQ}.
      +
     -+	Your branch is up to date with ${SQ}origin/feature7${SQ}.
     ++	Your branch is up to date with ${SQ}origin/feature8${SQ}.
      +	EOF
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'status with upstream ahead and push branch up to date' '
     ++test_expect_success 'status.compareBranches with upstream behind and push up to date' '
      +	(
      +		cd test &&
      +		git checkout -b ahead upstream/main &&
      +		advance work &&
      +		git push upstream HEAD &&
     -+		git checkout -b feature8 upstream/main &&
     ++		git checkout -b feature9 upstream/main &&
      +		git push origin &&
      +		git branch --set-upstream-to upstream/ahead &&
      +		git status >../actual
      +	) &&
      +	cat >expect <<-EOF &&
     -+	On branch feature8
     ++	On branch feature9
      +	Your branch is behind ${SQ}upstream/ahead${SQ} by 1 commit, and can be fast-forwarded.
      +	  (use "git pull" to update your local branch)
      +
     -+	Your branch is up to date with ${SQ}origin/feature8${SQ}.
     ++	Your branch is up to date with ${SQ}origin/feature9${SQ}.
      +
      +	nothing to commit, working tree clean
      +	EOF
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'status shows remapped push refspec' '
     ++test_expect_success 'status.compareBranches with remapped push refspec' '
      +	(
      +		cd test &&
     -+		git checkout -b feature9 origin/main &&
     -+		git config remote.origin.push refs/heads/feature9:refs/heads/remapped &&
     ++		git checkout -b feature10 origin/main &&
     ++		git config remote.origin.push refs/heads/feature10:refs/heads/remapped &&
      +		git push &&
      +		advance work &&
      +		git status >../actual
      +	) &&
      +	cat >expect <<-EOF &&
     -+	On branch feature9
     ++	On branch feature10
      +	Your branch is ahead of ${SQ}origin/main${SQ} by 1 commit.
      +
      +	Your branch is ahead of ${SQ}origin/remapped${SQ} by 1 commit.
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	test_cmp expect actual
      +'
      +
     -+test_expect_success 'status shows remapped push refspec with upstream remote' '
     ++test_expect_success 'status.compareBranches with remapped push and upstream remote' '
      +	(
      +		cd test &&
     -+		git checkout -b feature10 upstream/main &&
     -+		git config remote.origin.push refs/heads/feature10:refs/heads/remapped &&
     ++		git checkout -b feature11 upstream/main &&
     ++		git config remote.origin.push refs/heads/feature11:refs/heads/remapped &&
      +		git push origin &&
      +		advance work &&
      +		git status >../actual
      +	) &&
      +	cat >expect <<-EOF &&
     -+	On branch feature10
     ++	On branch feature11
      +	Your branch is ahead of ${SQ}upstream/main${SQ} by 1 commit.
      +
      +	Your branch is ahead of ${SQ}origin/remapped${SQ} by 1 commit.
     @@ t/t6040-tracking-info.sh: test_expect_success '--set-upstream-to @{-1}' '
      +	EOF
      +	test_cmp expect actual
      +'
     ++
     ++test_expect_success 'clean up after compareBranches tests' '
     ++	(
     ++		cd test &&
     ++		git config --unset status.compareBranches
     ++	)
     ++'
      +
       test_done

-- 
gitgitgadget

  parent reply	other threads:[~2026-01-18 19:59 UTC|newest]

Thread overview: 259+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-23  0:53 [PATCH] status: show default branch comparison when tracking non-default branch Harald Nordgren via GitGitGadget
2025-12-23  5:32 ` Junio C Hamano
2025-12-23 10:24   ` Harald Nordgren
2025-12-23 11:36     ` Harald Nordgren
2025-12-23 12:23       ` Chris Torek
2025-12-23 14:18         ` Harald Nordgren
2025-12-23 14:22           ` Chris Torek
2026-01-01 19:59         ` Another look? Harald Nordgren
2025-12-23 13:32     ` [PATCH] status: show default branch comparison when tracking non-default branch Junio C Hamano
2025-12-23 14:09       ` Harald Nordgren
2025-12-23 22:54 ` [PATCH v2 0/2] " Harald Nordgren via GitGitGadget
2025-12-23 22:54   ` [PATCH v2 1/2] status: show comparison with upstream default branch Harald Nordgren via GitGitGadget
2025-12-24  1:30     ` brian m. carlson
2025-12-24  1:46       ` Junio C Hamano
2026-01-01 20:01       ` Another look? Harald Nordgren
2025-12-23 22:54   ` [PATCH v2 2/2] Simplify default branch comparison logic Harald Nordgren via GitGitGadget
2025-12-24  0:00   ` [PATCH] status: show default branch comparison when tracking non-default branch Harald Nordgren
2025-12-24  9:31   ` [PATCH v3 0/3] " Harald Nordgren via GitGitGadget
2025-12-24  9:31     ` [PATCH v3 1/3] status: show comparison with upstream default branch Harald Nordgren via GitGitGadget
2025-12-24  9:31     ` [PATCH v3 2/3] Simplify default branch comparison logic Harald Nordgren via GitGitGadget
2025-12-24  9:31     ` [PATCH v3 3/3] Use repo.settings.statusGoalBranch config for status comparison Harald Nordgren via GitGitGadget
2025-12-24 10:19     ` [PATCH v4 0/4] status: show default branch comparison when tracking non-default branch Harald Nordgren via GitGitGadget
2025-12-24 10:19       ` [PATCH v4 1/4] status: show comparison with upstream default branch Harald Nordgren via GitGitGadget
2025-12-24 10:19       ` [PATCH v4 2/4] Simplify default branch comparison logic Harald Nordgren via GitGitGadget
2025-12-24 10:19       ` [PATCH v4 3/4] Use repo.settings.statusGoalBranch config for status comparison Harald Nordgren via GitGitGadget
2025-12-24 10:19       ` [PATCH v4 4/4] Rename default_remote to goal_branch Harald Nordgren via GitGitGadget
2025-12-24 10:38       ` [PATCH v5 0/5] status: show default branch comparison when tracking non-default branch Harald Nordgren via GitGitGadget
2025-12-24 10:38         ` [PATCH v5 1/5] status: show comparison with upstream default branch Harald Nordgren via GitGitGadget
2025-12-24 10:38         ` [PATCH v5 2/5] Simplify default branch comparison logic Harald Nordgren via GitGitGadget
2025-12-24 10:38         ` [PATCH v5 3/5] Use repo.settings.statusGoalBranch config for status comparison Harald Nordgren via GitGitGadget
2025-12-24 10:38         ` [PATCH v5 4/5] Rename default_remote to goal_branch Harald Nordgren via GitGitGadget
2025-12-24 10:38         ` [PATCH v5 5/5] Add warning for malformed statusGoalBranch config Harald Nordgren via GitGitGadget
2025-12-24 23:41         ` [PATCH v6 0/6] status: show default branch comparison when tracking non-default branch Harald Nordgren via GitGitGadget
2025-12-24 23:41           ` [PATCH v6 1/6] status: show comparison with upstream default branch Harald Nordgren via GitGitGadget
2025-12-24 23:41           ` [PATCH v6 2/6] Simplify default branch comparison logic Harald Nordgren via GitGitGadget
2025-12-24 23:41           ` [PATCH v6 3/6] Use repo.settings.statusGoalBranch config for status comparison Harald Nordgren via GitGitGadget
2025-12-24 23:41           ` [PATCH v6 4/6] Rename default_remote to goal_branch Harald Nordgren via GitGitGadget
2025-12-24 23:41           ` [PATCH v6 5/6] Add warning for malformed statusGoalBranch config Harald Nordgren via GitGitGadget
2025-12-24 23:41           ` [PATCH v6 6/6] Change config key to status.compareBranch Harald Nordgren via GitGitGadget
2025-12-25  8:00           ` [PATCH v6 0/6] status: show default branch comparison when tracking non-default branch Junio C Hamano
2025-12-25  9:45             ` [PATCH] " Harald Nordgren
2025-12-26  1:59               ` Junio C Hamano
2025-12-26 10:58                 ` Harald Nordgren
2025-12-25  9:45           ` [PATCH v7] status: additional comparison with goal branch Harald Nordgren via GitGitGadget
2025-12-25 12:33             ` [PATCH v8] status: show comparison with configured " Harald Nordgren via GitGitGadget
2025-12-28  9:16               ` Code review? Harald Nordgren
2025-12-28 19:37                 ` Junio C Hamano
2025-12-28 20:16                   ` Harald Nordgren
2025-12-28 23:09                     ` Ben Knoble
2025-12-29 12:17                       ` Triangular workflows Harald Nordgren
2026-01-01 19:49                         ` Code review? Harald Nordgren
2025-12-30 16:08                   ` Harald Nordgren
2025-12-28 11:46               ` [PATCH v8] status: show comparison with configured goal branch Junio C Hamano
2025-12-28 15:46                 ` Code review? Harald Nordgren
2025-12-28 15:41               ` [PATCH v9 0/2] status: show comparison with configured goal branch Harald Nordgren via GitGitGadget
2025-12-28 15:41                 ` [PATCH v9 1/2] " Harald Nordgren via GitGitGadget
2025-12-28 15:41                 ` [PATCH v9 2/2] improve tests Harald Nordgren via GitGitGadget
2025-12-30 16:08                 ` [PATCH v10 0/3] status: show additional comparison with push branch when different from tracking branch Harald Nordgren via GitGitGadget
2025-12-30 16:08                   ` [PATCH v10 1/3] status: show comparison with configured goal branch Harald Nordgren via GitGitGadget
2025-12-30 16:08                   ` [PATCH v10 2/3] improve tests Harald Nordgren via GitGitGadget
2025-12-30 16:08                   ` [PATCH v10 3/3] use pushRemote and tracking branch Harald Nordgren via GitGitGadget
2026-01-01 23:09                   ` [PATCH v10 0/3] status: show additional comparison with push branch when different from " Junio C Hamano
2026-01-01 23:38                     ` Another look? Harald Nordgren
2026-01-02  9:48                       ` Kristoffer Haugsbakk
2026-01-02 11:20                         ` Harald Nordgren
2026-01-12  7:34                           ` Kristoffer Haugsbakk
2026-01-04  2:17                       ` Junio C Hamano
2026-01-04  2:41                         ` Nico Williams
2026-01-04  4:17                           ` Junio C Hamano
2026-01-05 21:55                       ` D. Ben Knoble
2026-01-02 11:17                   ` [PATCH v11] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-02 15:18                     ` Phillip Wood
2026-01-02 20:27                       ` Another look? Harald Nordgren
2026-01-03 10:04                         ` Phillip Wood
2026-01-03 13:00                           ` Harald Nordgren
2026-01-02 21:34                     ` [PATCH v12 0/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-02 21:34                       ` [PATCH v12 1/2] refactor: format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-02 21:34                       ` [PATCH v12 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-03  3:08                       ` [PATCH v13 0/2] " Harald Nordgren via GitGitGadget
2026-01-03  3:08                         ` [PATCH v13 1/2] refactor: format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-03  3:08                         ` [PATCH v13 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-03 13:00                         ` [PATCH v14 0/2] " Harald Nordgren via GitGitGadget
2026-01-03 13:00                           ` [PATCH v14 1/2] refactor: format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-04  4:40                             ` Junio C Hamano
2026-01-04 10:27                               ` Another look? Harald Nordgren
2026-01-04 10:48                                 ` Harald Nordgren
2026-01-05  1:16                                   ` Junio C Hamano
2026-01-03 13:00                           ` [PATCH v14 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-04 11:53                           ` [PATCH v15 0/2] " Harald Nordgren via GitGitGadget
2026-01-04 11:53                             ` [PATCH v15 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-04 11:53                             ` [PATCH v15 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-04 23:21                             ` [PATCH v16 0/2] " Harald Nordgren via GitGitGadget
2026-01-04 23:21                               ` [PATCH v16 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-05  2:05                                 ` Junio C Hamano
2026-01-05  9:15                                   ` Another look? Harald Nordgren
2026-01-05  9:46                                     ` Harald Nordgren
2026-01-05 12:28                                     ` Junio C Hamano
2026-01-05 13:16                                       ` Harald Nordgren
2026-01-05 22:13                                         ` Junio C Hamano
2026-01-06  0:08                                           ` ABQ Harald Nordgren
2026-01-08 10:19                                             ` ABQ Harald Nordgren
2026-01-04 23:21                               ` [PATCH v16 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-05 10:17                               ` [PATCH v17 0/2] " Harald Nordgren via GitGitGadget
2026-01-05 10:17                                 ` [PATCH v17 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-09 14:56                                   ` Phillip Wood
2026-01-09 15:23                                     ` Harald Nordgren
2026-01-05 10:17                                 ` [PATCH v17 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-09 14:56                                   ` Phillip Wood
2026-01-09 16:00                                     ` [PATCH v17 1/2] refactor format_branch_comparison in preparation Harald Nordgren
2026-01-09 16:22                                       ` Ben Knoble
2026-01-09 16:32                                         ` Patrick Steinhardt
2026-01-09 18:03                                           ` Harald Nordgren
2026-01-12 14:45                                       ` Phillip Wood
2026-01-12 19:47                                         ` Harald Nordgren
2026-01-13 10:41                                           ` Phillip Wood
2026-01-13 12:11                                             ` Harald Nordgren
2026-01-09 16:41                                 ` [PATCH v18 0/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-09 16:41                                   ` [PATCH v18 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-09 16:41                                   ` [PATCH v18 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-09 18:40                                   ` [PATCH v19 0/2] " Harald Nordgren via GitGitGadget
2026-01-09 18:40                                     ` [PATCH v19 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-10  2:02                                       ` Junio C Hamano
2026-01-09 18:40                                     ` [PATCH v19 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-10  2:13                                       ` Junio C Hamano
2026-01-10 11:14                                         ` [PATCH v17 1/2] refactor format_branch_comparison in preparation Harald Nordgren
2026-01-10 17:34                                           ` Junio C Hamano
2026-01-10  2:21                                       ` [PATCH v19 2/2] status: show comparison with push remote tracking branch Junio C Hamano
2026-01-10 11:06                                         ` [PATCH v17 1/2] refactor format_branch_comparison in preparation Harald Nordgren
2026-01-10 14:44                                           ` Harald Nordgren
2026-01-10 17:31                                           ` Junio C Hamano
2026-01-10 20:04                                             ` Harald Nordgren
2026-01-11  3:39                                               ` Junio C Hamano
2026-01-10 13:30                                     ` [PATCH v20 0/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-10 13:30                                       ` [PATCH v20 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-10 13:30                                       ` [PATCH v20 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-10 15:24                                       ` [PATCH v21 0/2] " Harald Nordgren via GitGitGadget
2026-01-10 15:24                                         ` [PATCH v21 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-10 15:24                                         ` [PATCH v21 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-10 19:56                                         ` [PATCH v22 0/2] " Harald Nordgren via GitGitGadget
2026-01-10 19:56                                           ` [PATCH v22 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-10 19:56                                           ` [PATCH v22 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-12 20:26                                           ` [PATCH v23 0/2] " Harald Nordgren via GitGitGadget
2026-01-12 20:26                                             ` [PATCH v23 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-12 20:26                                             ` [PATCH v23 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-12 20:46                                               ` Junio C Hamano
2026-01-13  9:54                                                 ` [PATCH v17 1/2] refactor format_branch_comparison in preparation Harald Nordgren
2026-01-13  9:55                                             ` [PATCH v24 0/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-13  9:55                                               ` [PATCH v24 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-13  9:55                                               ` [PATCH v24 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-13 12:11                                               ` [PATCH v25 0/2] " Harald Nordgren via GitGitGadget
2026-01-13 12:11                                                 ` [PATCH v25 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-13 12:11                                                 ` [PATCH v25 2/2] status: show comparison with push remote tracking branch Harald Nordgren via GitGitGadget
2026-01-13 17:03                                                   ` Jeff King
2026-01-13 18:35                                                     ` Triangular workflow Harald Nordgren
2026-01-13 21:40                                                       ` Jeff King
2026-01-13 23:01                                                         ` Harald Nordgren
2026-01-14  2:22                                                           ` D. Ben Knoble
2026-01-14  7:59                                                             ` Harald Nordgren
2026-01-14 21:38                                                               ` Ben Knoble
2026-01-14  2:34                                                           ` Jeff King
2026-01-14  7:53                                                             ` Harald Nordgren
2026-01-14 16:24                                                               ` Jeff King
2026-01-14 17:48                                                                 ` Harald Nordgren
2026-01-14 21:01                                                                   ` Jeff King
2026-01-14 21:38                                                                 ` Ben Knoble
2026-01-14 22:17                                                                   ` Jeff King
2026-01-15 16:17                                                                     ` D. Ben Knoble
2026-01-14 14:15                                                             ` Junio C Hamano
2026-01-14 18:54                                                         ` Junio C Hamano
2026-01-14 21:10                                                           ` Jeff King
2026-01-14 21:38                                                             ` Ben Knoble
2026-01-14 23:08                                                               ` Harald Nordgren
2026-01-19  5:58                                                               ` Chris Torek
2026-01-20  8:35                                                                 ` Harald Nordgren
2026-01-14 23:12                                                           ` Harald Nordgren
2026-01-14 23:31                                                             ` Junio C Hamano
2026-01-18 19:58                                                           ` Harald Nordgren
2026-01-15 10:31                                                     ` [PATCH v25 2/2] status: show comparison with push remote tracking branch Phillip Wood
2026-01-15 13:38                                                       ` Junio C Hamano
2026-01-15 19:53                                                       ` Jeff King
2026-01-18 19:59                                                 ` Harald Nordgren via GitGitGadget [this message]
2026-01-18 19:59                                                   ` [PATCH v26 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-18 19:59                                                   ` [PATCH v26 2/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren via GitGitGadget
2026-01-19  5:14                                                     ` Jeff King
2026-01-20  9:49                                                       ` Memory leak Harald Nordgren
2026-01-20 13:22                                                         ` Harald Nordgren
2026-01-20 21:42                                                           ` Junio C Hamano
2026-01-21 18:47                                                             ` Junio C Hamano
2026-01-21 20:49                                                               ` Jeff King
2026-01-22 15:03                                                               ` Harald Nordgren
2026-01-22 18:19                                                                 ` Junio C Hamano
2026-01-22 15:37                                                   ` [PATCH v27 0/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren via GitGitGadget
2026-01-22 15:37                                                     ` [PATCH v27 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-22 15:37                                                     ` [PATCH v27 2/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren via GitGitGadget
2026-01-22 19:07                                                       ` Jeff King
2026-01-22 19:22                                                         ` [PATCH v27 0/2] " Harald Nordgren
2026-01-22 20:18                                                           ` Junio C Hamano
2026-01-22 20:37                                                       ` [PATCH v27 2/2] " Junio C Hamano
2026-01-22 20:56                                                         ` Harald Nordgren
2026-01-22 21:11                                                           ` Junio C Hamano
2026-01-22 21:36                                                             ` Junio C Hamano
2026-01-22 22:01                                                         ` Jeff King
2026-01-22 22:44                                                           ` Jeff King
2026-01-22 23:06                                                             ` Jeff King
2026-01-24  8:50                                                               ` Harald Nordgren
2026-01-25 17:29                                                                 ` Junio C Hamano
2026-02-08 13:33                                                               ` Harald Nordgren
2026-01-22 23:14                                                             ` Junio C Hamano
2026-01-22 18:53                                                     ` [PATCH v27 0/2] " Junio C Hamano
2026-01-22 19:09                                                       ` Harald Nordgren
2026-01-22 19:20                                                         ` Junio C Hamano
2026-01-22 19:24                                                           ` Harald Nordgren
2026-01-22 20:07                                                     ` [PATCH v28 " Harald Nordgren via GitGitGadget
2026-01-22 20:07                                                       ` [PATCH v28 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-01-22 20:07                                                       ` [PATCH v28 2/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren via GitGitGadget
2026-02-21  8:02                                                         ` Harald Nordgren
2026-02-21 17:17                                                           ` Junio C Hamano
2026-02-22 14:50                                                             ` D. Ben Knoble
2026-02-23 13:30                                                             ` Jeff King
2026-02-24 19:36                                                               ` Harald Nordgren
2026-02-24 22:21                                                               ` Junio C Hamano
2026-02-25 10:22                                                                 ` Harald Nordgren
2026-02-25 15:44                                                                   ` Junio C Hamano
2026-02-25 16:08                                                                     ` Jeff King
2026-02-25 16:52                                                                       ` Junio C Hamano
2026-02-26 13:50                                                                       ` Harald Nordgren
2026-02-25 17:04                                                                   ` D. Ben Knoble
2026-02-25 21:51                                                       ` [PATCH v29 0/2] " Harald Nordgren via GitGitGadget
2026-02-25 21:51                                                         ` [PATCH v29 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-02-25 21:51                                                         ` [PATCH v29 2/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren via GitGitGadget
2026-02-25 23:18                                                           ` Junio C Hamano
2026-02-26 13:47                                                             ` Harald Nordgren
2026-02-26 10:33                                                         ` [PATCH v30 0/2] " Harald Nordgren via GitGitGadget
2026-02-26 10:33                                                           ` [PATCH v30 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-02-26 10:33                                                           ` [PATCH v30 2/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren via GitGitGadget
2026-03-02 23:52                                                             ` Junio C Hamano
2026-03-04 10:30                                                               ` [PATCH v30 0/2] " Harald Nordgren
2026-02-26 15:28                                                           ` Junio C Hamano
2026-03-01 19:06                                                             ` Harald Nordgren
2026-03-01 19:25                                                               ` Kristoffer Haugsbakk
2026-03-02 16:52                                                               ` Junio C Hamano
2026-03-04 12:25                                                           ` [PATCH v31 " Harald Nordgren via GitGitGadget
2026-03-04 12:25                                                             ` [PATCH v31 1/2] refactor format_branch_comparison in preparation Harald Nordgren via GitGitGadget
2026-03-04 12:25                                                             ` [PATCH v31 2/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren via GitGitGadget
2026-03-04 17:05                                                             ` [PATCH v31 0/2] " Junio C Hamano
2026-03-09  9:20                                                               ` Harald Nordgren
2026-03-09 15:10                                                                 ` Junio C Hamano
2026-01-10 17:41                                       ` [PATCH v20 0/2] status: show comparison with push remote tracking branch Junio C Hamano
2026-01-10 19:06                                         ` Harald Nordgren
2026-01-12  7:33                                           ` Kristoffer Haugsbakk
2025-12-23 23:11 ` [PATCH] status: show default branch comparison when tracking non-default branch Yee Cheng Chin
2025-12-23 23:59   ` Harald Nordgren
2025-12-24  0:55     ` Yee Cheng Chin
2025-12-24  0:38   ` Junio C Hamano
2025-12-24  0:49     ` Yee Cheng Chin
2025-12-24  1:44       ` Junio C Hamano
2025-12-24 10:24         ` Harald Nordgren
2026-01-01 20:05       ` Another look? Harald Nordgren
2025-12-24  1:12     ` [PATCH] status: show default branch comparison when tracking non-default branch Harald Nordgren

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.2138.v26.git.git.1768766353.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=haraldnordgren@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