packages feed

gitlib 2.1.0.0 → 2.2.0.0

raw patch · 6 files changed

+77/−76 lines, 6 filesdep −unix

Dependencies removed: unix

Files

Git/Commit/Push.hs view
@@ -8,6 +8,7 @@ import           Data.List import           Data.Maybe import           Data.Monoid+import           Data.Tagged import           Data.Text (Text) import           Data.Traversable (for) import           Git.Commit@@ -24,7 +25,7 @@            => CommitOid m -> Text -> t m (CommitOid (t m)) pushCommit coid remoteRefName = do     commits <- mapM copyCommitOid =<< lift (listCommits Nothing coid)-    mrref   <- resolveReference remoteRefName+    mrref   <- fmap Tagged `liftM` resolveReference remoteRefName     mrref'  <- for mrref $ \rref ->         if rref `elem` commits         then lift $ copyCommitOid rref
Git/Reference.hs view
@@ -1,20 +1,12 @@ module Git.Reference where -import Control.Applicative import Git.Types -resolveReference :: Repository m => RefName -> m (Maybe (CommitOid m))+resolveReference :: Repository m => RefName -> m (Maybe (Oid m)) resolveReference name = do     mref <- lookupReference name     maybe (return Nothing) referenceToOid mref -referenceToOid :: Repository m => RefTarget m -> m (Maybe (CommitOid m))+referenceToOid :: Repository m => RefTarget m -> m (Maybe (Oid m)) referenceToOid (RefObj oid)       = return $ Just oid referenceToOid (RefSymbolic name) = resolveReference name--resolveReferenceTree :: Repository m => RefName -> m (Maybe (Tree m))-resolveReferenceTree refName = do-    c <- resolveReference refName-    case c of-        Nothing -> return Nothing-        Just c' -> Just <$> (lookupCommit c' >>= lookupTree . commitTree)
Git/Repository.hs view
@@ -3,16 +3,15 @@ import qualified Control.Exception.Lifted as Exc import           Control.Monad import           Control.Monad.IO.Class-import           Control.Monad.Trans.Class import           Data.Conduit import           Git.Types import           System.Directory import           System.Mem -withNewRepository :: (Repository (t m), MonadGit (t m),-                      MonadBaseControl IO m, MonadIO m, MonadTrans t)+withNewRepository :: (Repository t, MonadGit t,+                      MonadBaseControl IO m, MonadIO m)                   => RepositoryFactory t m c-                  -> FilePath -> t m a -> m a+                  -> FilePath -> t a -> m a withNewRepository factory path action = do     liftIO $ do         exists <- doesDirectoryExist path@@ -31,9 +30,9 @@      return a -withNewRepository' :: (Repository (t m), MonadGit (t m),-                       MonadBaseControl IO m, MonadIO m, MonadTrans t)-                   => RepositoryFactory t m c -> FilePath -> t m a -> m a+withNewRepository' :: (Repository t, MonadGit t,+                       MonadBaseControl IO m, MonadIO m)+                   => RepositoryFactory t m c -> FilePath -> t a -> m a withNewRepository' factory path action =     Exc.bracket_ recover recover $         withRepository' factory (defaultOptions factory)@@ -52,11 +51,11 @@     startupBackend fact     Exc.finally f (liftIO performGC >> shutdownBackend fact) -withRepository' :: (Repository (t m), MonadTrans t,+withRepository' :: (Repository t,                     MonadBaseControl IO m, MonadIO m)                 => RepositoryFactory t m c                 -> RepositoryOptions-                -> t m a+                -> t a                 -> m a withRepository' factory opts action =     Exc.bracket@@ -64,11 +63,11 @@         (closeRepository factory)         (flip (runRepository factory) action) -withRepository :: (Repository (t m), MonadTrans t,+withRepository :: (Repository t,                    MonadBaseControl IO m, MonadIO m)                => RepositoryFactory t m c                -> FilePath-               -> t m a+               -> t a                -> m a withRepository factory path =     withRepository' factory
Git/Tree/Builder.hs view
@@ -38,7 +38,6 @@ import           Data.Text (Text) import           Data.Word import           Git.Types-import           System.Posix.ByteString.FilePath  data ModifyTreeResult m = TreeEntryNotFound                         | TreeEntryDeleted
Git/Types.hs view
@@ -6,7 +6,6 @@ import           Control.Monad.IO.Class import qualified Data.Binary as Bin import           Data.ByteString (ByteString)-import qualified Data.ByteString as B import qualified Data.ByteString.Base16 as B16 import           Data.Conduit import           Data.Default@@ -20,8 +19,10 @@ import qualified Data.Text.Encoding as T import           Data.Time import           Data.Typeable-import           System.Posix.ByteString.FilePath+--import           System.Posix.ByteString.FilePath +type RawFilePath = ByteString+ data RepositoryFacts = RepositoryFacts     { hasSymbolicReferences :: !Bool     } deriving Show@@ -56,15 +57,15 @@      -- Object lookup     lookupCommit  :: CommitOid m -> m (Commit m)-    lookupTree    :: TreeOid m   -> m (Tree m)-    lookupBlob    :: BlobOid m   -> m (Blob m)-    lookupTag     :: TagOid m    -> m (Tag m)-    lookupObject  :: Oid m       -> m (Object m)-    existsObject  :: Oid m       -> m Bool+    lookupTree    :: TreeOid m -> m (Tree m)+    lookupBlob    :: BlobOid m -> m (Blob m)+    lookupTag     :: TagOid m -> m (Tag m)+    lookupObject  :: Oid m -> m (Object m)+    existsObject  :: Oid m -> m Bool     sourceObjects :: Maybe (CommitOid m)    -- ^ A commit we may already have                   -> CommitOid m            -- ^ The commit we need                   -> Bool                   -- ^ Include commit trees also?-                  -> Source m (ObjectOid m) -- ^ All the objects in between+                  -> Producer m (ObjectOid m) -- ^ All the objects in between      -- Working with trees     newTreeBuilder :: Maybe (Tree m) -> m (TreeBuilder m)@@ -73,6 +74,9 @@     treeEntry :: Tree m -> TreeFilePath -> m (Maybe (TreeEntry m))     listTreeEntries :: Tree m -> m [(TreeFilePath, TreeEntry m)] +    diffContentsWithTree :: Source m (Either TreeFilePath ByteString)+                         -> Tree m -> Producer m ByteString+     -- Creating other objects     hashContents :: BlobContents m -> m (BlobOid m)     createBlob   :: BlobContents m -> m (BlobOid m)@@ -107,11 +111,12 @@ instance Default RepositoryOptions where     def = RepositoryOptions "" True True -data RepositoryFactory t m c = RepositoryFactory+data RepositoryFactory t m c+    = RepositoryFactory     { openRepository  :: RepositoryOptions -> m c-    , runRepository   :: forall a. c -> t m a -> m a+    , runRepository   :: forall a. c -> t a -> m a     , closeRepository :: c -> m ()-    , getRepository   :: t m c+    , getRepository   :: t c     , defaultOptions  :: !RepositoryOptions     , startupBackend  :: m ()     , shutdownBackend :: m ()@@ -140,7 +145,7 @@ copyOid :: (Repository m, Repository n) => Oid m -> n (Oid n) copyOid = parseOid . renderOid -newtype SHA = SHA B.ByteString deriving (Eq, Ord, Read)+newtype SHA = SHA { getSHA :: ByteString } deriving (Eq, Ord, Read)  shaToText :: SHA -> Text shaToText (SHA bs) = T.decodeUtf8 (B16.encode bs)@@ -294,14 +299,14 @@ untagObjOid (TagObjOid oid)    = untag oid  {- $references -}-data RefTarget m = RefObj !(CommitOid m) | RefSymbolic !RefName+data RefTarget m = RefObj !(Oid m) | RefSymbolic !RefName  instance Repository m => Show (RefTarget m) where-    show (RefObj coid) = "RefObj#" ++ T.unpack (renderObjOid coid)+    show (RefObj oid) = "RefObj#" ++ T.unpack (renderOid oid)     show (RefSymbolic name) = "RefSymbolic#" ++ T.unpack name  commitRefTarget :: Commit m -> RefTarget m-commitRefTarget = RefObj . commitOid+commitRefTarget = RefObj . untag . commitOid  {- $merges -} data ModificationKind = Unchanged | Modified | Added | Deleted | TypeChanged@@ -386,42 +391,48 @@ {- $exceptions -} -- | There is a separate 'GitException' for each possible failure when --   interacting with the Git repository.-data GitException = BackendError Text-                  | GitError Text-                  | RepositoryNotExist-                  | RepositoryInvalid-                  | RepositoryCannotAccess Text-                  | BlobCreateFailed-                  | BlobEmptyCreateFailed-                  | BlobEncodingUnknown Text-                  | BlobLookupFailed-                  | PushNotFastForward Text-                  | TranslationException Text-                  | TreeCreateFailed Text-                  | TreeBuilderCreateFailed-                  | TreeBuilderInsertFailed TreeFilePath-                  | TreeBuilderRemoveFailed TreeFilePath-                  | TreeBuilderWriteFailed Text-                  | TreeLookupFailed-                  | TreeCannotTraverseBlob-                  | TreeCannotTraverseCommit-                  | TreeEntryLookupFailed TreeFilePath-                  | TreeUpdateFailed-                  | TreeWalkFailed-                  | TreeEmptyCreateFailed-                  | CommitCreateFailed-                  | CommitLookupFailed Text-                  | ReferenceCreateFailed RefName-                  | ReferenceDeleteFailed RefName-                  | RefCannotCreateFromPartialOid-                  | ReferenceListingFailed-                  | ReferenceLookupFailed RefName-                  | ObjectLookupFailed Text Int-                  | ObjectRefRequiresFullOid-                  | OidCopyFailed-                  | OidParseFailed Text-                  | QuotaHardLimitExceeded Int Int-                  deriving (Eq, Show, Typeable)+data GitException+    = BackendError Text+    | GitError Text+    | RepositoryNotExist+    | RepositoryInvalid+    | RepositoryCannotAccess Text+    | BlobCreateFailed Text+    | BlobEmptyCreateFailed+    | BlobEncodingUnknown Text+    | BlobLookupFailed+    | DiffBlobFailed Text+    | DiffPrintToPatchFailed Text+    | DiffTreeToIndexFailed Text+    | IndexAddFailed TreeFilePath Text+    | IndexCreateFailed Text+    | PushNotFastForward Text+    | TranslationException Text+    | TreeCreateFailed Text+    | TreeBuilderCreateFailed+    | TreeBuilderInsertFailed TreeFilePath+    | TreeBuilderRemoveFailed TreeFilePath+    | TreeBuilderWriteFailed Text+    | TreeLookupFailed+    | TreeCannotTraverseBlob+    | TreeCannotTraverseCommit+    | TreeEntryLookupFailed TreeFilePath+    | TreeUpdateFailed+    | TreeWalkFailed+    | TreeEmptyCreateFailed+    | CommitCreateFailed+    | CommitLookupFailed Text+    | ReferenceCreateFailed RefName+    | ReferenceDeleteFailed RefName+    | RefCannotCreateFromPartialOid+    | ReferenceListingFailed+    | ReferenceLookupFailed RefName+    | ObjectLookupFailed Text Int+    | ObjectRefRequiresFullOid+    | OidCopyFailed+    | OidParseFailed Text+    | QuotaHardLimitExceeded Int Int+    deriving (Eq, Show, Typeable)  -- jww (2013-02-11): Create a BackendException data constructor of forall -- e. Exception e => BackendException e, so that each can throw a derived
gitlib.cabal view
@@ -1,5 +1,5 @@ Name:                gitlib-Version:             2.1.0.0+Version:             2.2.0.0 Synopsis:            API library for working with Git repositories License-file:        LICENSE License:             MIT@@ -54,7 +54,6 @@         , text                 >= 0.11.2         , time                 >= 1.4         , transformers         >= 0.3.0.0-        , unix                 >= 2.5         , unordered-containers >= 0.2.3.0     exposed-modules:         Git