Glossary
Definitions of key terms and concepts used throughout the Dits documentation.
B
The raw content of a file stored in the repository. In Dits, blobs are chunked and deduplicated.
An independent line of development. Branches allow you to work on features without affecting the main codebase.
C
A portion of a file created by the chunking algorithm. Dits stores files as collections of chunks, enabling efficient storage and transfer.
Creating a complete copy of a repository, including all history and branches.
A snapshot of your repository at a point in time. Each commit has a unique identifier and records changes made since the last commit.
Identifying content by its cryptographic hash rather than its location. This enables deduplication - identical content is stored only once.
A chunking algorithm that determines chunk boundaries based on file content rather than fixed sizes. This improves deduplication when files are modified.
D
The process of eliminating duplicate copies of data. In Dits, identical chunks are stored only once, saving storage space.
F
The default chunking algorithm in Dits. It's a fast, efficient content-defined chunking implementation optimized for large files.
Downloading commits and objects from a remote repository without merging them into your local branches.
Filesystem in Userspace. A technology that allows Dits to mount repositories as virtual filesystems without kernel modifications.
H
A fixed-size string computed from content using a cryptographic function (SHA-256). Used to uniquely identify chunks and commits.
A reference to the currently checked-out commit. Usually points to the tip of the current branch.
A script that runs automatically at specific points in the Dits workflow, like before a commit or after a push.
The process of downloading actual file content when accessing a file in a sparsely-cloned or mounted repository.
I
Also called the staging area. A snapshot of files you've marked to include in the next commit.
L
A mechanism to prevent others from editing a file while you're working on it. Essential for binary files that can't be merged.
M
Combining changes from different branches into a single branch. Dits supports various merge strategies.
Making a repository's contents accessible as a virtual filesystem. Files appear as regular files but are fetched on-demand.
O
The default name for the main remote repository, typically where you cloned from.
P
Direct synchronization between machines without requiring a central server. Dits uses libp2p for decentralized collaboration.
A low-resolution or placeholder version of a large file. Used for preview while keeping full-quality originals available.
Fetching changes from a remote repository and merging them into your current branch. Equivalent to fetch + merge.
Uploading your local commits to a remote repository.
R
Replaying commits from one branch onto another. Creates a linear history by avoiding merge commits.
Short for reference. A pointer to a commit, typically a branch name or tag.
A repository hosted elsewhere (server, cloud, or another machine) that you sync with.
A directory containing your project files and the complete history of changes, stored in the .dits directory.
S
The cryptographic hash function used by Dits to generate content identifiers. Produces a 256-bit (64 character) hash.
Cloning a repository without downloading all file contents. Only metadata is fetched; files are hydrated on-demand.
Marking changes to include in the next commit. Done with 'dits add'.
Temporarily storing uncommitted changes so you can work on something else, then restore them later.
Different storage backends with varying performance and cost characteristics (hot, warm, cold, archive).
T
A named reference to a specific commit, typically used to mark release versions.
An object representing a directory. Trees contain references to blobs (files) and other trees (subdirectories).
V
The feature that allows mounting Dits repositories as regular filesystems for seamless access.
W
The communication protocol used between Dits clients and servers for efficient data transfer.
The directory containing your actual project files. Changes here are tracked by Dits.
Related Resources
- Core Concepts - Deep dive into how Dits works
- FAQ - Answers to common questions
- CLI Reference - Command documentation