summaryrefslogtreecommitdiff
path: root/t/t4013/diff.diff_initial..side
diff options
context:
space:
mode:
authorLibravatar Michael Haggerty <mhagger@alum.mit.edu>2017-09-08 15:51:50 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-09-09 03:18:04 +0900
commit6a2a7736d867dac39f2c54833fd0a65107c7cc5b (patch)
treeb69fae752807ff8bed34dfdaf85d4f4126ef1339 /t/t4013/diff.diff_initial..side
parentfiles_initial_transaction_commit(): use a transaction for packed refs (diff)
downloadtgif-6a2a7736d867dac39f2c54833fd0a65107c7cc5b.tar.xz
t1404: demonstrate two problems with reference transactions
Currently, a loose reference is deleted even before locking the `packed-refs` file, let alone deleting any packed version of the reference. This leads to two problems, demonstrated by two new tests: * While a reference is being deleted, other processes might see the old, packed value of the reference for a moment before the packed version is deleted. Normally this would be hard to observe, but we can prolong the window by locking the `packed-refs` file externally before running `update-ref`, then unlocking it before `update-ref`'s attempt to acquire the lock times out. * If the `packed-refs` file is locked so long that `update-ref` fails to lock it, then the reference can be left permanently in the incorrect state described in the previous point. In a moment, both problems will be fixed. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4013/diff.diff_initial..side')
0 files changed, 0 insertions, 0 deletions