summaryrefslogtreecommitdiff
path: root/http-push.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-08-27 22:21:37 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-08-28 01:36:39 (GMT)
commit6571225137b1ba270b49a0dfc6a30aab6f4b86ba (patch)
treebfc6be12df7a548eb0bfcd334d02b32b87e59318 /http-push.c
parent5d55915c7a58e59d913b0cfc38a6f49514068cd2 (diff)
downloadgit-6571225137b1ba270b49a0dfc6a30aab6f4b86ba.zip
git-6571225137b1ba270b49a0dfc6a30aab6f4b86ba.tar.gz
git-6571225137b1ba270b49a0dfc6a30aab6f4b86ba.tar.bz2
http-push: use in_merge_bases() for fast-forward check
The original computed merge-base between HEAD and the remote ref and checked if the remote ref is a merge base between them, in order to make sure that we are fast-forwarding. Instead, call in_merge_bases(remote, HEAD) which does the same. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http-push.c')
-rw-r--r--http-push.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/http-push.c b/http-push.c
index f22f7e4..555c056 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1610,9 +1610,8 @@ static int verify_merge_base(unsigned char *head_sha1, struct ref *remote)
{
struct commit *head = lookup_commit_or_die(head_sha1, "HEAD");
struct commit *branch = lookup_commit_or_die(remote->old_sha1, remote->name);
- struct commit_list *merge_bases = get_merge_bases(head, branch, 1);
- return (merge_bases && !merge_bases->next && merge_bases->item == branch);
+ return in_merge_bases(branch, head);
}
static int delete_remote_branch(const char *pattern, int force)