diff options
author | Grégoire Barbier <gb@gbarbier.org> | 2008-01-19 16:22:48 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-01-20 15:17:58 -0800 |
commit | 9bdbabade4303bb76d8115cb12470d229d7249e2 (patch) | |
tree | 19232b302110b21d05a977a08623cb376fc82b51 /http-push.c | |
parent | 9116de5957423d553fce5857a835284a0527d037 (diff) | |
download | git-9bdbabade4303bb76d8115cb12470d229d7249e2.tar.gz git-9bdbabade4303bb76d8115cb12470d229d7249e2.tar.xz |
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>
Diffstat (limited to 'http-push.c')
-rw-r--r-- | http-push.c | 5 |
1 files changed, 5 insertions, 0 deletions
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(); |