Module dochy_fs::history[][src]


Customize how “cumulative diff files” are built

Construct CumulativeOption with error check

Represents every file history in every hash directory of a project

Represents every history file in a hash directory

Metadata history files’ filename contains. The filename can be precisely restored from it.

Data of a history file.

Customize how we build history files.

Construct HistoryOption with error check

Determines if files are safe to be removed

info gettable without accessing mutex


History’s filenames have a tag(arbitrary string given by user) control number(increases when start_new is called) order( numbers ancestors of this history file have. if order is (1,2,1,1) ancestors have orders (1)<- grand grandparent (1,2)<- grand parent (1,2,1)<- parent )

You can peek the file to be derived in the next save, but the Mutex is needed for save and load. If you call save or load while the MutexGuard is alive, deadlock occurs.

The backdoor to change DochySrc while running. References of PeekableCacheInfo for the history_dir will corrupt If save / load in the history_dir is running, calling this results undefined behavior

Loads a history file.

calculates the diff from the latest save file(most of the time) and save the diff file.

calculates the diff from the latest save file(most of the time) and save the diff file. This is non-blocking. RootObject is cloned and saved. RootObject consists of some Arcs so the cloning costs nearly zero. This system employs Copy on Write strategy. Actual copy occurs when the memory managed by Arc is modified before the saving is finished using Arc::make_mut.

Saves when no save-thread is runnning for the history_dir. Calling this function concurrently for the same history_dir can make the evaluation incorrect.

During save and load, the RootObject’s ID and the selected file is recorded. If you use the same RootObject in the next save, the file to be derived is automatically selected by the system.