summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-10-17 18:52:09 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-10-17 18:52:09 -0400
commit335c06171ac9a45a76b3b92d647615142bcc6ba0 (patch)
tree138cff5c4acafc75156f526d49b3cbdb52b7fdb7
parentbb6707020d08f7509c21c1229088bb6017438caf (diff)
commit logs at end; faster
-rw-r--r--Backend/File.hs4
-rw-r--r--Commands.hs6
-rw-r--r--Core.hs20
3 files changed, 14 insertions, 16 deletions
diff --git a/Backend/File.hs b/Backend/File.hs
index f7796532b..9b81bef9a 100644
--- a/Backend/File.hs
+++ b/Backend/File.hs
@@ -116,6 +116,8 @@ checkRemoveKey key = do
then retNotEnoughCopiesKnown remotes numcopies
else findcopies numcopies remotes []
where
+ config = "annex.numcopies"
+
findcopies 0 _ _ = return True -- success, enough copies found
findcopies _ [] bad = notEnoughCopiesSeen bad
findcopies n (r:rs) bad = do
@@ -151,5 +153,3 @@ checkRemoveKey key = do
showLongNote $ "According to the " ++ config ++
" setting, it is not safe to remove it!"
showLongNote "(Use --force to override.)"
-
- config = "annex.numcopies"
diff --git a/Commands.hs b/Commands.hs
index 028c458ca..9a79e9d0c 100644
--- a/Commands.hs
+++ b/Commands.hs
@@ -123,7 +123,7 @@ addCmd file = inBackend file $ do
liftIO $ renameFile file dest
link <- calcGitLink file key
liftIO $ createSymbolicLink link file
- gitAdd file $ Just $ "git-annex annexed " ++ file
+ gitAdd file $ "git-annex annexed " ++ file
showEndOk
{- Undo addCmd. -}
@@ -212,7 +212,7 @@ fixCmd file = notinBackend file $ \(key, backend) -> do
liftIO $ createDirectoryIfMissing True (parentDir file)
liftIO $ removeFile file
liftIO $ createSymbolicLink link file
- gitAdd file $ Just $ "git-annex fix " ++ file
+ gitAdd file $ "git-annex fix " ++ file
showEndOk
{- Stores description for the repository. -}
@@ -227,7 +227,7 @@ initCmd description = do
u <- getUUID g
describeUUID u description
log <- uuidLog
- gitAdd log $ Just $ "description for UUID " ++ (show u)
+ gitAdd log $ "description for UUID " ++ (show u)
liftIO $ putStrLn "description set"
-- helpers
diff --git a/Core.hs b/Core.hs
index 302e304e4..5f63002c1 100644
--- a/Core.hs
+++ b/Core.hs
@@ -34,8 +34,10 @@ shutdown = do
nocommit <- Annex.flagIsSet NoCommit
needcommit <- Annex.flagIsSet NeedCommit
if (needcommit && not nocommit)
- then liftIO $ Git.run g ["commit", "-q", "-m",
- "git-annex log update", gitStateDir g]
+ then do
+ liftIO $ Git.run g ["add", gitStateDir g]
+ liftIO $ Git.run g ["commit", "-q", "-m",
+ "git-annex log update", gitStateDir g]
else return ()
-- clean up any files left in the temp directory
@@ -75,14 +77,12 @@ 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.
+{- Adds and commits a file to git.
-
- 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 :: FilePath -> String -> Annex ()
gitAdd file commitmessage = do
nocommit <- Annex.flagIsSet NoCommit
if (nocommit)
@@ -90,10 +90,8 @@ gitAdd file commitmessage = do
else do
g <- Annex.gitRepo
liftIO $ Git.run g ["add", file]
- if (isJust commitmessage)
- then liftIO $ Git.run g ["commit", "--quiet",
- "-m", (fromJust commitmessage), file]
- else Annex.flagChange NeedCommit True
+ liftIO $ Git.run g ["commit", "--quiet",
+ "-m", commitmessage, file]
{- Calculates the relative path to use to link a file to a key. -}
calcGitLink :: FilePath -> Key -> Annex FilePath
@@ -112,7 +110,7 @@ logStatus key status = do
g <- Annex.gitRepo
u <- getUUID g
f <- liftIO $ logChange g key u status
- gitAdd f Nothing -- all logs are committed at end
+ Annex.flagChange NeedCommit True -- commit all logs at end
{- Output logging -}
showStart :: String -> String -> Annex ()