gitlib-3.1.1: API library for working with Git repositories

Safe HaskellNone
LanguageHaskell98

Git.Types

Synopsis

Documentation

type RefName = Text #

class (Applicative m, Monad m, MonadThrow m, IsOid (Oid r), Show (Oid r), Eq (Oid r), Ord (Oid r)) => MonadGit r m | m -> r where #

Repository is the central point of contact between user code and Git data objects. Every object must belong to some repository.

Associated Types

type Oid r :: * #

data Tree r :: * #

data Options r :: * #

data RepositoryFactory n m r #

Constructors

RepositoryFactory 

Fields

 

class IsOid o where #

Methods

renderOid :: o -> Text #

renderObjOid :: Tagged a o -> Text #

Instances

type BlobOid r = Tagged r (Oid r) #

type TreeOid r = Tagged (Tree r) (Oid r) #

type CommitOid r = Tagged (Commit r) (Oid r) #

type TagOid r = Tagged (Tag r) (Oid r) #

parseObjOid :: MonadGit r m => forall o. Text -> m (Tagged o (Oid r)) #

copyOid :: (MonadGit r m, MonadGit s n) => Oid r -> n (Oid s) #

newtype SHA #

Constructors

SHA 

Fields

Instances

Eq SHA # 

Methods

(==) :: SHA -> SHA -> Bool #

(/=) :: SHA -> SHA -> Bool #

Ord SHA # 

Methods

compare :: SHA -> SHA -> Ordering #

(<) :: SHA -> SHA -> Bool #

(<=) :: SHA -> SHA -> Bool #

(>) :: SHA -> SHA -> Bool #

(>=) :: SHA -> SHA -> Bool #

max :: SHA -> SHA -> SHA #

min :: SHA -> SHA -> SHA #

Read SHA # 
Show SHA # 

Methods

showsPrec :: Int -> SHA -> ShowS #

show :: SHA -> String #

showList :: [SHA] -> ShowS #

Hashable SHA # 

Methods

hashWithSalt :: Int -> SHA -> Int #

hash :: SHA -> Int #

IsOid SHA # 

textToSha :: Monad m => Text -> m SHA #

 

data Blob r m #

Constructors

Blob 

Fields

 

newtype TreeT r m a #

Constructors

TreeT 

Fields

data TreeEntry r #

Constructors

BlobEntry 
TreeEntry 

Fields

CommitEntry 

Fields

 
 

data Tag r #

Constructors

Tag 

Fields

 

data Object r m #

Constructors

BlobObj !(Blob r m) 
TreeObj !(Tree r) 
CommitObj !(Commit r) 
TagObj !(Tag r) 

objectOid :: MonadGit r m => Object r m -> m (Oid r) #

loadObject :: MonadGit r m => ObjectOid r -> m (Object r m) #

objectToObjOid :: MonadGit r m => Object r m -> m (ObjectOid r) #

 

data RefTarget r #

Constructors

RefObj !(Oid r) 
RefSymbolic !RefName 
 

data ModificationKind #

 

data GitException #

There is a separate GitException for each possible failure when interacting with the Git repository.