Frequently Asked Questions
Quick answers to common questions about Dits. Can't find what you're looking for? Check our troubleshooting guide or ask in the community.
General Questions
Dits is a next-generation version control system designed for large files and creative workflows. It uses content-defined chunking and deduplication to efficiently handle video, images, 3D models, and other binary files that traditional VCS like Git struggle with.
While Git LFS stores large files separately, it still has limitations:
- Dits chunks files - Only changed portions are stored, not entire files
- Content-addressed - Identical content is stored once across all files
- Streaming access - Mount repositories and access files on-demand
- P2P sync - Share directly between machines without central server
Dits commands are designed to be familiar to Git users. Commands like dits add,dits commit, dits push, and dits pull work similarly. You can migrate from Git gradually - see our migration guide.
Technical Questions
Dits uses content-defined chunking (FastCDC algorithm) to split files into variable-sized chunks based on content boundaries. This means if you insert data in the middle of a file, only the affected chunks change - not the entire file. Each chunk is identified by its content hash (SHA-256), enabling deduplication across your entire repository.
There's no hard limit on file size. Dits has been tested with files over 100GB. Large files are automatically chunked, so you only transfer and store what actually changes. For very large files, consider using the VFS mount feature for streaming access without downloading the entire file.
Storage savings depend on your content type and edit patterns. Typical results:
- Video projects: 60-80% reduction for iterative edits
- Game assets: 40-60% with texture/model reuse
- Documents: 70-90% for revision-heavy docs
Dits supports end-to-end encryption. You can encrypt repositories with a password or key, and data is encrypted before it leaves your machine. See the encryption guide for setup instructions.
Usage Questions
Use sparse checkout to clone only the metadata, then access files on-demand:
dits clone --filter blob:none https://example.com/repo
cd repo
dits mount /mnt/repo # Access all files instantlyYes, but like Git, you'll need to merge changes. For binary files where automatic merging isn't possible, Dits supports file locking to prevent conflicts. Use dits lockto prevent others from editing a file while you work on it. See lock commands.
Dits is designed for offline work. All commits are local until you push. For mounted repositories, files you've accessed are cached locally. Use dits fetchto pre-download content before going offline.
Any software that works with regular files works with Dits. The VFS mount feature makes Dits repositories appear as normal directories. Popular tested applications include: Adobe Premiere, DaVinci Resolve, Blender, Unity, Unreal Engine, VS Code, and more.
Troubleshooting
First pushes of large files take time. Check progress with dits status. Future pushes of the same files will be much faster due to chunking. Consider using a faster network or the --compress flag for slow connections.
Increase your system's file descriptor limit:
# macOS/Linux
ulimit -n 65536
# Add to ~/.zshrc or ~/.bashrc to persist