This commit is contained in:
Joey Hess 2010-10-16 19:57:56 -04:00
parent be5b1defeb
commit c69e747d38
2 changed files with 23 additions and 18 deletions

View file

@ -114,13 +114,7 @@ addCmd file = inBackend file err $ do
liftIO $ createDirectoryIfMissing True (parentDir dest)
liftIO $ renameFile file dest
liftIO $ createSymbolicLink (link ++ reldest) file
nocommit <- Annex.flagIsSet NoCommit
if (not nocommit)
then do
liftIO $ Git.run g ["add", file]
liftIO $ Git.run g ["commit", "-m",
("git-annex annexed " ++ file), file]
else return ()
gitAdd file $ Just $ "git-annex annexed " ++ file
{- Inverse of addCmd. -}
unannexCmd :: FilePath -> Annex ()
@ -201,11 +195,7 @@ describeCmd description = do
u <- getUUID g
describeUUID u description
log <- uuidLog
nocommit <- Annex.flagIsSet NoCommit
if (not nocommit)
then liftIO $ Git.run g ["add", log]
else return ()
Annex.flagChange NeedCommit True
gitAdd log Nothing -- all logs are committed at end
liftIO $ putStrLn "description set"
{- Updates the LocationLog when a key's presence changes. -}
@ -214,11 +204,7 @@ logStatus key status = do
g <- Annex.gitRepo
u <- getUUID g
f <- liftIO $ logChange g key u status
nocommit <- Annex.flagIsSet NoCommit
if (not nocommit)
then liftIO $ Git.run g ["add", f]
else return ()
Annex.flagChange NeedCommit True
gitAdd f Nothing -- all logs are committed at end
inBackend file yes no = do
r <- liftIO $ Backend.lookupFile file

21
Core.hs
View file

@ -2,6 +2,7 @@
module Core where
import Maybe
import System.IO
import System.Directory
import Control.Monad.State (liftIO)
@ -61,4 +62,22 @@ inAnnex key = do
g <- Annex.gitRepo
liftIO $ doesFileExist $ annexLocation g key
{- -}
{- Adds, optionally also commits a file to git.
-
- All changes to the git repository should go through this function.
-
- This is careful to not rely on the index. It may have staged changes,
- so only use operations that avoid committing such changes.
-}
gitAdd :: FilePath -> Maybe String -> Annex ()
gitAdd file commitmessage = do
nocommit <- Annex.flagIsSet NoCommit
if (nocommit)
then Annex.flagChange NeedCommit True
else do
g <- Annex.gitRepo
liftIO $ Git.run g ["add", file]
if (isJust commitmessage)
then liftIO $ Git.run g ["commit", "-m",
(fromJust commitmessage), file]
else return ()