Skip to main content
Documentation
Configuration

Repository Configuration

Repository-local settings live in .dits/config.toml; chunking is the active runtime use.

Location and selection

my-project/
├── .dits/
│   ├── config.toml     # Managed by dits config
│   ├── remotes         # Separate remote metadata
│   └── ...
└── ...

While inside a repository, dits config selects .dits/config.toml unless --global is present. There is no --local flag and no layered merge with global settings.

Chunking configuration

KeyDefaultRole
chunking.min_size16KBMinimum chunk size
chunking.target_size64KBTarget/average chunk size
chunking.max_size256KBMaximum chunk size
dits config chunking.min_size 32KB
dits config chunking.target_size 128KB
dits config chunking.max_size 512KB
dits config --list

Stored-only repository keys

The repository file can also store user.name, user.email, core.default_branch, and core.verbose. They are not currently connected to commit identity, branch initialization, or command verbosity.

[core]
default_branch = "main"
verbose = false

[chunking]
target_size = 131072
min_size = 32768
max_size = 524288

Separate repository metadata

Remote names and URLs do not live in this TOML document. Manage their JSON file with dits remote:

dits remote add origin /path/to/another-repository
dits remote --verbose

Recording a remote works, but push, pull, fetch, and sync fail closed without transferring data in this alpha. Sparse-checkout also uses a separate .dits/config file; it is not managed by dits config.

Unsupported repository settings

File-mode, line-ending, compression, media, cache, hook-enable, branch-tracking, and remote-refspec sections are design-only and are rejected by the current dot-notation setter.

Related topics