improve bare repo handing

Many more commands can work in bare repos now, thanks to the git-annex
branch.
This commit is contained in:
Joey Hess 2011-06-22 18:32:41 -04:00
parent 944c51ba26
commit 80302d0b46
11 changed files with 23 additions and 31 deletions

View file

@ -20,7 +20,7 @@ seek :: [CommandSeek]
seek = [withWords start]
start :: CommandStartWords
start ws = notBareRepo $ do
start ws = do
let (name, description) =
case ws of
(n:d) -> (n,unwords d)

View file

@ -64,11 +64,11 @@ verifyLocationLog key file = do
case (present, u `elem` uuids) of
(True, False) -> do
fix u ValuePresent
fix g u ValuePresent
-- There is no data loss, so do not fail.
return True
(False, True) -> do
fix u ValueMissing
fix g u ValueMissing
warning $
"** Based on the location log, " ++ file
++ "\n** was expected to be present, " ++
@ -77,6 +77,6 @@ verifyLocationLog key file = do
_ -> return True
where
fix u s = do
fix g u s = do
showNote "fixing location log"
logStatusFor u key s
logChange g key u s

View file

@ -8,7 +8,7 @@
module Command.Init where
import Control.Monad.State (liftIO)
import Control.Monad (when)
import Control.Monad (when, unless)
import System.Directory
import Command
@ -44,7 +44,8 @@ perform description = do
u <- getUUID g
setVersion
describeUUID u description
gitPreCommitHookWrite g
unless (Git.repoIsLocalBare g) $
gitPreCommitHookWrite g
next $ return True
{- set up a git pre-commit hook, if one is not already present -}

View file

@ -30,7 +30,7 @@ seek :: [CommandSeek]
seek = [withWords start]
start :: CommandStartWords
start ws = notBareRepo $ do
start ws = do
when (null ws) $ needname
(u, c) <- findByName name

View file

@ -51,12 +51,12 @@ showAction False file = showStart "copy" file
{- Used to log a change in a remote's having a key. The change is logged
- in the local repo, not on the remote. The process of transferring the
- key to the remote, or removing the key from it *may* log the change
- on the remote, but this cannot be relied on. For example, it's not done
- for bare repos. -}
- on the remote, but this cannot be relied on. -}
remoteHasKey :: Remote.Remote Annex -> Key -> Bool -> Annex ()
remoteHasKey remote key present = do
let remoteuuid = Remote.uuid remote
logStatusFor remoteuuid key status
g <- Annex.gitRepo
logChange g key remoteuuid status
where
status = if present then ValuePresent else ValueMissing

View file

@ -21,7 +21,7 @@ seek :: [CommandSeek]
seek = [withWords start]
start :: CommandStartWords
start ws = notBareRepo $ do
start ws = do
let name = unwords ws
showStart "semitrust" name
u <- Remote.nameToUUID name

View file

@ -21,7 +21,7 @@ seek :: [CommandSeek]
seek = [withWords start]
start :: CommandStartWords
start ws = notBareRepo $ do
start ws = do
let name = unwords ws
showStart "trust" name
u <- Remote.nameToUUID name

View file

@ -21,7 +21,7 @@ seek :: [CommandSeek]
seek = [withWords start]
start :: CommandStartWords
start ws = notBareRepo $ do
start ws = do
let name = unwords ws
showStart "untrust" name
u <- Remote.nameToUUID name