Merge branch 'ds/rev-parse-required-args' into maint
[gitweb.git] / git-pull.sh
index b946fd975bacae7b73645e0dba8ae61da716ccfc..0a5aa2c82187c3caa4b2a0716369314fc8c80c55 100755 (executable)
@@ -172,7 +172,7 @@ error_on_no_merge_candidates () {
        do
                case "$opt" in
                -t|--t|--ta|--tag|--tags)
-                       echo "Fetching tags only, you probably meant:"
+                       echo "It doesn't make sense to pull all tags; you probably meant:"
                        echo "  git fetch --tags"
                        exit 1
                esac
@@ -229,15 +229,7 @@ test true = "$rebase" && {
        test -n "$curr_branch" &&
        . git-parse-remote &&
        remoteref="$(get_remote_merge_branch "$@" 2>/dev/null)" &&
-       oldremoteref="$(git rev-parse -q --verify "$remoteref")" &&
-       for reflog in $(git rev-list -g $remoteref 2>/dev/null)
-       do
-               if test "$reflog" = "$(git merge-base $reflog $curr_branch)"
-               then
-                       oldremoteref="$reflog"
-                       break
-               fi
-       done
+       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