diff options
author | Joey Hess <joey@kitenet.net> | 2011-06-22 21:19:52 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-06-22 21:21:09 -0400 |
commit | c4e6730042e64e3b2f92626aee4a6b38a8f9c70c (patch) | |
tree | 569c5539530a40e24890eb267f0f54ddf24c2282 | |
parent | c0fbd3017f215cd61d79d24e110ce177e4823089 (diff) |
commit git-annex branch when copying to a remote (locally)
Otherwise, the location log changes are only staged in its index,
and this can confuse matters if pulling or cloning from the remote.
The test suite was failing because this wasn't done.
-rw-r--r-- | CmdLine.hs | 7 | ||||
-rw-r--r-- | Content.hs | 11 | ||||
-rw-r--r-- | Remote/Git.hs | 3 |
3 files changed, 13 insertions, 8 deletions
diff --git a/CmdLine.hs b/CmdLine.hs index d10516bb9..ab7236847 100644 --- a/CmdLine.hs +++ b/CmdLine.hs @@ -19,7 +19,7 @@ import Control.Monad (when) import qualified Annex import qualified AnnexQueue import qualified GitRepo as Git -import qualified Branch +import Content import Types import Command import BackendList @@ -103,9 +103,6 @@ startup = do {- Cleanup actions. -} shutdown :: Annex Bool shutdown = do - AnnexQueue.flush False - Branch.commit "update" - + saveState liftIO $ Git.reap - return True diff --git a/Content.hs b/Content.hs index 45653fc9e..d733ad8b3 100644 --- a/Content.hs +++ b/Content.hs @@ -19,7 +19,8 @@ module Content ( removeAnnex, fromAnnex, moveBad, - getKeysPresent + getKeysPresent, + saveState ) where import System.IO.Error (try) @@ -37,6 +38,8 @@ import LocationLog import UUID import qualified GitRepo as Git import qualified Annex +import qualified AnnexQueue +import qualified Branch import Utility import StatFS import Types.Key @@ -263,3 +266,9 @@ getKeysPresent' dir = do case result of Right s -> return $ isRegularFile s Left _ -> return False + +{- Things to do to record changes to content. -} +saveState :: Annex () +saveState = do + AnnexQueue.flush False + Branch.commit "update" diff --git a/Remote/Git.hs b/Remote/Git.hs index 5b9d5d3df..c8290c9a7 100644 --- a/Remote/Git.hs +++ b/Remote/Git.hs @@ -17,7 +17,6 @@ import Types import Types.Remote import qualified GitRepo as Git import qualified Annex -import qualified AnnexQueue import Locations import UUID import Utility @@ -147,7 +146,7 @@ copyToRemote r key Annex.eval a $ do ok <- Content.getViaTmp key $ rsyncOrCopyFile r keysrc - AnnexQueue.flush True + Content.saveState return ok | Git.repoIsSsh r = do g <- Annex.gitRepo |