This is pretty useful in avoiding races: I want to create a ref only if it doesn't already exist. I can't check first because of TOCTOU -- by the time I finish the check, someone else might have already created the ref. And I can't take a lock because then I can't do the create, since the create expects to take the lock. The semantics are inspired by git update-ref, which allows an all-zero old value to mean that the ref must not exist.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
branches | Loading commit data... | |
reflog | Loading commit data... | |
tags | Loading commit data... | |
basic.c | Loading commit data... | |
crashes.c | Loading commit data... | |
create.c | Loading commit data... | |
delete.c | Loading commit data... | |
dup.c | Loading commit data... | |
foreachglob.c | Loading commit data... | |
isvalidname.c | Loading commit data... | |
iterator.c | Loading commit data... | |
list.c | Loading commit data... | |
listall.c | Loading commit data... | |
lookup.c | Loading commit data... | |
namespaces.c | Loading commit data... | |
normalize.c | Loading commit data... | |
overwrite.c | Loading commit data... | |
pack.c | Loading commit data... | |
peel.c | Loading commit data... | |
races.c | Loading commit data... | |
read.c | Loading commit data... | |
ref_helpers.c | Loading commit data... | |
ref_helpers.h | Loading commit data... | |
rename.c | Loading commit data... | |
revparse.c | Loading commit data... | |
setter.c | Loading commit data... | |
shorthand.c | Loading commit data... | |
transactions.c | Loading commit data... | |
unicode.c | Loading commit data... | |
update.c | Loading commit data... |