Skip to content
rfc-workflow Sync RFC Brief
Login

Sync RFC Brief

Mission

Draft the protocol document:

The Fossil Distributed Version Control System: Sync Protocol

This document specifies the current Fossil wire version for synchronising content-addressed artifacts between repositories over HTTP and equivalent transports.

Front matter

Required sections

1. Introduction

Cover synchronisation as convergence of two artifact sets, including the phantom and cluster model.

2. Terminology

Add these sync-specific terms on top of Artifact terminology:

Also define the repository-derived views that Sync defers to RepoState:

The terminology section must state that the sync protocol does not carry a separate branch, tag, leaf, closed-marker, or current-trunk state channel. It transfers and stores the artifacts from which each peer derives those views locally, with the derivation rules owned by RepoState.

3. Protocol operation

This section is mandatory and must be implementable as a client algorithm, not a descriptive overview.

It must specify:

Round structure

Phantom resolution

Specify the loop explicitly:

Clone loop

Specify the current clone loop explicitly:

Carried state

Enumerate carried values such as:

Request/response pragmas

Specify ordering and failure behavior for:

Derived repository views

Require an explicit subsection stating that:

Termination

State the exact convergence condition under which the client concludes the sync is complete and the server stops.

Worked exchange

Require one observed, message-by-message appendix trace of a small sync, including:

4. Transport

Specify:

State the request-target rule exactly as implemented:

5. Card format

Cover the sync card vocabulary:

For repository-configuration transfer, specify only the wire envelope:

6. Authentication

Specify:

7. Content transfer

Cover:

Make byte framing explicit per card family:

State the dangling-delta rule explicitly:

8. Clone

Specify the current clone version using cfile cards and clone_seqno sequencing.

9. Synchronisation strategies

Specify pull, push, sync, and unversioned-file sync as ordered card exchanges, including phantom creation and server-side cluster creation.

10. Pragmas

Cover at least:

Unknown pragmas are ignored.

11. Error handling

Specify:

12. Security Considerations

Carry the original pack's security themes:

13. IANA Considerations

Register:

Do not request a port or service-name registration.

Required appendices

Sync-specific boundaries

High-risk Fossil specifics to preserve