git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] status: compare against both upstream and push branch by default

From
Harald Nordgren <haraldnordgren@gmail.com>
Date
Oct 20, 2026, 10:19 UTC
Message-ID
<CAHwyqnU1NPp3N7Qv3ChEPCo-mL=gASeG334YFg2tczzLomsm6A@mail.gmail.com>
In-Reply-To
<5030377b-58c8-4193-8d72-79955082269f@gmail.com>
Show 6 quoted lines
> If you want to change the default value of a config variable it is
> helpful to explain why the current default was chosen as well as why you
> think the new default is better. In this case wasn't there some
> discussion about the default value when the variable was introduced?
> Providing that context would make it much easier for people to judge if
> this change is a good idea.
That's fair.
Show 123 quoted lines
> > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2458%2FHaraldNordgren%2Fstatus-compare-branches-default-v1
> > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2458/HaraldNordgren/status-compare-branches-default-v1
> > Pull-Request: https://github.com/git/git/pull/2458
> >
> >   Documentation/config/status.adoc | 11 ++++++-----
> >   remote.c                         |  1 +
> >   t/t5505-remote.sh                |  1 -
> >   t/t6040-tracking-info.sh         | 30 +++++++++++++++---------------
> >   4 files changed, 22 insertions(+), 21 deletions(-)
> >
> > diff --git a/Documentation/config/status.adoc b/Documentation/config/status.adoc
> > index b5dd85b761..1d847d3a8a 100644
> > --- a/Documentation/config/status.adoc
> > +++ b/Documentation/config/status.adoc
> > @@ -23,8 +23,9 @@ status.compareBranches::
> >       are supported. They are interpreted as `branch@{upstream}` and
> >       `branch@{push}` for the current branch.
> >   +
> > -If not set, the default behavior is equivalent to `@{upstream}`, which
> > -compares against the configured upstream tracking branch.
> > +If not set, the default behavior is equivalent to `@{upstream} @{push}`,
> > +which compares against both the configured upstream and push tracking
> > +branches.
> >   +
> >   The entries are shown in the order they appear in the configuration.
> >   Duplicate entries that resolve to the same ref are suppressed after
> > @@ -36,11 +37,11 @@ Example:
> >   +
> >   ----
> >   [status]
> > -     compareBranches = @{upstream} @{push}
> > +     compareBranches = @{upstream}
> >   ----
> >   +
> > -This would show comparisons against both the configured upstream and push
> > -tracking branches for the current branch.
> > +This would only show the comparison against the configured upstream
> > +tracking branch for the current branch.
> >
> >   status.displayCommentPrefix::
> >       If set to true, linkgit:git-status[1] will insert a comment
> > diff --git a/remote.c b/remote.c
> > index 71170f36a9..6fdb4b84da 100644
> > --- a/remote.c
> > +++ b/remote.c
> > @@ -2465,6 +2465,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb,
> >               string_list_remove_empty_items(&branches, 0);
> >       } else {
> >               string_list_append(&branches, "@{upstream}");
> > +             string_list_append(&branches, "@{push}");
> >       }
> >
> >       upstream_ref = branch_get_upstream(branch, NULL);
> > diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
> > index 5fbfcb0848..f77753605f 100755
> > --- a/t/t5505-remote.sh
> > +++ b/t/t5505-remote.sh
> > @@ -34,7 +34,6 @@ setup_url_pushremote () {
> >               git checkout -b topic --track origin/main &&
> >               git commit --allow-empty -m topic-change &&
> >               git config push.default current &&
> > -             git config status.compareBranches "@{upstream} @{push}" &&
> >               git config branch.topic.pushRemote "$fork_url" &&
> >               git push
> >       )
> > diff --git a/t/t6040-tracking-info.sh b/t/t6040-tracking-info.sh
> > index e95d420972..e10cde090d 100755
> > --- a/t/t6040-tracking-info.sh
> > +++ b/t/t6040-tracking-info.sh
> > @@ -331,19 +331,6 @@ test_expect_success 'status.compareBranches deduplicates when upstream and push
> >       test_cmp expect actual
> >   '
> >
> > -test_expect_success 'status.compareBranches with only upstream shows only upstream' '
> > -     test_config -C test status.compareBranches "@{upstream}" &&
> > -     git -C test checkout main &&
> > -     git -C test status >actual &&
> > -     cat >expect <<-EOF &&
> > -     On branch main
> > -     Your branch is up to date with ${SQ}origin/main${SQ}.
> > -
> > -     nothing to commit, working tree clean
> > -     EOF
> > -     test_cmp expect actual
> > -'
> > -
> >   test_expect_success 'status.compareBranches with only push shows only push' '
> >       test_config -C test push.default current &&
> >       test_config -C test status.compareBranches "@{push}" &&
> > @@ -361,9 +348,8 @@ test_expect_success 'status.compareBranches with only push shows only push' '
> >       test_cmp expect actual
> >   '
> >
> > -test_expect_success 'status.compareBranches shows ahead of both upstream and push branch' '
> > +test_expect_success 'status shows ahead of both upstream and push branch by default' '
> >       test_config -C test push.default current &&
> > -     test_config -C test status.compareBranches "@{upstream} @{push}" &&
> >       git -C test checkout -b feature3 origin/main &&
> >       git -C test push origin HEAD &&
> >       (cd test && advance work) &&
> > @@ -380,6 +366,20 @@ test_expect_success 'status.compareBranches shows ahead of both upstream and pus
> >       test_cmp expect actual
> >   '
> >
> > +test_expect_success 'status.compareBranches with only upstream shows only upstream' '
> > +     test_config -C test push.default current &&
> > +     test_config -C test status.compareBranches "@{upstream}" &&
> > +     git -C test checkout feature3 &&
> > +     git -C test status >actual &&
> > +     cat >expect <<-EOF &&
> > +     On branch feature3
> > +     Your branch is ahead of ${SQ}origin/main${SQ} by 1 commit.
> > +
> > +     nothing to commit, working tree clean
> > +     EOF
> > +     test_cmp expect actual
> > +'
> > +
> >   test_expect_success 'checkout with status.compareBranches shows both branches' '
> >       test_config -C test push.default current &&
> >       test_config -C test status.compareBranches "@{upstream} @{push}" &&
> >
> > base-commit: c51408889c3b372814bc20b9431c3b74d0d268eb
As a side note:

I see that you include the whole message in replies, leaving responders to clean it, so more work for multiple people instead of more work for a single person. Isn't the convention to only include the parts that you are responding to?

Harald
Previous: Phillip WoodNext: Kristoffer Haugsbakk
Message 5 of 16 in “status: compare against both upstream and push branch by default”
  1. status: compare against both upstream and push branch by defaultHarald Nordgren via GitGitGadget, Oct 19, 2026
  2. Junio C HamanoOct 19, 2026
  3. Harald NordgrenOct 20, 2026
  4. Phillip WoodOct 20, 2026
  5. Harald NordgrenOct 20, 2026
  6. Kristoffer HaugsbakkOct 20, 2026
  7. Phillip WoodOct 20, 2026
  8. status: compare against both upstream and push branch by defaultHarald Nordgren via GitGitGadget, Oct 21, 2026
  9. Junio C HamanoOct 23, 2026
  10. Harald NordgrenOct 23, 2026
  11. Junio C HamanoOct 23, 2026
  12. Harald NordgrenOct 23, 2026
  13. Junio C HamanoOct 23, 2026
  14. D. Ben KnobleOct 24, 2026
  15. Junio C HamanoOct 24, 2026
  16. status: compare against both upstream and push branch by defaultHarald Nordgren via GitGitGadget, Oct 25, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.