Add Signed-off-by...
threads / discuss / 31923
[PATCHv2] git-pull: Avoid merge-base on detached head
Subject: [PATCHv2] git-pull: Avoid merge-base on detached head
git pull --rebase does some clever tricks to find the base for $upstream , but it forgets that we may not have any branch at all. When this happens, git merge-base reports its "usage" help in the middle of an otherwise successful rebase operation, because git-merge is called with one too few parameters.
Since we do not need the merge-base trick in the case of a detached HEAD, detect this condition and bypass the clever trick and the usage noise.
Signed-off-by: Phil Hord <hordp@cisco.com> --- git-pull.sh | 1 + 1 file changed, 1 insertion(+)
diff --git a/git-pull.sh b/git-pull.sh index 2a10047..266e682 100755 --- a/git-pull.sh +++ b/git-pull.sh @@ -200,6 +200,7 @@ test true = "$rebase" && { require_clean_work_tree "pull with rebase" "Please commit or stash them." fi oldremoteref= && + test -n "$curr_branch" && . git-parse-remote && remoteref="$(get_remote_merge_branch "$@" 2>/dev/null)" && oldremoteref="$(git rev-parse -q --verify "$remoteref")" &&
-- 1.8.0.2.gc921d59.dirty
Re: [PATCHv2] git-pull: Avoid merge-base on detached head
On Tue, Oct 23, 2012 at 04:39:56PM -0400, Phil Hord wrote:
Show 10 quoted lines
> git pull --rebase does some clever tricks to find the base > for $upstream , but it forgets that we may not have any > branch at all. When this happens, git merge-base reports its > "usage" help in the middle of an otherwise successful > rebase operation, because git-merge is called with one too > few parameters. > > Since we do not need the merge-base trick in the case of a > detached HEAD, detect this condition and bypass the clever > trick and the usage noise.
Makes sense. I notice there is no test with your patch. It sounds from the description like the operation still may succeed, but we just get cruft on stderr?
-Peff
Re: [PATCHv2] git-pull: Avoid merge-base on detached head
Jeff King wrote:
Show 16 quoted lines
> On Tue, Oct 23, 2012 at 04:39:56PM -0400, Phil Hord wrote: > >> git pull --rebase does some clever tricks to find the base >> for $upstream , but it forgets that we may not have any >> branch at all. When this happens, git merge-base reports its >> "usage" help in the middle of an otherwise successful >> rebase operation, because git-merge is called with one too >> few parameters. >> >> Since we do not need the merge-base trick in the case of a >> detached HEAD, detect this condition and bypass the clever >> trick and the usage noise. > Makes sense. I notice there is no test with your patch. It sounds from > the description like the operation still may succeed, but we just get > cruft on stderr? >
Yes, that's correct.
P
Re: [PATCHv2] git-pull: Avoid merge-base on detached head
On Thu, Oct 25, 2012 at 02:50:37PM -0400, Phil Hord wrote:
Show 16 quoted lines
> >> git pull --rebase does some clever tricks to find the base > >> for $upstream , but it forgets that we may not have any > >> branch at all. When this happens, git merge-base reports its > >> "usage" help in the middle of an otherwise successful > >> rebase operation, because git-merge is called with one too > >> few parameters. > >> > >> Since we do not need the merge-base trick in the case of a > >> detached HEAD, detect this condition and bypass the clever > >> trick and the usage noise. > > Makes sense. I notice there is no test with your patch. It sounds from > > the description like the operation still may succeed, but we just get > > cruft on stderr? > > > > Yes, that's correct.
OK. I'd rather not worry about a test then, as it would necessarily be flaky with respect to what git-pull might generate on its stderr. I've queued your patch in 'next'.
Thanks.
-Peff