pull: suppress error when no remoteref is found
authorJohn Keeping <john@keeping.me.uk>
Fri, 17 Jan 2014 20:00:20 +0000 (20:00 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 17 Jan 2014 20:03:32 +0000 (12:03 -0800)
Commit 48059e4 (pull: use merge-base --fork-point when appropriate,
2013-12-08) incorrectly assumes that get_remote_merge_branch will either
yield a non-empty string or return an error, but there are circumstances
where it will yield an empty string.

The previous code then invoked git-rev-list with no arguments, which
results in an error suppressed by redirecting stderr to /dev/null. Now
we invoke git-merge-base with an empty branch name, which also results
in an error. Suppress this in the same way.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-pull.sh
index 605e9575df6c4cc08ac5fbb6c4eac2c959954e49..11ac50552cd42895c6f777c6161d2f6f22f83b97 100755 (executable)
@@ -229,7 +229,7 @@ test true = "$rebase" && {
        test -n "$curr_branch" &&
        . git-parse-remote &&
        remoteref="$(get_remote_merge_branch "$@" 2>/dev/null)" &&
-       oldremoteref=$(git merge-base --fork-point "$remoteref" $curr_branch)
+       oldremoteref=$(git merge-base --fork-point "$remoteref" $curr_branch 2>/dev/null)
 }
 orig_head=$(git rev-parse -q --verify HEAD)
 git fetch $verbosity $progress $dry_run $recurse_submodules --update-head-ok "$@" || exit 1