From 9bdbabade4303bb76d8115cb12470d229d7249e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Barbier?= Date: Sat, 19 Jan 2008 16:22:48 +0100 Subject: 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 --- http-push.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/http-push.c b/http-push.c index 2c4e91d87..e1984d3a0 100644 --- a/http-push.c +++ b/http-push.c @@ -2243,6 +2243,11 @@ int main(int argc, char **argv) info_ref_lock = lock_remote("info/refs", LOCK_TIME); if (info_ref_lock) 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) fetch_indices(); -- cgit v1.2.1