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

Safe HaskellNone




data PatchInfo Source #

A PatchInfo value contains the metadata of a patch. The date, name, author and log fields are UTF-8 encoded text in darcs 2.4 and later, and just sequences of bytes (decoded with whatever is the locale when displayed) in earlier darcs.

The members with names that start with '_' are not supposed to be used directly in code that does not care how the patch info is stored.

patchinfo :: String -> String -> String -> [String] -> IO PatchInfo Source #

patchinfo date name author log constructs a new PatchInfo value with the given details, automatically assigning an Ignore-this header to guarantee the patch is unique. The function does not verify the date string's sanity.

addJunk :: PatchInfo -> IO PatchInfo Source #

addJunk adds a line that contains a random number to make the patch unique.

makePatchname :: PatchInfo -> SHA1 Source #

Hash on patch metadata (patch name, author, date, log, and "inverted" flag. Robust against context changes but does not garantee patch contents. Usually used as matcher or patch identifier (see Darcs.Patch.Match).

readPatchInfo :: ParserM m => m PatchInfo Source #

Parser for PatchInfo as stored in patch bundles and inventory files, for example:

[Document the foo interface
John Doe <john.doe@example.com>**20110615084241
 Ignore-this: 85b94f67d377c4ab671101266ef9c229
 Nobody knows what a 'foo' is, so describe it.

See showPatchInfo for the inverse operation.

justName :: PatchInfo -> String Source #

Get the name, including an "UNDO: " prefix if the patch is inverted.

justAuthor :: PatchInfo -> String Source #

Returns the author of a patch.

piName :: PatchInfo -> String Source #

Returns the name of the patch. Unlike justName, it does not preprend "UNDO: " to the name if the patch is inverted.

piAuthor :: PatchInfo -> String Source #

Returns the author of a patch.

piTag :: PatchInfo -> Maybe String Source #

Get the tag name, if the patch is a tag patch.

piLog :: PatchInfo -> [String] Source #

Get the log message of a patch.