AVC (Archive Version Control) is a high-performance version control system with full bidirectional Git compatibility (kinda) through AGCL (AVC Git Compatibility Layer). Migrate existing Git repositories, collaborate with Git users, and push to GitHub/GitLab while enjoying BLAKE3 hashing, zstd compression, and multi-threaded operations.
- Build & Installation: see
BUILD.md - Usage Guide: see
USAGE.md - AGCL Guide: see
AGCL_USAGE.md - Git Collaboration: see
WORKFLOW_SAMPLE.md - Contributing: see
CONTRIBUTING.md - Notes: see
NOTES.md
| Operation | AVC | Git | Performance |
|---|---|---|---|
| Init | 0.001 | 0.001s | β‘ Equal |
| Add | 1.621s | 11.358s | β‘ Up to 7x faster |
| Commit | 0.370s | 5.766s | π Up to 15.6x faster |
| Reset** | 0.854s | 3.236s | β‘ 3.8x faster |
| Size (pre-commit) | 521MB | 634MB | πΎ Up to 1.2x smaller |
*Best run
**Directory is cleaned for each run
Tested on Linux with Kernel 6.15.3 source with Intel Core i3-12100F
- Bidirectional Git Compatibility (AGCL) - Full sync between AVC and Git formats
- One-command migration - Convert any Git repo to AVC instantly
- Mixed team collaboration - AVC users work with Git users seamlessly
- BLAKE3 content addressing - Fast, secure, collision-resistant hashing
- Incremental staging -
avc add file1.txt file2.txtworks properly - Hierarchical tree structure - Preserves directory hierarchy (unlike flat storage)
- Empty directory support - Optional preservation with
-eflag - .avcignore support - Skip files/directories using ignore patterns
- Multi-threaded operations - Parallel processing for speed
- Intelligent compression - Smart zstd compression with size optimization
- Cross-platform builds - ARM/portable build support
- Large file support - Handles files up to 1GB with optimized memory management
- OpenMP parallelization - Multi-threaded file processing
- Fast compression - Level 6 zstd with smart detection
- Memory-efficient operations - Streaming file processing
- Optimized object storage - Git-style subdirectory structure
- Progress indicators - Real-time operation feedback
- Memory pool optimization - Efficient memory allocation for large files
- Smart compression detection - Avoids double-compressing already compressed files
- Consistent compression - Pure zstd compression with no fallbacks
- Directory removal -
-rflag for recursive directory operations - Thread configuration - Automatic CPU core detection and utilization
- Repository cleanup -
cleancommand to remove entire repository - Robust error handling - Detailed error messages and recovery
- Large file optimization - 1MB chunks and 1GB file size support
# Initialize repository avc init # Add files (basic) avc add file.txt avc add folder/ # Add all files in current directory (respects .avcignore) avc add . # Add with empty directory preservation avc add -e . avc add --empty-dirs folder/ # Add with fast compression avc add -f large_file.zip # Combine flags avc add -ef . # Fast compression + preserve empty dirs # Commit changes avc commit -m "Your commit message"# Setup Git compatibility avc agcl git-init # Push to GitHub/GitLab avc agcl push # Pull from remote avc agcl pull # Migrate existing Git repo avc agcl migrate https://github.com/user/repo.git| Command | Description | Options |
|---|---|---|
avc init | Initialize new repository | None |
avc add <path> | Add files/directories to staging | -f, --fast, -e, --empty-dirs |
avc commit | Commit staged changes | -m <msg> |
avc status | Show repository status | None |
avc log | Show commit history | None |
avc rm <path> | Remove files/directories | -r, --cached |
avc reset <hash> | Reset to commit | --hard, --clean |
avc clean | Remove entire repository | None |
avc version | Show version information | None |
| Command | Description | Purpose |
|---|---|---|
avc agcl migrate <url> | Clone and convert Git repo to AVC | One-command migration |
avc agcl git-init | Initialize Git repo alongside AVC | Setup Git compatibility |
avc agcl push | Sync AVC to Git and push to origin | Share AVC changes with Git users |
avc agcl pull | Pull from Git and add to AVC | Get Git changes into AVC |
avc agcl sync-to-git | Convert AVC objects to Git format | Manual sync (advanced) |
avc agcl verify-git | Verify Git repository state | Debug conversion issues |
-m <message>- Commit message-r- Recursive directory operations--cached- Only remove from staging area--hard- Reset working directory--clean- Wipe working directory before reset-f,--fast- Use fast compression for speed-e,--empty-dirs- Preserve empty directories (creates .avckeep files)
Create a .avcignore file to exclude files/directories:
# Comments start with # *.log temp/ build/ node_modules/ .DS_Store - AVC Format: BLAKE3 hashes (64-char) + zstd compression
- Git Format: SHA-1 hashes (40-char) + zlib compression
- AGCL Bridge: Converts between formats seamlessly
- GitHub Compatible: Push AVC repos to any Git hosting service
- BLAKE3 hashing for fast, secure content addressing
- Git-style subdirectories (
.avc/objects/ab/cdef...) - Pure zstd compression with consistent compressed storage
- Streaming operations for memory efficiency
- Large file optimization with 1MB chunks and 1GB file support
- OpenMP parallelization for file processing
- Automatic thread detection and configuration
- Dynamic scheduling for optimal load balancing
- Thread-safe operations throughout the codebase
- Pure zstd compression for consistent performance
- No fallback compression - eliminates compatibility issues
- Large buffer support - 1MB compression buffers for big files
- Memory pool optimization - Efficient allocation for large operations
This project is licensed under the GPL License - see the LICENSE file for details.
- Git - For inspiration and workflow concepts
- OpenSSL - For cryptographic functions
- zstd - For compression capabilities
- OpenMP - For parallel processing support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: This README and inline code comments
AVC v0.4.0 "Velocity" - The first version control system with bidirectional Git compatibility and seamless team collaboration.
Built with β€οΈ by Atheria