Page MenuHomeSoftware Heritage

Darcs loader
Closed, MigratedEdits Locked

Description

We need a loader for Darcs repositories.

Given the peculiarities of the Darcs patch model, supporting it might entail changes in our data model (please add them as subtasks if needed).

Event Timeline

As a starting point, I've briefly discussed with Darcs developers how the push/pull protocol works in Darcs. Unfortunately the protocol doesn't seem to be documented anywhere. The relevant entry points in the code are:

Furthermore, tags in Darcs apply to whole repositories, rather than to specific point in the development history (as it happends in git). As a consequence, tags are also used as synchronization points during push/pull: when Darcs finds that client/server both have the same tag, it stops traversing the patch set below the tag. This is somehow hinted at also by the documentation of darcs tag, which reads:

Tagging also provides significant performance benefits: when Darcs reaches a shared tag that depends on all antecedent patches, it can simply stop processing.

OTOH, darcs developers have confirmed that, when no tags are present, client/server exchange the full list of patches to find out what needs to be transferred.

olasd changed the visibility from "All Users" to "Public (No Login Required)".May 13 2016, 5:08 PM