http-push: fail when info/refs exists and is already locked
Failing instead of silently not updating remote refs makes the things clearer for the user when trying to push on a repository while another person do (or while a dandling locks are waiting for a 10 minutes timeout). When silently not updating remote refs, the user does not even know that git has pushed the objects but leaved the refs as they were before (e.g. a new bunch of commits on branch "master" is uploaded, however the branch by itsel still points on the previous head commit). Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
9116de5957
commit
9bdbabade4
@ -2243,6 +2243,11 @@ int main(int argc, char **argv)
|
|||||||
info_ref_lock = lock_remote("info/refs", LOCK_TIME);
|
info_ref_lock = lock_remote("info/refs", LOCK_TIME);
|
||||||
if (info_ref_lock)
|
if (info_ref_lock)
|
||||||
remote->can_update_info_refs = 1;
|
remote->can_update_info_refs = 1;
|
||||||
|
else {
|
||||||
|
fprintf(stderr, "Error: cannot lock existing info/refs\n");
|
||||||
|
rc = 1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (remote->has_info_packs)
|
if (remote->has_info_packs)
|
||||||
fetch_indices();
|
fetch_indices();
|
||||||
|
Loading…
Reference in New Issue
Block a user