This version of the driver uses plain files to store the gitty data. It
consists of a nested directory structure with files named after the
hash. Objects and hash computation is the same as for git
. The heads
(files) are computed on startup by scanning all objects. There is a file
ref/head
that is updated if a head is updated. Other clients can watch
this file and update their notion of the head. This implies that the
store can handle multiple clients that can access a shared file system,
optionally shared using NFS from different machines.
The store is simple and robust. The main disadvantages are long startup times as the store holds more objects and relatively high disk usage due to rounding the small objects to disk allocation units.
swish
.-
.
This operation can fail because another writer has updated the head. This can both be in-process or another process.