License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | unix |
Safe Haskell | None |
Language | Haskell98 |
- data Git
- configGetAll :: Git -> IO [Config]
- configGet :: Git -> String -> String -> IO (Maybe String)
- newtype Config = Config [Section]
- data Section = Section {
- sectionName :: String
- sectionKVs :: [(String, String)]
- type HTree = [(ModePerm, EntName, HTreeEnt)]
- data HTreeEnt
- newtype RefName = RefName {
- refNameRaw :: String
- getCommitMaybe :: Git -> Ref -> IO (Maybe Commit)
- getCommit :: Git -> Ref -> IO Commit
- getTreeMaybe :: Git -> Ref -> IO (Maybe Tree)
- getTree :: Git -> Ref -> IO Tree
- rewrite :: Git -> (Commit -> IO Commit) -> Revision -> Int -> IO Ref
- buildHTree :: Git -> Tree -> IO HTree
- resolvePath :: Git -> Ref -> EntPath -> IO (Maybe Ref)
- resolveTreeish :: Git -> Ref -> IO (Maybe Tree)
- resolveRevision :: Git -> Revision -> IO (Maybe Ref)
- initRepo :: FilePath -> IO ()
- isRepo :: FilePath -> IO Bool
- branchWrite :: Git -> RefName -> Ref -> IO ()
- branchList :: Git -> IO (Set RefName)
- tagWrite :: Git -> RefName -> Ref -> IO ()
- tagList :: Git -> IO (Set RefName)
- headSet :: Git -> Either Ref RefName -> IO ()
- headGet :: Git -> IO (Either Ref RefName)
Documentation
Config
configGetAll :: Git -> IO [Config] Source
Read the Config
:: Git | Git context |
-> String | section name |
-> String | key name |
-> IO (Maybe String) | The resulting value if it exists |
Get a configuration element from the config file, starting from the local repository config file, then the global config file.
for example the equivalent to git config user.name is:
configGet git "user" "name"
Section | |
|
Trees
hierarchy tree, either a reference to a blob (file) or a tree (directory).
getCommit :: Git -> Ref -> IO Commit Source
get a specified commit but raises an exception if doesn't exists or type is not appropriate
:: Git | Repository |
-> (Commit -> IO Commit) | Mapping function |
-> Revision | revision to start from |
-> Int | the number of parents to map |
-> IO Ref | return the new head REF |
Rewrite a set of commits from a revision and returns the new ref.
If during revision traversal (diving) there's a commit with zero or multiple parents then the traversal will stop regardless of the amount of parent requested.
calling "rewrite f 2 (revisionOf d)" on the following tree:
a <-- b <-- c <-- d
result in the following tree after mapping with f:
a <-- f(b) <-- f(c) <-- f(d)
resolve the ref (tree or blob) related to a path at a specific commit ref
resolveTreeish :: Git -> Ref -> IO (Maybe Tree) Source
returns a tree from a ref that might be either a commit, a tree or a tag.
resolveRevision :: Git -> Revision -> IO (Maybe Ref) Source
try to resolve a string to a specific commit ref for example: HEAD, HEAD^, master~3, shortRef
named refs manipulation
Write a branch to point to a specific reference
Write a tag to point to a specific reference
Set head to point to either a reference or a branch name.