]> Pileus Git - ~andy/git/commitdiff
pull: use merge-base --fork-point when appropriate
authorJohn Keeping <john@keeping.me.uk>
Sun, 8 Dec 2013 12:47:25 +0000 (12:47 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Dec 2013 21:05:20 +0000 (13:05 -0800)
Since commit d96855f (merge-base: teach "--fork-point" mode, 2013-10-23)
we can replace a shell loop in git-pull with a single call to
git-merge-base.  So let's do so.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-pull.sh

index b946fd975bacae7b73645e0dba8ae61da716ccfc..605e9575df6c4cc08ac5fbb6c4eac2c959954e49 100755 (executable)
@@ -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)
 }
 orig_head=$(git rev-parse -q --verify HEAD)
 git fetch $verbosity $progress $dry_run $recurse_submodules --update-head-ok "$@" || exit 1