Expand description
A library for creating, reading, and manipulating ojo repositories.
ojo is a toy implementation of a version control system inspired by the same ideas as
pijul. These ideas, and eventually the implementation of ojo,
are documented in some blog posts. This crate itself is not so
well documented, but doing so is one of my goals.
Modules§
- resolver
- This module implements some tools that can be used to create interactive tools for resolving non-linearly-ordered graggles into linearly-ordered files.
Structs§
- Chain
Graggle - A version of a
Gragglethat has been decomposed into “chains” (for example, for prettier rendering). - Changes
- A set of
Changes. - Diff
- Represents a diff between two
Files. - Edge
- This struct represents a directed edge in a graggle graph.
- File
- A
Fileis a special case of aGraggle, in which there is just a linear order. - Full
Graph - A wrapper around
Graggleimplementing the [graph::Graph] trait. - Graggle
- A graggle is like a file, except that its lines are not necessarily in a linear order (rather, they form a directed graph).
- Live
Graph - A wrapper around
Graggleimplementing the [graph::Graph] trait. - NodeId
- A globally unique ID for identifying a node.
- Patch
- A set of changes together with some metadata (author, description, etc.) and a unique id.
- PatchId
- A global identifier for a patch.
- Repo
- This is the main interface to a
ojorepository. - Unidentified
Patch - Like a
Patch, but without the unique id.
Enums§
- Change
- A single change.
- Edge
Kind - The different kinds of edges.
- Error
- Line
Diff - Patch
IdError