Skip to content
go-libfossil Artifact [e07776989f]
Login

Artifact [e07776989f]

Artifact e07776989f6528abc827db29264f8e678435b8dfffc412b97763ec058e8a491f:



title: Settings

weight: 30

A repository setting is one row of the config table in the repository file. go-libfossil reads the settings below. Some are fossil's own; the rest are extensions, and each entry says which.

Set a setting with the CLI, or with Repo.SetConfig(key, value) in the Go API:

libfossil repo -R project.fossil config set clearsign on
libfossil repo -R project.fossil config get clearsign
libfossil repo -R project.fossil config ls

config set stores the value as given and stamps it with the current time. It checks only the values noted in the entries for hash-policy, horizon-history-url and horizon-seed-key. A setting that is not set has no row; config get reports it as not found. The CLI has no command that deletes a setting.

Boolean settings are read as fossil reads them: on, yes, true (any case) or a nonzero number mean true; off, no, false, 0 mean false. Any other text gives the setting's default. The reader is SettingBoolean. Entries marked "boolean" below use it unless they say otherwise.

go-libfossil reads only the repository's own config table. Fossil also falls back to a per-user global configuration in ~/.fossil; go-libfossil does not.

Setting Default Read by
clearsign off check-in and seed signing
omitsign off check-in and seed signing
pgp-command gpg --clearsign -o check-in and seed signing
horizon-seed-key none clone, seed verification
partial-mirror off sync server
horizon-history-url none sync server
enable-submanifests off commit, sync
submanifest-k unset commit, sync
submanifest-auto-retune off commit
hash-policy derived from content every artifact store
case-sensitive on, except macOS and Windows CLI path matching
merge-strategy three-way merge
main-branch trunk branch membership, leaves
hash-digits 10 hash display
allow-symlinks off checkout, file scan
mtime-changes on checkout file scan
repo-cksum on checkout
uv-sync off sync server, clone
lock-timeout 60 seconds check-in lock
forbid-delta-manifests on sync server

The last list on this page covers internal rows that are not meant to be edited.

clearsign

Turns on signing. When it is on, every check-in that a commit or branch creation stores is signed, and so is every horizon seed an origin mints. See Signing.

omitsign

Turns signing off again, even when clearsign is on.

pgp-command

The command that signs. Used only when signing is on.

horizon-seed-key

The public key a clone uses to verify the horizon seeds its origin sends. See Signing and Horizons.

partial-mirror

Lets a sparse store serve clones that its cone does not cover. See Sparse cones.

horizon-history-url

The address of an interface, outside the sync protocol, where history below a horizon can be queried. An origin appends it to the horizon-served pragma. See Horizons.

enable-submanifests

Makes new commits write tree manifests (sub-manifests) instead of flat ones. See Sub-manifests.

submanifest-k

The partition parameter k that a commit uses to build the tree.

submanifest-auto-retune

Allows a commit to re-pin submanifest-k by itself when the analyzed optimum has drifted.

hash-policy

Which hash names new artifacts: SHA-1 or SHA3-256.

case-sensitive

Whether file names that differ only in case are different files.

merge-strategy

The merge strategy used for files that no .libfossil-merge rule matches.

main-branch

The name of the default branch, for check-ins with no active branch tag.

hash-digits

How many hash characters fossil's %S conversion prints.

Whether a symbolic link on disk is seen as itself.

mtime-changes

Whether a checkout file scan may trust file modification times.

repo-cksum

Whether a checkout verifies the manifest's R card.

uv-sync

Whether a clone also receives the unversioned-file catalog.

lock-timeout

How long a check-in lock (ci-lock) stays valid, in seconds.

forbid-delta-manifests

Whether the server tells clients not to send delta manifests (the avoid-delta-manifests pragma).

Internal rows

These rows are bookkeeping. Do not edit them. Some are written by sync or by repo clone, and some are read only by internal code.

Other rows that sync carries as configuration, such as project-name, ignore-glob or the skin settings, pass through the config table without go-libfossil acting on them.

See the CLI reference for the commands above.