[][src]Crate libquilt

A library for creating, reading, and manipulating quilt repositories.

quilt is a toy implementation of a version control system inspired by the same ideas as pijul. These ideas, and eventually the implementation of quilt, 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

ChainGraggle

A version of a Graggle that 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 File is a special case of a Graggle, in which there is just a linear order.

FullGraph

A wrapper around Graggle implementing 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).

LiveGraph

A wrapper around Graggle implementing 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 quilt repository.

UnidentifiedPatch

Like a Patch, but without the unique id.

Enums

Change

A single change.

EdgeKind

The different kinds of edges.

Error
LineDiff
PatchIdError