diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-10-26 12:29:23 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-10-26 12:29:23 +0900 |
commit | 4e40fb302eacf4949f6b7d010fd5c11f1f652b7f (patch) | |
tree | c63abb71b4cf714fb42bc56e93b9f0a3665baf2b /refs | |
parent | ba78f398be65e941b93276680f68a81075716472 (diff) | |
parent | da5267f1b66dfe83a92698e49fa10dee5f74224f (diff) | |
download | git-4e40fb302eacf4949f6b7d010fd5c11f1f652b7f.tar.gz |
Merge branch 'mh/ref-locking-fix'
Transactions to update multiple references that involves a deletion
was quite broken in an error codepath and did not abort everything
correctly.
* mh/ref-locking-fix:
files_transaction_prepare(): fix handling of ref lock failure
t1404: add a bunch of tests of D/F conflicts
Diffstat (limited to 'refs')
-rw-r--r-- | refs/files-backend.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c index 014dabb0bf..8cc1e07fdb 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -2570,7 +2570,7 @@ static int files_transaction_prepare(struct ref_store *ref_store, ret = lock_ref_for_update(refs, update, transaction, head_ref, &affected_refnames, err); if (ret) - break; + goto cleanup; if (update->flags & REF_DELETING && !(update->flags & REF_LOG_ONLY) && |