gitlib-s3 1.4.1 → 2.0.0.0
raw patch · 2 files changed
+19/−27 lines, 2 filesdep ~gitlibdep ~gitlib-libgit2dep ~gitlib-s3
Dependency ranges changed: gitlib, gitlib-libgit2, gitlib-s3, gitlib-test
Files
- Git/S3.hs +12/−20
- gitlib-s3.cabal +7/−7
Git/S3.hs view
@@ -563,29 +563,23 @@ (RequestBodyLBS lbs)) void $ readResponseIO res -type RefMap m = M.HashMap Text (Maybe (Git.Reference (LgRepository m)))+type RefMap m = M.HashMap Text (Maybe (Git.RefTarget (LgRepository m))) -- jww (2013-04-26): Split these off into a gitlib-aeson library.-instance A.FromJSON (Reference m) where+instance A.FromJSON (RefTarget m) where parseJSON j = do o <- A.parseJSON j case L.lookup "symbolic" (M.toList (o :: A.Object)) of- Just _ -> Git.Reference- <$> o .: "symbolic"- <*> (Git.RefSymbolic <$> o .: "target")- Nothing -> Git.Reference- <$> o .: "name"- <*> (Git.RefObj . go <$> o .: "target")+ Just _ -> Git.RefSymbolic <$> o .: "symbolic-target"+ Nothing -> Git.RefObj . go <$> o .: "oid-target" where go = return . mkOid . unsafePerformIO . strToOid -instance Git.MonadGit m => A.ToJSON (Reference m) where- toJSON (Git.Reference name (Git.RefSymbolic target)) =- object [ "symbolic" .= name- , "target" .= target ]- toJSON (Git.Reference name (Git.RefObj oid)) =- object [ "name" .= name- , "target" .= coidToJSON (getOid (unTagged oid)) ]+instance Git.MonadGit m => A.ToJSON (RefTarget m) where+ toJSON (Git.RefSymbolic target) =+ object [ "symbolic-target" .= target ]+ toJSON (Git.RefObj oid) =+ object [ "oid-target" .= coidToJSON (getOid (unTagged oid)) ] readRefs :: Ptr C'git_odb_backend -> IO (Maybe (RefMap m)) readRefs be = do@@ -623,13 +617,11 @@ where go repoPtr namePtr ref ptr = do r <- case ref of- Just Git.Reference- { Git.referenceTarget = Git.RefSymbolic target } ->+ Just (Git.RefSymbolic target) -> withCString (T.unpack target) $ \targetPtr -> c'git_reference_symbolic_create ptr repoPtr namePtr targetPtr 1- Just Git.Reference {- Git.referenceTarget = Git.RefObj (Tagged coid) } ->+ Just (Git.RefObj (Tagged coid)) -> withForeignPtr (getOid coid) $ \coidPtr -> c'git_reference_create ptr repoPtr namePtr coidPtr 1 _ -> return 0@@ -637,7 +629,7 @@ mirrorRefsToS3 :: Git.MonadGit m => Ptr C'git_odb_backend -> LgRepository m () mirrorRefsToS3 be = do- names <- Git.allReferenceNames+ names <- Git.listReferences refs <- mapM Git.lookupReference names liftIO $ writeRefs be (M.fromList (L.zip names refs))
gitlib-s3.cabal view
@@ -1,5 +1,5 @@ Name: gitlib-s3-Version: 1.4.1+Version: 2.0.0.0 Synopsis: Gitlib repository backend for storing Git objects in Amazon S3 Description: Gitlib repository backend for storing Git objects in Amazon S3. License-file: LICENSE@@ -22,10 +22,10 @@ hs-source-dirs: test build-depends: base >=3- , gitlib >= 1.4.0- , gitlib-s3 >= 1.4.1- , gitlib-test >= 1.4.0- , gitlib-libgit2 >= 1.4.1+ , gitlib >= 2.0.0.0+ , gitlib-s3 >= 2.0.0.0+ , gitlib-test >= 2.0.0.0+ , gitlib-libgit2 >= 2.0.0.0 , hlibgit2 >= 0.18.0.7 , aws >= 0.7.5 , HUnit >= 1.2.5@@ -45,8 +45,8 @@ default-language: Haskell98 build-depends: base >= 3 && < 5- , gitlib >= 1.4.0- , gitlib-libgit2 >= 1.4.1+ , gitlib >= 2.0.0.0+ , gitlib-libgit2 >= 2.0.0.0 , ghc-prim , hlibgit2 >= 0.18.0.1 , HUnit >= 1.2.5