# [PATCH] pull: use merge-base --fork-point when appropriate

2 messages from 2013-12-08 to 2013-12-10. Participants: John Keeping, Jonathan Nieder.
Thread: https://gitlist.dev/t/35500

## John Keeping, 2013-12-08 12:47

Subject: [PATCH] pull: use merge-base --fork-point when appropriate
Message-ID: <b208a2edcaf47bf1a97ec19718854dc1b3646828.1386506845.git.john@keeping.me.uk>
URL: https://gitlist.dev/e/b208a2edcaf47bf1a97ec19718854dc1b3646828.1386506845.git.john%40keeping.me.uk

```
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>
---
 git-pull.sh | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/git-pull.sh b/git-pull.sh
index b946fd9..605e957 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -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
-- 
1.8.5.226.g0d60d77

```

## Jonathan Nieder, 2013-12-10 01:58

Subject: Re: [PATCH] pull: use merge-base --fork-point when appropriate
Message-ID: <20131210015851.GA2311@google.com>
URL: https://gitlist.dev/e/20131210015851.GA2311%40google.com
In-Reply-To: <b208a2edcaf47bf1a97ec19718854dc1b3646828.1386506845.git.john@keeping.me.uk>

```
John Keeping wrote:

> 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>
> ---
>  git-pull.sh | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)

Yay!  Looks good.

```
