Darcs Glossary ============== This page defines some specific terms as they are used in the context of darcs. - **commute**: *TODO* - **merge**: *TODO* - **patch**: A primitive patch or (more usual) a named patch. - **primitive patch**: A hunk, addfile, replace or any other or future of darcs' patch types. They encode different ways to modify a source tree. Patches are exact (not fuzzy) and must be applied in precise order, but through the theory of patches they can be commuted (altered to apply in a different order) without changing the end result. Sometimes a patch depends on another so they can not be commuted. Sometimes two patchs conflict (they typically come from different developers) and the end result is undecidable (ambigous) untill the conflict is resolved with a new patch. - **named patch**: A collection of primitive patches, recorded together and given a name, date, author and possibly a longer description. The `NamedPatch `_ is identified by a hash name that is (supposed to be) globally unique. The patch can now travel around the world to make its changes included in other repositories, or it can be excluded to return to an older version in a (copy of a) repository. - **composite patch** : *TODO* - **split patch** : *TODO* - **patch set** : *TODO* (refering to the `PatchSet `_ type in the code) - :: [[(PatchInfo, Maybe Patch)]] - why a list of lists? It seems that each inner list corresponds to a checkpoint, that is, each inner list contains the patches up to that checkpoint. I get this by by studying ``DarcsRepo.read_repo_private``and could well be wrong - why ``Maybe``? `PatchSet `_.lhs mentions something about marking patches clean... it probably has something to do with that - **patch bundle** : *TODO* - **unwind**: *TODO*