- newtype RepoFormat = RF [[RepoProperty]]
- data RepoProperty
- identifyRepoFormat :: String -> IO RepoFormat
- tryIdentifyRepoFormat :: String -> IO (Either String RepoFormat)
- createRepoFormat :: [DarcsFlag] -> RepoFormat
- writeRepoFormat :: RepoFormat -> FilePath -> IO ()
- writeProblem :: RepoFormat -> Maybe String
- readProblem :: RepoFormat -> Maybe String
- readfromAndWritetoProblem :: RepoFormat -> RepoFormat -> Maybe String
- formatHas :: RepoProperty -> RepoFormat -> Bool
RepoFormat is the representation of the format of a repository. Each
sublist corresponds to a line in the format file.
identifyRepoFormat URL identifies the format of the repository at the
given address. Fails if we weren't able to identify the format.
tryIdentifyRepoFormat URL identifies the format of the repository at the
given address. Return
Left reason if it fails, where
reason explains why
we weren't able to identify the format. Note that we do no verification of
the format, which is handled by
writeProblem on the
Create a repo format, given a list of flags - based on workingdir/format.
writeRepoFormat writes the repo format to the given file.
writeProblem form tells if we can write to a repo in format
first checking if we can read that repo It returns
Nothing if there's no
problem writing to such a repository.
readProblem form tells if we can read from a repo in format
Nothing if there's no problem reading from such a repository.
readfromAndWritetoProblem form tells if we can read from one and write
to another repo format, returning
Nothing if there's no problem.