Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
receive-pack: use in_merge_bases() for fast-forward check
author
Junio C Hamano
<gitster@pobox.com>
Mon, 27 Aug 2012 22:16:38 +0000
(15:16 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Tue, 28 Aug 2012 01:36:39 +0000
(18:36 -0700)
The original computed merge-base between the old commit and the new
commit and checked if the old commit was a merge base between them,
in order to make sure we are fast-forwarding.
Instead, call in_merge_bases(old, new) which does the same.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/receive-pack.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (from parent 1:
a20efee
)
diff --git
a/builtin/receive-pack.c
b/builtin/receive-pack.c
index 0afb8b289621c419bd7472097335e4235da37d61..58f3a37a39afbe3b7737fa3a0d9b90f57cec2b75 100644
(file)
--- a/
builtin/receive-pack.c
+++ b/
builtin/receive-pack.c
@@
-478,7
+478,6
@@
static const char *update(struct command *cmd)
!prefixcmp(name, "refs/heads/")) {
struct object *old_object, *new_object;
struct commit *old_commit, *new_commit;
!prefixcmp(name, "refs/heads/")) {
struct object *old_object, *new_object;
struct commit *old_commit, *new_commit;
- struct commit_list *bases, *ent;
old_object = parse_object(old_sha1);
new_object = parse_object(new_sha1);
old_object = parse_object(old_sha1);
new_object = parse_object(new_sha1);
@@
-491,12
+490,7
@@
static const char *update(struct command *cmd)
}
old_commit = (struct commit *)old_object;
new_commit = (struct commit *)new_object;
}
old_commit = (struct commit *)old_object;
new_commit = (struct commit *)new_object;
- bases = get_merge_bases(old_commit, new_commit, 1);
- for (ent = bases; ent; ent = ent->next)
- if (!hashcmp(old_sha1, ent->item->object.sha1))
- break;
- free_commit_list(bases);
- if (!ent) {
+ if (!in_merge_bases(old_commit, new_commit)) {
rp_error("denying non-fast-forward %s"
" (you should pull first)", name);
return "non-fast-forward";
rp_error("denying non-fast-forward %s"
" (you should pull first)", name);
return "non-fast-forward";