Merge branch 'master' into ghc7.0
This commit is contained in:
commit
4f1a0eca6c
12 changed files with 25 additions and 16 deletions
|
@ -28,8 +28,8 @@ type Params = [String]
|
|||
type Flags = [Annex ()]
|
||||
|
||||
{- Runs the passed command line. -}
|
||||
dispatch :: Bool -> Params -> [Command] -> [Option] -> String -> IO Git.Repo -> IO ()
|
||||
dispatch oneshot args cmds commonoptions header getgitrepo = do
|
||||
dispatch :: Params -> [Command] -> [Option] -> String -> IO Git.Repo -> IO ()
|
||||
dispatch args cmds commonoptions header getgitrepo = do
|
||||
setupConsole
|
||||
r <- E.try getgitrepo :: IO (Either E.SomeException Git.Repo)
|
||||
case r of
|
||||
|
@ -39,7 +39,7 @@ dispatch oneshot args cmds commonoptions header getgitrepo = do
|
|||
(actions, state') <- Annex.run state $ do
|
||||
sequence_ flags
|
||||
prepCommand cmd params
|
||||
tryRun state' cmd $ [startup] ++ actions ++ [shutdown oneshot]
|
||||
tryRun state' cmd $ [startup] ++ actions ++ [shutdown $ cmdoneshot cmd]
|
||||
where
|
||||
(flags, cmd, params) = parseCmd args cmds commonoptions header
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
module Command (
|
||||
command,
|
||||
noRepo,
|
||||
oneShot,
|
||||
withOptions,
|
||||
next,
|
||||
stop,
|
||||
|
@ -39,7 +40,11 @@ import Annex.CheckAttr
|
|||
|
||||
{- Generates a normal command -}
|
||||
command :: String -> String -> [CommandSeek] -> String -> Command
|
||||
command = Command [] Nothing commonChecks
|
||||
command = Command [] Nothing commonChecks False
|
||||
|
||||
{- Makes a command run in oneshot mode. -}
|
||||
oneShot :: Command -> Command
|
||||
oneShot c = c { cmdoneshot = True }
|
||||
|
||||
{- Adds a fallback action to a command, that will be run if it's used
|
||||
- outside a git repository. -}
|
||||
|
|
|
@ -12,7 +12,7 @@ import Command
|
|||
import Annex.UUID
|
||||
|
||||
def :: [Command]
|
||||
def = [command "configlist" paramNothing seek
|
||||
def = [oneShot $ command "configlist" paramNothing seek
|
||||
"outputs relevant git configuration"]
|
||||
|
||||
seek :: [CommandSeek]
|
||||
|
|
|
@ -14,7 +14,7 @@ import Logs.Location
|
|||
import Annex.Content
|
||||
|
||||
def :: [Command]
|
||||
def = [command "dropkey" (paramRepeating paramKey) seek
|
||||
def = [oneShot $ command "dropkey" (paramRepeating paramKey) seek
|
||||
"drops annexed content for specified keys"]
|
||||
|
||||
seek :: [CommandSeek]
|
||||
|
|
|
@ -12,7 +12,7 @@ import Command
|
|||
import Annex.Content
|
||||
|
||||
def :: [Command]
|
||||
def = [command "inannex" (paramRepeating paramKey) seek
|
||||
def = [oneShot $ command "inannex" (paramRepeating paramKey) seek
|
||||
"checks if keys are present in the annex"]
|
||||
|
||||
seek :: [CommandSeek]
|
||||
|
|
|
@ -14,7 +14,7 @@ import Annex.Content
|
|||
import Utility.RsyncFile
|
||||
|
||||
def :: [Command]
|
||||
def = [command "recvkey" paramKey seek
|
||||
def = [oneShot $ command "recvkey" paramKey seek
|
||||
"runs rsync in server mode to receive content"]
|
||||
|
||||
seek :: [CommandSeek]
|
||||
|
|
|
@ -13,7 +13,7 @@ import Annex.Content
|
|||
import Utility.RsyncFile
|
||||
|
||||
def :: [Command]
|
||||
def = [command "sendkey" paramKey seek
|
||||
def = [oneShot $ command "sendkey" paramKey seek
|
||||
"runs rsync in server mode to send content"]
|
||||
|
||||
seek :: [CommandSeek]
|
||||
|
|
|
@ -11,10 +11,9 @@ import Common.Annex
|
|||
import Command
|
||||
import qualified Build.SysConfig as SysConfig
|
||||
import Annex.Version
|
||||
import CmdLine
|
||||
|
||||
def :: [Command]
|
||||
def = [noRepo showPackageVersion $ dontCheck repoExists $
|
||||
def = [oneShot $ noRepo showPackageVersion $ dontCheck repoExists $
|
||||
command "version" paramNothing seek "show version info"]
|
||||
|
||||
seek :: [CommandSeek]
|
||||
|
@ -29,9 +28,7 @@ start = do
|
|||
putStrLn $ "default repository version: " ++ defaultVersion
|
||||
putStrLn $ "supported repository versions: " ++ vs supportedVersions
|
||||
putStrLn $ "upgrade supported from repository versions: " ++ vs upgradableVersions
|
||||
-- avoid normal cleanup
|
||||
_ <- shutdown True
|
||||
liftIO exitSuccess
|
||||
stop
|
||||
where
|
||||
vs = join " "
|
||||
|
||||
|
|
|
@ -129,4 +129,4 @@ header :: String
|
|||
header = "Usage: git-annex command [option ..]"
|
||||
|
||||
run :: [String] -> IO ()
|
||||
run args = dispatch False args cmds options header Git.Construct.fromCurrent
|
||||
run args = dispatch args cmds options header Git.Construct.fromCurrent
|
||||
|
|
|
@ -36,6 +36,7 @@ data Command = Command
|
|||
{ cmdoptions :: [Option] -- command-specific options
|
||||
, cmdnorepo :: Maybe (IO ()) -- an action to run when not in a repo
|
||||
, cmdcheck :: [CommandCheck] -- check stage
|
||||
, cmdoneshot :: Bool -- don't save state after running
|
||||
, cmdname :: String
|
||||
, cmdparamdesc :: String -- description of params for usage
|
||||
, cmdseek :: [CommandSeek] -- seek stage
|
||||
|
|
6
doc/forum/fsck_gives_false_positives.mdwn
Normal file
6
doc/forum/fsck_gives_false_positives.mdwn
Normal file
|
@ -0,0 +1,6 @@
|
|||
Hi,
|
||||
|
||||
I use git-annex 3.20120123 on a debian-testing amd-64 machine with software RAID6 and LVM2 on it. I needed to move the whole `/home` directory to another LV (the new LV is on encrypted PV, the old LV is encrypted and not properly aligned; I'm changing from encrypted `/home` only to encrypted everything except `/boot`), so I have used the `rsync -aAXH` from a `ro` mounted `/home` to a new LV mounted on `/mnt/home_2`. After the move was complete I run the `git annex fsck` on my (4TB of) data. The fsck finds some files bad, and moves them to the `..../bad` directory. So far so good, this is how it should be, right? But then- I have a file with sha1sum of all my files. So - I checked the 'bad' file against that. It was OK. Then I computed the SHA256 of the file - this is used by `git annex fsck`. It was OK, too. So how did it happen, that the file was marked as bad? Do I miss something here? Could it be related to the hardware (HDDs) and silent data corruption? Or is it the undesirable effect of rsync? Or maybe the fsck is at fault here?
|
||||
|
||||
Any ideas?
|
||||
|
|
@ -82,7 +82,7 @@ builtins = map cmdname cmds
|
|||
builtin :: String -> String -> [String] -> IO ()
|
||||
builtin cmd dir params = do
|
||||
checkNotReadOnly cmd
|
||||
dispatch True (cmd : filterparams params) cmds options header $
|
||||
dispatch (cmd : filterparams params) cmds options header $
|
||||
Git.Construct.repoAbsPath dir >>= Git.Construct.fromAbsPath
|
||||
|
||||
external :: [String] -> IO ()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue