debian-forge/osbuild
Christian Kellner 6a2a7d99f7 objectstore: unify commit and snapshot code paths
As a result of the previous commits that implement copy on write
semantics, `commit` can now be used to create snapshots. Whenever
an Object is committed, its tree is moved to the store and it is
being reset, i.e. a new clean workdir is created and the old one
discarded. The moved tree is then set as the base of the reset
Object. On the next call to `write` the moved tree will be copied
over and forms the basis of the Object again. Should nobody want
to write to Object after the snapshot, i.e. the `commit`, no copy
will be made.
NB: snapshots/commits will act now act as synchronization points:
if a object with the same treesum, i.e. the very same content
already exists, the move (i.e. `store_tree`) will gracefully fail
and the existing content will be set as the base for Object.
2020-02-28 16:11:49 +01:00
..
__init__.py pipeline: return logs in --json mode 2019-12-14 13:49:24 +01:00
__main__.py osbuild: allow the sources to be passed in on stdin 2020-02-19 15:59:11 +01:00
api.py api: add barriers 2020-02-06 19:01:12 +01:00
buildroot.py buildroot: allow customizing the backing store for /var 2020-01-27 15:51:47 +01:00
loop.py loop: explicitly close fds to loop devices 2020-01-19 22:19:25 +01:00
objectstore.py objectstore: unify commit and snapshot code paths 2020-02-28 16:11:49 +01:00
pipeline.py objectstore: unify commit and snapshot code paths 2020-02-28 16:11:49 +01:00
remoteloop.py remoteloop: drop O_DIRECT 2020-02-06 19:01:12 +01:00
sources.py sources: add org.osbuild.files source 2020-02-06 19:01:12 +01:00
tmpfs.py osbuild: split package into separate files 2019-08-21 09:56:50 +04:00
treesum.py treesum: don't use dir_fd parameter in os.scandir() 2019-11-29 00:45:14 +01:00