No Server Required
Fossil does not require a central server. Data sharing and synchronization can be entirely peer-to-peer. Fossil uses conflict-free replicated data types to ensure that (in the limit) all participating peers see the same content.
But, A Server Can Be Useful
Fossil does not require a server, but a server can be very useful. Here are a few reasons to set up a Fossil server for your project:
- A server works as a complete project website.
Fossil does more than just version control. It also supports trouble-tickets, wiki, a developer chat room, and a forum. The embedded documentation feature provides a great mechanism for providing project documentation. The unversioned files feature is a convenient way to host builds and downloads on the project website.
- A server gives developers a common point of rendezvous for
syncing their work.
It is possible for developers to synchronize peer-to-peer but that requires the developers coordinate the sync, which in turn requires that the developers both want to sync at the same moment. A server alleviates this time dependency by allowing each developer to sync whenever it is convenient (for example, automatically syncing after each commit and before each update). Developers all stay in sync with each other, without having to interrupt each other constantly to set up a peer-to-peer sync.
- A server provides project leaders with up-to-date status.
Project coordinators and BDFLs can click on a link or two at the central Fossil server for a project, and quickly tell what is going on. They can do this from anywhere, even from their phones, without needing to actually sync to the device they are using.
- A server provides automatic off-site backups.
A Fossil server is an automatic remote backup for all the work going into a project. You can even set up multiple servers, at multiple sites, with automatic synchronization between them, for added redundancy. Such a set up means that no work is lost due to a single machine failure.