There exist three Darcs repository formats: old-fashioned (OF), hashed and darcs-2. From version 2.8 (2012), Darcs only provides read-only support for OF repositories. Moreover, checkpoints of OF repositories (used to make cloning faster with --partial) are no longer supported. This page assumes that you have Darcs 2.8 or newer.

The commands that can still be run on local OF repositories are:

• changes
• show
• whatsnew

The commands that can be run against remote OF repositories are:

• clone
• pull
• send

Moreover, it is possible to do a remote push to an OF repo, that is, pushing via ssh if the remote machine’s Darcs binary is able to write into OF repositories.

# How to know the format of a repository

Run the following command in a repository:

darcs show repo

If you find the line:

Pristine: PlainPristine

then you have an OF repository. If not, it should instead read:

Pristine: HashedPristine

# Converting a repository to the hashed format

You can upgrade an existing repository in-place with a single command:

darcs optimize upgrade

# Looking for help

For any question related to upgrading to the hashed format: