Skip to main content
Git LFS is a workaround for a problem wit doesn’t have.
wit handles large files natively. Automatic chunking, deduplication, no setup.

How It Works

Automatic Detection

Files above the threshold (default: 2MB) are automatically chunked:
Each chunk is:
  • Hashed independently
  • Stored if new
  • Deduplicated if it already exists

Manifest

A manifest file tracks the chunks:

Configuration

Threshold

Set the large file threshold in .wit/config:
Common values:

Chunk Size

Usage

Adding Large Files

Just use add as normal:
wit will:
  1. Detect the file is above threshold
  2. Split into chunks
  3. Store chunks efficiently
  4. Create manifest

Status with Large Files

Diff with Large Files

Benefits

Space Efficiency

Performance

  • Adding: Faster for files with partial changes
  • Cloning: Only fetch needed chunks
  • Checkout: Stream large files from chunks

No External Dependencies

Git LFS requires:
  • Server support
  • Additional setup
  • Separate tracking file
wit just works:
  • Built-in to the format
  • No server changes needed
  • Automatic handling

Comparison with Git LFS

Best Practices

Use meaningful chunk sizes
  • Smaller chunks = better deduplication, more overhead
  • Larger chunks = less overhead, worse deduplication
  • 2MB is a good default for most use cases
Consider file types
  • Video/audio: Often benefits from chunking
  • Compressed files (zip, jpg): Less benefit from chunking
  • Text files: Usually below threshold anyway

Troubleshooting

Check the threshold:
Ensure the file is larger than this value.
Try increasing chunk size:
Run garbage collection: