Fossil has support for encrypted repositories (https://fossil-scm.org/home/doc/trunk/www/encryptedrepos.wiki) using the SQLite Encryption Extension. I have made a build of fossil using the open source SQLCipher SEE extension (https://github.com/sqlcipher/sqlcipher) to play around with it.
As noted in the documentation each fossil command asks the user for the passphrase to decrypt the underlying sqlite database before performing the vcs functions.
If there is a central repository Bob and Alice are committing to in order to share changes is it possible to prompt them for the passphrase via SSH or must you run the http/scgi server so the passphrase is stored in memory?
The recommended way of backing up a fossil repo is done by running something like
fossil sql "vacuum repository into repo.backup"
that way an uncommitted transaction doesn't copied (if you use plaincp
). Is there a way to make a complete backup of the encrypted repository without having to type the passphrase so it can be automated with something like cron?