improve bare repo handing
Many more commands can work in bare repos now, thanks to the git-annex branch.
This commit is contained in:
parent
944c51ba26
commit
80302d0b46
11 changed files with 23 additions and 31 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 -}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue