remote: qualify "git pull" advice for non-upstream branches#2301
remote: qualify "git pull" advice for non-upstream branches#2301HaraldNordgren wants to merge 1 commit into
Conversation
910fdde to
0a06883
Compare
|
/submit |
|
Submitted as pull.2301.git.git.1778623888178.gitgitgadget@gmail.com To fetch this version into To fetch this version to local tag |
|
This patch series was integrated into seen via 285e94e. |
e5e312d to
1f06873
Compare
|
/submit |
|
Submitted as pull.2301.v2.git.git.1778665812261.gitgitgadget@gmail.com To fetch this version into To fetch this version to local tag |
|
This branch is now known as |
|
This patch series was integrated into seen via d66a25f. |
|
This patch series was integrated into seen via 53bf69b. |
|
This patch series was integrated into seen via 577f599. |
|
There was a status update in the "New Topics" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Comments? source: <pull.2301.v2.git.git.1778665812261.gitgitgadget@gmail.com> |
|
This patch series was integrated into seen via 4887a94. |
|
This patch series was integrated into seen via 4b48622. |
|
Junio C Hamano wrote on the Git mailing list (how to reply to this email): "Harald Nordgren via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: Harald Nordgren <haraldnordgren@gmail.com>
>
> When "git status" reports the local branch is behind the push
> branch, the advice suggested a bare "git pull". That follows the
> upstream, which may live on a different remote, so emit
> "git pull <remote> <branch>" instead.
Hmph, shouldn't this be done conditionally, though? Most new users
follow the recommended pattern to set branch.<name>.merge so that
"git pull" would do the right thing for them, I presume, even when
they are using triangular workflow to push to a different remote
than the remote they pull from, so the new and more verbose message
would not help the users any more than the existing message, right?
Can the code tell the situation where the extra part of the message
would help and give it only then? |
d9e3519 to
3703be9
Compare
|
This patch series was integrated into seen via 66404e5. |
|
There was a status update in the "Cooking" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Comments? source: <pull.2301.v2.git.git.1778665812261.gitgitgadget@gmail.com> |
|
This patch series was integrated into seen via e799159. |
|
Harald Nordgren wrote on the Git mailing list (how to reply to this email): > Hmph, shouldn't this be done conditionally, though? Most new users
> follow the recommended pattern to set branch.<name>.merge so that
> "git pull" would do the right thing for them, I presume, even when
> they are using triangular workflow to push to a different remote
> than the remote they pull from, so the new and more verbose message
> would not help the users any more than the existing message, right?
>
> Can the code tell the situation where the extra part of the message
> would help and give it only then?
Yes, that's a good idea.
Harald |
|
/submit |
|
Submitted as pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com To fetch this version into To fetch this version to local tag |
|
This patch series was integrated into seen via 8961089. |
|
There was a status update in the "Cooking" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Comments? source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com> |
|
This patch series was integrated into seen via 7c5026e. |
|
This patch series was integrated into seen via 134dd16. |
|
This patch series was integrated into seen via c7f6469. |
|
This patch series was integrated into seen via 8a4a02a. |
|
There was a status update in the "Cooking" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Comments? source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com> |
|
This patch series was integrated into seen via c1693bf. |
|
There was a status update in the "Cooking" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Comments? source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com> |
|
This patch series was integrated into seen via f9f5309. |
|
This patch series was integrated into seen via c7be48c. |
|
This patch series was integrated into seen via 629fe44. |
|
This patch series was integrated into seen via 7842d56. |
|
This patch series was integrated into seen via 1291dbe. |
|
There was a status update in the "Cooking" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Comments? source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com> |
|
This patch series was integrated into seen via cbbe75f. |
|
This patch series was integrated into seen via d42fc68. |
|
There was a status update in the "Cooking" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Comments? source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com> |
|
There was a status update in the "Cooking" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Comments? source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com> |
Enable ENABLE_ADVICE_PULL for push-branch comparisons too, not just the upstream entry, so the "use git pull" hint prints when the local branch is behind its push branch. Spell out "git pull <remote> <branch>" so running the suggested command actually pulls the ref the user was told about; plain "git pull" would fetch the upstream instead. Do not suggest "git pull" when we have no good command to suggest. Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>
|
Junio C Hamano wrote on the Git mailing list (how to reply to this email): "Harald Nordgren via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: Harald Nordgren <haraldnordgren@gmail.com>
>
> Enable ENABLE_ADVICE_PULL for push-branch comparisons too, not just
> the upstream entry, so the "use git pull" hint prints when the local
> branch is behind its push branch.
>
> Spell out "git pull <remote> <branch>" so running the suggested
> command actually pulls the ref the user was told about; plain
> "git pull" would fetch the upstream instead.
>
> Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>
> ---
> remote: qualify "git pull" advice for non-upstream branches
>
> * Don't suggest git pull when we have no good command to suggest.
> * New test for this. Asserts the behind line shows with no follow-up
> advice.
Very well written.
What does not happen in the "punt" case (the first bullet point
above) may deserve to be given in the commit log message, but
otherwise it is very clear what the change wanted to do to the
future readers of "git log".
> remote.c | 48 +++++++++++++++----
> t/t6040-tracking-info.sh | 100 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 140 insertions(+), 8 deletions(-)
The code changes look correct, and the new tests checks the new
suggestion as well as the "punt" case, which is good.
Shall we mark it for 'next' now?
Thanks for working on this.
>> diff --git a/t/t6040-tracking-info.sh b/t/t6040-tracking-info.sh
> index 0242b5bf7a..91cbb8775d 100755
> --- a/t/t6040-tracking-info.sh
> +++ b/t/t6040-tracking-info.sh
> @@ -646,4 +646,104 @@ test_expect_success 'status.compareBranches with remapped push and upstream remo
> test_cmp expect actual
> '
>
> +test_expect_success 'status.compareBranches behind both upstream and push' '
> + test_config -C test push.default current &&
> + test_config -C test remote.pushDefault origin &&
> + test_config -C test status.compareBranches "@{upstream} @{push}" &&
> + git -C test checkout -b feature13 upstream/main &&
> + (cd test && advance work13) &&
> + git -C test push origin &&
> + git -C test branch --set-upstream-to upstream/ahead &&
> + git -C test reset --hard HEAD^ &&
> + git -C test status >actual &&
> + cat >expect <<-EOF &&
> + On branch feature13
> + 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 behind ${SQ}origin/feature13${SQ} by 1 commit, and can be fast-forwarded.
> + (use "git pull origin feature13" to update your local branch)
> +
> + nothing to commit, working tree clean
> + EOF
> + test_cmp expect actual
> +'
A good test that clearly shows how @{push} is described ;-)
> +test_expect_success 'status.compareBranches with remapped push and behind push branch' '
> + test_config -C test remote.pushDefault origin &&
> + test_config -C test remote.origin.push refs/heads/feature14:refs/heads/remapped14 &&
> + test_config -C test status.compareBranches "@{push}" &&
> + git -C test checkout -b feature14 upstream/main &&
> + (cd test && advance work14) &&
> + git -C test push &&
> + git -C test reset --hard HEAD^ &&
> + git -C test status >actual &&
> + cat >expect <<-EOF &&
> + On branch feature14
> + Your branch is behind ${SQ}origin/remapped14${SQ} by 1 commit, and can be fast-forwarded.
> + (use "git pull origin remapped14" to update your local branch)
> +
> + nothing to commit, working tree clean
> + EOF
> + test_cmp expect actual
> +'
OK. |
ef54dac to
87d63f0
Compare
|
Harald Nordgren wrote on the Git mailing list (how to reply to this email): > > remote: qualify "git pull" advice for non-upstream branches
> >
> > * Don't suggest git pull when we have no good command to suggest.
> > * New test for this. Asserts the behind line shows with no follow-up
> > advice.
>
> Very well written.
>
> What does not happen in the "punt" case (the first bullet point
> above) may deserve to be given in the commit log message, but
> otherwise it is very clear what the change wanted to do to the
> future readers of "git log".
Thanks. It's a good point, but maybe it's implicit that nothing
happens when nothing can happen?
> Shall we mark it for 'next' now?
>
> Thanks for working on this.
Yes please, thanks for all the help!
Harald |
|
There was a status update in the "Cooking" section about the branch Advice shown by "git status" when the local branch is behind or has diverged from its push branch has been updated to suggest "git pull <remote> <branch>". Will merge to 'next'? cf. <xmqq7bo6xuok.fsf@gitster.g> source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com> |
|
This patch series is no longer integrated into seen. |
|
This patch series was integrated into seen via 1f3cfd2. |
git pullwhen we have no good command to suggest.