Why Dits vs Git?
Git revolutionized text-based development, but it wasn't designed for large binary files. Dits brings version control to creative workflows where Git falls short.
TL;DR
Production-Ready with Comprehensive Testing
The Problem Git Solves (and Doesn't)
Git was designed for software development—small text files that change incrementally. It works brilliantly for this use case because:
- Text files compress well and have meaningful diffs
- Changes are usually small relative to file size
- Merge conflicts can be resolved with text editors
- Files are typically small (KB, not GB)
But creative industries work with fundamentally different data:
- Binary formats: Video, audio, images, 3D models
- Huge files: 4K video files can be 10-500GB
- Frequent full-file changes: Editing a video frame changes the entire file
- No meaningful diffs: You can't "merge" two video edits
Git LFS: The Band-Aid Solution
Git LFS (Large File Storage) was created to address this gap, but it's fundamentally limited:
Dits Hybrid Approach: Best of Both Worlds
Dits doesn't replace Git—it complements it. Use both tools together for optimal workflows:
Git Handles:
- Source code (.rs, .js, .py, .cpp)
- Configuration files (.json, .yaml)
- Documentation (.md, .txt)
- Small assets (icons, fonts)
- Build scripts and pipelines
Benefits: Line-based diffs, 3-way merge, blame, code review
Dits Handles:
- Video files (.mp4, .mov, .avi)
- 3D models (.obj, .fbx, .gltf)
- Game assets (Unity, Unreal, Godot)
- Large images (.psd, .raw)
- Audio files and middleware
Benefits: FastCDC chunking, automatic deduplication, delta transfers
How It Works
When to Use Each Tool
Use Git For:
Text files, scripts, configuration files, documentation
Icons, small images, fonts, design system tokens
Markdown, READMEs, wikis, changelogs
Use Dits For:
MP4, MOV, AVI, ProRes, DNxHD, any video format
WAV, AIFF, MP3, FLAC, professional audio formats
CR2, NEF, ARW, DNG, high-resolution photo formats
Textures, models, animations, build artifacts
OBJ, FBX, BLEND, Maya scenes, complex geometries
PSD, AI, XD, Figma files, layered compositions
Performance Comparison
Real-world performance differences for a 10GB video file:
| Operation | Git LFS | Dits | Improvement |
|---|---|---|---|
| Initial commit | 10GB upload | 10GB upload | - |
| Small edit (1MB change) | 10GB upload | ~200KB upload | 50,000x faster |
| Clone repository | 10GB download | On-demand access | Lazy loading |
| Storage efficiency | 10GB per version | 10GB + manifest | Deduplication |
Can They Work Together?
Absolutely! Many teams use both tools in harmony:
my-project/
├── .git/ # Git repository
│ ├── code/
│ ├── docs/
│ └── scripts/
│
├── .dits/ # Dits repository
│ ├── assets/
│ ├── footage/
│ └── renders/
│
└── shared/ # Both Git and Dits
├── config files
└── project metadataThis hybrid approach gives you:
- Git: Fast, reliable version control for code and text
- Dits: Efficient version control for large creative assets
- Single workflow: One repository structure, familiar commands
- Best of both: Text diffs + binary deduplication
Migration Strategies
From Git LFS
- Install Dits alongside your existing Git setup
- Move large files from LFS to Dits tracking
- Keep using Git for code, use Dits for binaries
- Gradually migrate workflows as confidence grows
From Manual Versioning
- Start with a single project directory
- Use
dits initto create the repository - Add your existing files with
dits add . - Commit with
dits commit -m "Initial import" - Delete those "final_v27.mp4" files forever
Next Steps
Ready to try Dits? Start with our Getting Started guide or learn more about how Dits works.