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>,
	Harald Nordgren <haraldnordgren@gmail•com>
Subject: [PATCH v10 3/3] use pushRemote and tracking branch
Date: Tue, 30 Dec 2025 16:08:08 +0000	[thread overview]
Message-ID: <13c2a03b0a25054cdaae030a52b1afddebce56a9.1767110888.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2138.v10.git.git.1767110888.gitgitgadget@gmail.com>

From: Harald Nordgren <haraldnordgren@gmail•com>

Use them for comparisons instead of config variable.

Signed-off-by: Harald Nordgren <haraldnordgren@gmail•com>
---
 remote.c                 |  71 +++++-----
 t/t6040-tracking-info.sh | 296 ++++++++-------------------------------
 2 files changed, 96 insertions(+), 271 deletions(-)

diff --git a/remote.c b/remote.c
index 7e13c027b5..2317725f7d 100644
--- a/remote.c
+++ b/remote.c
@@ -2237,31 +2237,22 @@ 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_goal_branch_ref(char **full_ref_out)
+static char *get_remote_push_branch(struct branch *branch, char **full_ref_out)
 {
-	const char *config_value;
+	const char *push_remote;
 	const char *resolved;
 	int flag;
 	struct strbuf ref_buf = STRBUF_INIT;
-	char *slash_pos;
 	char *ret = NULL;
 
-	if (repo_config_get_value(the_repository, "status.goalBranch", &config_value))
-		return NULL;
-
-	if (!config_value || !*config_value)
+	if (!branch)
 		return NULL;
 
-	slash_pos = strchr(config_value, '/');
-	if (!slash_pos || slash_pos == config_value || !slash_pos[1]) {
-		warning(_("invalid value for status.goalBranch: '%s' (expected format: remote/branch)"),
-			config_value);
+	push_remote = pushremote_for_branch(branch, NULL);
+	if (!push_remote)
 		return NULL;
-	}
 
-	strbuf_addf(&ref_buf, "refs/remotes/%.*s/%s",
-		    (int)(slash_pos - config_value), config_value,
-		    slash_pos + 1);
+	strbuf_addf(&ref_buf, "refs/remotes/%s/%s", push_remote, branch->name);
 
 	resolved = refs_resolve_ref_unsafe(
 		get_main_ref_store(the_repository),
@@ -2280,38 +2271,44 @@ static char *get_goal_branch_ref(char **full_ref_out)
 	return ret;
 }
 
-static void format_goal_branch_comparison(struct strbuf *sb,
+static void format_push_branch_comparison(struct strbuf *sb,
 					     const char *branch_refname,
-					     const char *goal_full,
-					     const char *goal_short,
+					     const char *push_full,
+					     const char *push_short,
 					     enum ahead_behind_flags abf)
 {
-	int goal_ahead = 0, goal_behind = 0;
+	int push_ahead = 0, push_behind = 0;
+	int stat_result;
 
-	if (stat_branch_pair(branch_refname, goal_full,
-			     &goal_ahead, &goal_behind, abf) <= 0)
+	stat_result = stat_branch_pair(branch_refname, push_full,
+				       &push_ahead, &push_behind, abf);
+	if (stat_result < 0)
 		return;
 
 	strbuf_addstr(sb, "\n");
 
-	if (goal_ahead > 0 && goal_behind == 0) {
+	if (stat_result == 0 || (push_ahead == 0 && push_behind == 0)) {
+		strbuf_addf(sb,
+			_("Your branch is up to date with '%s'.\n"),
+			push_short);
+	} else if (push_ahead > 0 && push_behind == 0) {
 		strbuf_addf(sb,
 			Q_("Ahead of '%s' by %d commit.\n",
 			   "Ahead of '%s' by %d commits.\n",
-			   goal_ahead),
-			goal_short, goal_ahead);
-	} else if (goal_behind > 0 && goal_ahead == 0) {
+			   push_ahead),
+			push_short, push_ahead);
+	} else if (push_behind > 0 && push_ahead == 0) {
 		strbuf_addf(sb,
 			Q_("Behind '%s' by %d commit.\n",
 			   "Behind '%s' by %d commits.\n",
-			   goal_behind),
-			goal_short, goal_behind);
-	} else if (goal_ahead > 0 && goal_behind > 0) {
+			   push_behind),
+			push_short, push_behind);
+	} else if (push_ahead > 0 && push_behind > 0) {
 		strbuf_addf(sb,
 			Q_("Diverged from '%s' by %d commit.\n",
 			   "Diverged from '%s' by %d commits.\n",
-			   goal_ahead + goal_behind),
-			goal_short, goal_ahead + goal_behind);
+			   push_ahead + push_behind),
+			push_short, push_ahead + push_behind);
 	}
 }
 
@@ -2392,15 +2389,15 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb,
 	}
 
 	if (!upstream_is_gone && sti >= 0 && abf != AHEAD_BEHIND_QUICK) {
-		char *goal_full = NULL;
-		char *goal_short = get_goal_branch_ref(&goal_full);
+		char *push_full = NULL;
+		char *push_short = get_remote_push_branch(branch, &push_full);
 
-		if (goal_short && strcmp(base, goal_short))
-			format_goal_branch_comparison(sb, branch->refname, goal_full,
-						     goal_short, abf);
+		if (push_short && strcmp(base, push_short))
+			format_push_branch_comparison(sb, branch->refname, push_full,
+						     push_short, abf);
 
-		free(goal_short);
-		free(goal_full);
+		free(push_short);
+		free(push_full);
 	}
 
 	free(base);
diff --git a/t/t6040-tracking-info.sh b/t/t6040-tracking-info.sh
index a875b4c73b..f27ae719ad 100755
--- a/t/t6040-tracking-info.sh
+++ b/t/t6040-tracking-info.sh
@@ -21,7 +21,6 @@ test_expect_success setup '
 	git clone . test &&
 	(
 		cd test &&
-		git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main &&
 		git checkout -b b1 origin &&
 		git reset --hard HEAD^ &&
 		advance d &&
@@ -293,340 +292,169 @@ test_expect_success '--set-upstream-to @{-1}' '
 	test_cmp expect actual
 '
 
-test_expect_success 'setup for ahead of non-main tracking branch' '
-	(
-		cd test &&
-		git checkout -b feature origin/main &&
-		advance feature1 &&
-		git push origin feature &&
-		git checkout -b work --track origin/feature &&
-		advance work1 &&
-		advance work2
-	)
-'
-
-test_expect_success 'status shows ahead of both tracked branch and origin/main' '
+test_expect_success 'status tracking origin/main shows only main' '
 	(
 		cd test &&
-		git checkout work &&
-		git config status.goalBranch origin/main &&
+		git checkout b4 &&
 		git status >../actual
 	) &&
 	cat >expect <<-EOF &&
-	On branch work
-	Your branch is ahead of ${SQ}origin/feature${SQ} by 2 commits.
+	On branch b4
+	Your branch is ahead of ${SQ}origin/main${SQ} by 2 commits.
 	  (use "git push" to publish your local commits)
 
-	Ahead of ${SQ}origin/main${SQ} by 3 commits.
-
 	nothing to commit, working tree clean
 	EOF
 	test_cmp expect actual
 '
 
-test_expect_success 'checkout shows ahead of both tracked branch and origin/main' '
-	(
-		cd test &&
-		git checkout main &&
-		git config status.goalBranch origin/main &&
-		git checkout work >../actual
-	) &&
-	cat >expect <<-EOF &&
-	Your branch is ahead of ${SQ}origin/feature${SQ} by 2 commits.
-	  (use "git push" to publish your local commits)
-
-	Ahead of ${SQ}origin/main${SQ} by 3 commits.
-	EOF
-	test_cmp expect actual
-'
-
-test_expect_success 'status tracking origin/main shows only main' '
-	(
-		cd test &&
-		git checkout b4 &&
-		git status >../actual
-	) &&
-	test_grep "ahead of .origin/main. by 2 commits" actual &&
-	test_grep ! "Ahead of" actual
-'
-
-test_expect_success 'setup for ahead of tracked but diverged from main' '
-	(
-		cd test &&
-		git checkout origin/main &&
-		git checkout -b oldfeature &&
-		advance oldfeature1 &&
-		git push origin oldfeature &&
-		git checkout origin/main &&
-		advance main_newer &&
-		git push origin HEAD:main &&
-		git checkout -b work2 --track origin/oldfeature &&
-		advance work2_commit
-	)
-'
-
-test_expect_success 'status shows ahead of tracked and diverged from origin/main' '
+test_expect_success 'status shows ahead of both origin/main and feature branch' '
 	(
 		cd test &&
-		git checkout work2 &&
-		git config status.goalBranch origin/main &&
+		git checkout -b feature2 origin/main &&
+		git push origin HEAD &&
+		advance work &&
 		git status >../actual
 	) &&
 	cat >expect <<-EOF &&
-	On branch work2
-	Your branch is ahead of ${SQ}origin/oldfeature${SQ} by 1 commit.
+	On branch feature2
+	Your branch is ahead of ${SQ}origin/main${SQ} by 1 commit.
 	  (use "git push" to publish your local commits)
 
-	Diverged from ${SQ}origin/main${SQ} by 3 commits.
+	Ahead of ${SQ}origin/feature2${SQ} by 1 commit.
 
 	nothing to commit, working tree clean
 	EOF
 	test_cmp expect actual
 '
 
-test_expect_success 'setup for diverged from tracked but behind main' '
+test_expect_success 'checkout shows ahead of both origin/main and feature branch' '
 	(
 		cd test &&
-		git fetch origin &&
-		git checkout origin/main &&
-		git checkout -b work2b &&
-		git branch --set-upstream-to=origin/oldfeature &&
-		git checkout origin/main &&
-		advance main_extra &&
-		git push origin HEAD:main
-	)
-'
-
-test_expect_success 'status shows diverged from tracked and behind origin/main' '
-	(
-		cd test &&
-		git checkout work2b &&
-		git config status.goalBranch origin/main &&
-		git status >../actual
+		git checkout feature2 >../actual
 	) &&
 	cat >expect <<-EOF &&
-	On branch work2b
-	Your branch and ${SQ}origin/oldfeature${SQ} have diverged,
-	and have 1 and 1 different commits each, respectively.
-	  (use "git pull" if you want to integrate the remote branch with yours)
-
-	Behind ${SQ}origin/main${SQ} by 1 commit.
+	Your branch is ahead of ${SQ}origin/main${SQ} by 1 commit.
+	  (use "git push" to publish your local commits)
 
-	nothing to commit, working tree clean
+	Ahead of ${SQ}origin/feature2${SQ} by 1 commit.
 	EOF
 	test_cmp expect actual
 '
 
-test_expect_success 'setup for behind tracked but ahead of main' '
+test_expect_success 'setup for ahead of tracked but diverged from main' '
 	(
 		cd test &&
-		git fetch origin &&
+		git checkout -b feature4 origin/main &&
+		advance work1 &&
 		git checkout origin/main &&
-		git checkout -b feature3 &&
-		advance feature3_1 &&
-		advance feature3_2 &&
-		advance feature3_3 &&
-		git push origin feature3 &&
-		git checkout -b work3 --track origin/feature3 &&
-		git reset --hard HEAD~2
+		advance work2 &&
+		git push origin HEAD:main &&
+		git checkout feature4 &&
+		advance work3
 	)
 '
 
-test_expect_success 'status shows behind tracked and ahead of origin/main' '
+test_expect_success 'status shows diverged from origin/main and ahead of feature branch' '
 	(
 		cd test &&
-		git checkout work3 &&
-		git config status.goalBranch origin/main &&
+		git checkout feature4 &&
+		git branch --set-upstream-to origin/main &&
+		git push origin HEAD &&
+		advance work &&
 		git status >../actual
 	) &&
 	cat >expect <<-EOF &&
-	On branch work3
-	Your branch is behind ${SQ}origin/feature3${SQ} by 2 commits, and can be fast-forwarded.
-	  (use "git pull" to update your local branch)
+	On branch feature4
+	Your branch and ${SQ}origin/main${SQ} have diverged,
+	and have 3 and 1 different commits each, respectively.
+	  (use "git pull" if you want to integrate the remote branch with yours)
 
-	Ahead of ${SQ}origin/main${SQ} by 1 commit.
+	Ahead of ${SQ}origin/feature4${SQ} by 1 commit.
 
 	nothing to commit, working tree clean
 	EOF
 	test_cmp expect actual
 '
 
-test_expect_success 'setup upstream remote preference' '
+test_expect_success 'setup upstream remote' '
 	(
 		cd test &&
 		git remote add upstream ../. &&
 		git fetch upstream &&
-		git symbolic-ref refs/remotes/upstream/HEAD refs/remotes/upstream/main
+		git config remote.pushDefault origin
 	)
 '
 
-test_expect_success 'status prefers upstream remote over origin for comparison' '
+test_expect_success 'status with upstream remote and push.default set to origin' '
 	(
 		cd test &&
-		git checkout work &&
-		git config status.goalBranch upstream/main &&
+		git checkout -b feature5 upstream/main &&
+		git push origin &&
+		advance work &&
 		git status >../actual
 	) &&
 	cat >expect <<-EOF &&
-	On branch work
-	Your branch is ahead of ${SQ}origin/feature${SQ} by 2 commits.
+	On branch feature5
+	Your branch is ahead of ${SQ}upstream/main${SQ} by 1 commit.
 	  (use "git push" to publish your local commits)
 
-	Diverged from ${SQ}upstream/main${SQ} by 5 commits.
+	Ahead of ${SQ}origin/feature5${SQ} by 1 commit.
 
 	nothing to commit, working tree clean
 	EOF
 	test_cmp expect actual
 '
 
-test_expect_success 'setup for up to date with tracked but ahead of default' '
+test_expect_success 'status with upstream remote and push.default set to origin and diverged' '
 	(
 		cd test &&
-		git checkout origin/feature &&
-		git checkout -b synced_feature --track origin/feature &&
-		git checkout origin/main &&
-		advance main_ahead &&
-		git push origin HEAD:main
-	)
-'
-
-test_expect_success 'status shows up to date with tracked but diverged from default' '
-	(
-		cd test &&
-		git checkout synced_feature &&
-		git config status.goalBranch upstream/main &&
+		git checkout -b feature6 upstream/main &&
+		advance work &&
+		git push origin &&
+		git reset --hard upstream/main &&
+		advance work &&
 		git status >../actual
 	) &&
 	cat >expect <<-EOF &&
-	On branch synced_feature
-	Your branch is up to date with ${SQ}origin/feature${SQ}.
-
-	Diverged from ${SQ}upstream/main${SQ} by 3 commits.
-
-	nothing to commit, working tree clean
-	EOF
-	test_cmp expect actual
-'
-
-test_expect_success 'setup for up to date with tracked but ahead of origin/main' '
-	(
-		cd test &&
-		git remote remove upstream &&
-		git checkout origin/feature &&
-		git checkout -b synced_feature2 --track origin/feature &&
-		git checkout origin/main &&
-		advance main_ahead2 &&
-		git push origin HEAD:main
-	)
-'
-
-test_expect_success 'status shows up to date with tracked but diverged from origin/main' '
-	(
-		cd test &&
-		git checkout synced_feature2 &&
-		git config status.goalBranch origin/main &&
-		git status >../actual
-	) &&
-	cat >expect <<-EOF &&
-	On branch synced_feature2
-	Your branch is up to date with ${SQ}origin/feature${SQ}.
-
-	Diverged from ${SQ}origin/main${SQ} by 5 commits.
-
-	nothing to commit, working tree clean
-	EOF
-	test_cmp expect actual
-'
-
-test_expect_success 'setup for up to date with tracked but purely ahead of origin/main' '
-	(
-		cd test &&
-		git checkout origin/feature &&
-		git checkout -b synced_feature3 --track origin/feature
-	)
-'
-
-test_expect_success 'status shows up to date with tracked but shows default branch comparison' '
-	(
-		cd test &&
-		git checkout synced_feature3 &&
-		git config status.goalBranch origin/main &&
-		git status >../actual
-	) &&
-	cat >expect <<-EOF &&
-	On branch synced_feature3
-	Your branch is up to date with ${SQ}origin/feature${SQ}.
-
-	Diverged from ${SQ}origin/main${SQ} by 5 commits.
-
-	nothing to commit, working tree clean
-	EOF
-	test_cmp expect actual
-'
+	On branch feature6
+	Your branch is ahead of ${SQ}upstream/main${SQ} by 1 commit.
+	  (use "git push" to publish your local commits)
 
-test_expect_success 'status with status.goalBranch unset shows no default comparison' '
-	(
-		cd test &&
-		git checkout synced_feature3 &&
-		git config --unset status.goalBranch || true &&
-		git status >../actual
-	) &&
-	cat >expect <<-EOF &&
-	On branch synced_feature3
-	Your branch is up to date with ${SQ}origin/feature${SQ}.
+	Diverged from ${SQ}origin/feature6${SQ} by 2 commits.
 
 	nothing to commit, working tree clean
 	EOF
 	test_cmp expect actual
 '
 
-test_expect_success 'status with status.goalBranch set uses configured branch' '
+test_expect_success 'status with upstream remote and push branch up to date' '
 	(
 		cd test &&
-		git checkout synced_feature3 &&
-		git config status.goalBranch origin/main &&
+		git checkout -b feature7 upstream/main &&
+		git push origin &&
 		git status >../actual
 	) &&
 	cat >expect <<-EOF &&
-	On branch synced_feature3
-	Your branch is up to date with ${SQ}origin/feature${SQ}.
+	On branch feature7
+	Your branch is up to date with ${SQ}upstream/main${SQ}.
 
-	Diverged from ${SQ}origin/main${SQ} by 5 commits.
+	Your branch is up to date with ${SQ}origin/feature7${SQ}.
 
 	nothing to commit, working tree clean
 	EOF
 	test_cmp expect actual
 '
 
-test_expect_success 'status with status.goalBranch set to different remote/branch' '
+test_expect_success 'checkout shows push branch up to date' '
 	(
 		cd test &&
-		git checkout work &&
-		git config status.goalBranch origin/feature &&
-		git status >../actual
-	) &&
-	cat >expect <<-EOF &&
-	On branch work
-	Your branch is ahead of ${SQ}origin/feature${SQ} by 2 commits.
-	  (use "git push" to publish your local commits)
-
-	nothing to commit, working tree clean
-	EOF
-	test_cmp expect actual
-'
-
-test_expect_success 'status with status.goalBranch set to non-existent branch' '
-	(
-		cd test &&
-		git checkout synced_feature3 &&
-		git config status.goalBranch origin/nonexistent &&
-		git status >../actual
+		git checkout feature7 >../actual
 	) &&
 	cat >expect <<-EOF &&
-	On branch synced_feature3
-	Your branch is up to date with ${SQ}origin/feature${SQ}.
+	Your branch is up to date with ${SQ}upstream/main${SQ}.
 
-	nothing to commit, working tree clean
+	Your branch is up to date with ${SQ}origin/feature7${SQ}.
 	EOF
 	test_cmp expect actual
 '
-- 
gitgitgadget

  parent reply	other threads:[~2025-12-30 16:08 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                   ` Harald Nordgren via GitGitGadget [this message]
2026-01-01 23:09                   ` [PATCH v10 0/3] status: show additional comparison with push branch when different from tracking branch 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                                                 ` [PATCH v26 0/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren via GitGitGadget
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=13c2a03b0a25054cdaae030a52b1afddebce56a9.1767110888.git.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail$(echo .)com \
    --cc=git@vger$(echo .)kernel.org \
    --cc=haraldnordgren@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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