darcs-2.10.2: a distributed, interactive, smart revision control system

Safe HaskellNone




hashBundle :: (PatchListFormat p, ShowPatchBasic p) => FL (Named p) wX wY -> String Source

hashBundle creates a SHA1 string of a given a FL of named patches. This allows us to ensure that the patches in a received patchBundle have not been modified in transit.

makeBundle2 :: (ApplyState p ~ Tree, RepoPatch p) => Maybe (Tree IO) -> RL (PatchInfoAnd p) wStart wX -> FL (Named p) wX wY -> FL (Named p) wX wY -> IO Doc Source

In makeBundle2, it is presumed that the two patch sequences are identical, but that they may be lazily generated. If two different patch sequences are passed, a bundle with a mismatched hash will be generated, which is not the end of the world, but isn't very useful either.

makeBundleN :: (ApplyState p ~ Tree, RepoPatch p) => Maybe (Tree IO) -> PatchSet p wStart wX -> FL (Named p) wX wY -> IO Doc Source

scanContextFile :: RepoPatch p => FilePath -> IO (PatchSet p Origin wX) Source

scanContextFile scans the context in the file of the given name.

patchFilename :: String -> String Source

patchFilename maps a patch description string to a safe (lowercased, spaces removed and ascii-only characters) patch filename.

getContext :: ByteString -> ([PatchInfo], ByteString) Source

getContext parses a context list, returning a tuple containing the list, and remaining ByteString input.

minContext :: RepoPatch p => PatchSet p wStart wB -> FL (PatchInfoAnd p) wB wC -> Sealed ((PatchSet p :> FL (PatchInfoAnd p)) wStart) Source

Minimize the context of a bundle to be sent, taking into account the patches selected to be sent