On Mon, Feb 2, 2015 at 5:35 PM, Warren Young <w...@etr-usa.com> wrote:

> After sending that prior message, I did think of a way to allow retries
> without inconsistency, but it would surely slow Fossil down: there could be
> a mode that turns cloning into a replay of the master repo’s timeline.
>
> That is, every change made to the master gets applied to the slave, in the
> order it was made.  This means local files get updated multiple times, even
> if later changes wipe out prior ones.  The advantage is that after each
> changeset is applied, the tree is again in a consistent state.


I don't think it would be much of a slow down. All the artifacts will get
sent, just the ordering will be more controlled. At the start of the first
attempt to clone, send the oldest manifest and a cluster "listing" the
remaining manifests in chronological order, plus as many of the files
"listed" in the first manifest as will fit in the initial transfer. Then
the client will process the manifests in the order they appear in in the
"manifest clusters". (If there are too many manifests to list in a single
cluster, the final entry in the cluster would be the ID of the next
manifest cluster.)

When attempting to resume, the client would include the pending "gimme"
cards, also in the order the IDs appeared in the manifest clusters

Other than insuring the client receives the manifests in chronological
order, the clone protocol would operate as it currently does and would be
compatible with clients that don't support resuming.
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to