Crate libpijul[][src]


pub use crate::fs::FsError;
pub use crate::fs::WorkingCopyIterator;
pub use crate::pristine::ArcTxn;
pub use crate::pristine::Base32;
pub use crate::pristine::ChannelMutTxnT;
pub use crate::pristine::ChannelRef;
pub use crate::pristine::ChannelTxnT;
pub use crate::pristine::DepsTxnT;
pub use crate::pristine::GraphTxnT;
pub use crate::pristine::MutTxnT;
pub use crate::pristine::RemoteRef;
pub use crate::pristine::TreeTxnT;
pub use crate::pristine::TxnT;
pub use crate::record::Builder as RecordBuilder;
pub use crate::record::InodeUpdate;


A change store is a trait for change storage facilities. Even though changes are normally stored on disk, there are situations (such as an embedded Pijul) where one might want changes in-memory, in a database, or something else.

Manipulating the internal representation of files and directories tracked by Pijul (i.e. adding files, removing files, getting file names…).

Treating strings as paths. For portability reasons, paths must internally be treated as strings, and converted to paths only by the backend, if required (in-memory backends will typically not need that conversion).

Hunk a change from a pristine and a working copy.


Possible flags of edges.

A unique identifier for files or directories in the actual file system, to map “files from the graph” to real files.

A node in the repository graph, made of a change internal identifier, and a line identifier in that change.


Algorithm used to compute the diff.

A structure representing a file with conflicts.

The external hash of changes.




Same as [apply_change], but with a wrapped txn and channel.

Type Definitions