The file matching options are now only accepted by commands that can actually use them.
This commit is contained in:
parent
52424dc382
commit
8066a1c3cc
24 changed files with 118 additions and 77 deletions
|
@ -1,6 +1,6 @@
|
||||||
{- git-annex options
|
{- git-annex options
|
||||||
-
|
-
|
||||||
- Copyright 2010, 2013 Joey Hess <id@joeyh.name>
|
- Copyright 2010-2015 Joey Hess <id@joeyh.name>
|
||||||
-
|
-
|
||||||
- Licensed under the GNU GPL version 3 or higher.
|
- Licensed under the GNU GPL version 3 or higher.
|
||||||
-}
|
-}
|
||||||
|
@ -22,6 +22,8 @@ import qualified Limit.Wanted
|
||||||
import CmdLine.Option
|
import CmdLine.Option
|
||||||
import CmdLine.Usage
|
import CmdLine.Usage
|
||||||
|
|
||||||
|
-- Options that are accepted by all git-annex sub-commands,
|
||||||
|
-- although not always used.
|
||||||
gitAnnexOptions :: [Option]
|
gitAnnexOptions :: [Option]
|
||||||
gitAnnexOptions = commonOptions ++
|
gitAnnexOptions = commonOptions ++
|
||||||
[ Option ['N'] ["numcopies"] (ReqArg setnumcopies paramNumber)
|
[ Option ['N'] ["numcopies"] (ReqArg setnumcopies paramNumber)
|
||||||
|
@ -34,11 +36,48 @@ gitAnnexOptions = commonOptions ++
|
||||||
"override trust setting to untrusted"
|
"override trust setting to untrusted"
|
||||||
, Option ['c'] ["config"] (ReqArg setgitconfig "NAME=VALUE")
|
, Option ['c'] ["config"] (ReqArg setgitconfig "NAME=VALUE")
|
||||||
"override git configuration setting"
|
"override git configuration setting"
|
||||||
, Option ['x'] ["exclude"] (ReqArg Limit.addExclude paramGlob)
|
, Option [] ["user-agent"] (ReqArg setuseragent paramName)
|
||||||
"skip files matching the glob pattern"
|
"override default User-Agent"
|
||||||
, Option ['I'] ["include"] (ReqArg Limit.addInclude paramGlob)
|
, Option [] ["trust-glacier"] (NoArg (Annex.setFlag "trustglacier"))
|
||||||
"limit to files matching the glob pattern"
|
"Trust Amazon Glacier inventory"
|
||||||
, Option ['i'] ["in"] (ReqArg Limit.addIn paramRemote)
|
]
|
||||||
|
where
|
||||||
|
trustArg t = ReqArg (Remote.forceTrust t) paramRemote
|
||||||
|
setnumcopies v = maybe noop
|
||||||
|
(\n -> Annex.changeState $ \s -> s { Annex.forcenumcopies = Just $ NumCopies n })
|
||||||
|
(readish v)
|
||||||
|
setuseragent v = Annex.changeState $ \s -> s { Annex.useragent = Just v }
|
||||||
|
setgitconfig v = inRepo (Git.Config.store v)
|
||||||
|
>>= pure . (\r -> r { gitGlobalOpts = gitGlobalOpts r ++ [Param "-c", Param v] })
|
||||||
|
>>= Annex.changeGitRepo
|
||||||
|
|
||||||
|
-- Options for matching on annexed keys, rather than work tree files.
|
||||||
|
keyOptions :: [Option]
|
||||||
|
keyOptions =
|
||||||
|
[ Option ['A'] ["all"] (NoArg (Annex.setFlag "all"))
|
||||||
|
"operate on all versions of all files"
|
||||||
|
, Option ['U'] ["unused"] (NoArg (Annex.setFlag "unused"))
|
||||||
|
"operate on files found by last run of git-annex unused"
|
||||||
|
, Option [] ["key"] (ReqArg (Annex.setField "key") paramKey)
|
||||||
|
"operate on specified key"
|
||||||
|
]
|
||||||
|
|
||||||
|
-- Options to match properties of annexed files.
|
||||||
|
annexedMatchingOptions :: [Option]
|
||||||
|
annexedMatchingOptions = concat
|
||||||
|
[ nonWorkTreeMatchingOptions'
|
||||||
|
, fileMatchingOptions'
|
||||||
|
, combiningOptions
|
||||||
|
, [timeLimitOption]
|
||||||
|
]
|
||||||
|
|
||||||
|
-- Matching options that don't need to examine work tree files.
|
||||||
|
nonWorkTreeMatchingOptions :: [Option]
|
||||||
|
nonWorkTreeMatchingOptions = nonWorkTreeMatchingOptions' ++ combiningOptions
|
||||||
|
|
||||||
|
nonWorkTreeMatchingOptions' :: [Option]
|
||||||
|
nonWorkTreeMatchingOptions' =
|
||||||
|
[ Option ['i'] ["in"] (ReqArg Limit.addIn paramRemote)
|
||||||
"match files present in a remote"
|
"match files present in a remote"
|
||||||
, Option ['C'] ["copies"] (ReqArg Limit.addCopies paramNumber)
|
, Option ['C'] ["copies"] (ReqArg Limit.addCopies paramNumber)
|
||||||
"skip files with fewer copies"
|
"skip files with fewer copies"
|
||||||
|
@ -50,43 +89,42 @@ gitAnnexOptions = commonOptions ++
|
||||||
"match files using a key-value backend"
|
"match files using a key-value backend"
|
||||||
, Option [] ["inallgroup"] (ReqArg Limit.addInAllGroup paramGroup)
|
, Option [] ["inallgroup"] (ReqArg Limit.addInAllGroup paramGroup)
|
||||||
"match files present in all remotes in a group"
|
"match files present in all remotes in a group"
|
||||||
, Option [] ["largerthan"] (ReqArg Limit.addLargerThan paramSize)
|
|
||||||
"match files larger than a size"
|
|
||||||
, Option [] ["smallerthan"] (ReqArg Limit.addSmallerThan paramSize)
|
|
||||||
"match files smaller than a size"
|
|
||||||
, Option [] ["metadata"] (ReqArg Limit.addMetaData "FIELD=VALUE")
|
, Option [] ["metadata"] (ReqArg Limit.addMetaData "FIELD=VALUE")
|
||||||
"match files with attached metadata"
|
"match files with attached metadata"
|
||||||
, Option [] ["want-get"] (NoArg Limit.Wanted.addWantGet)
|
, Option [] ["want-get"] (NoArg Limit.Wanted.addWantGet)
|
||||||
"match files the repository wants to get"
|
"match files the repository wants to get"
|
||||||
, Option [] ["want-drop"] (NoArg Limit.Wanted.addWantDrop)
|
, Option [] ["want-drop"] (NoArg Limit.Wanted.addWantDrop)
|
||||||
"match files the repository wants to drop"
|
"match files the repository wants to drop"
|
||||||
, Option ['T'] ["time-limit"] (ReqArg Limit.addTimeLimit paramTime)
|
|
||||||
"stop after the specified amount of time"
|
|
||||||
, Option [] ["user-agent"] (ReqArg setuseragent paramName)
|
|
||||||
"override default User-Agent"
|
|
||||||
, Option [] ["trust-glacier"] (NoArg (Annex.setFlag "trustglacier"))
|
|
||||||
"Trust Amazon Glacier inventory"
|
|
||||||
] ++ matcherOptions
|
|
||||||
where
|
|
||||||
trustArg t = ReqArg (Remote.forceTrust t) paramRemote
|
|
||||||
setnumcopies v = maybe noop
|
|
||||||
(\n -> Annex.changeState $ \s -> s { Annex.forcenumcopies = Just $ NumCopies n })
|
|
||||||
(readish v)
|
|
||||||
setuseragent v = Annex.changeState $ \s -> s { Annex.useragent = Just v }
|
|
||||||
setgitconfig v = inRepo (Git.Config.store v)
|
|
||||||
>>= pure . (\r -> r { gitGlobalOpts = gitGlobalOpts r ++ [Param "-c", Param v] })
|
|
||||||
>>= Annex.changeGitRepo
|
|
||||||
|
|
||||||
keyOptions :: [Option]
|
|
||||||
keyOptions =
|
|
||||||
[ Option ['A'] ["all"] (NoArg (Annex.setFlag "all"))
|
|
||||||
"operate on all versions of all files"
|
|
||||||
, Option ['U'] ["unused"] (NoArg (Annex.setFlag "unused"))
|
|
||||||
"operate on files found by last run of git-annex unused"
|
|
||||||
, Option [] ["key"] (ReqArg (Annex.setField "key") paramKey)
|
|
||||||
"operate on specified key"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
-- Options to match files which may not yet be annexed.
|
||||||
|
fileMatchingOptions :: [Option]
|
||||||
|
fileMatchingOptions = fileMatchingOptions' ++ combiningOptions
|
||||||
|
|
||||||
|
fileMatchingOptions' :: [Option]
|
||||||
|
fileMatchingOptions' =
|
||||||
|
[ Option ['x'] ["exclude"] (ReqArg Limit.addExclude paramGlob)
|
||||||
|
"skip files matching the glob pattern"
|
||||||
|
, Option ['I'] ["include"] (ReqArg Limit.addInclude paramGlob)
|
||||||
|
"limit to files matching the glob pattern"
|
||||||
|
, Option [] ["largerthan"] (ReqArg Limit.addLargerThan paramSize)
|
||||||
|
"match files larger than a size"
|
||||||
|
, Option [] ["smallerthan"] (ReqArg Limit.addSmallerThan paramSize)
|
||||||
|
"match files smaller than a size"
|
||||||
|
]
|
||||||
|
|
||||||
|
combiningOptions :: [Option]
|
||||||
|
combiningOptions =
|
||||||
|
[ longopt "not" "negate next option"
|
||||||
|
, longopt "and" "both previous and next option must match"
|
||||||
|
, longopt "or" "either previous or next option must match"
|
||||||
|
, shortopt "(" "open group of options"
|
||||||
|
, shortopt ")" "close group of options"
|
||||||
|
]
|
||||||
|
where
|
||||||
|
longopt o = Option [] [o] $ NoArg $ Limit.addToken o
|
||||||
|
shortopt o = Option o [] $ NoArg $ Limit.addToken o
|
||||||
|
|
||||||
fromOption :: Option
|
fromOption :: Option
|
||||||
fromOption = fieldOption ['f'] "from" paramRemote "source remote"
|
fromOption = fieldOption ['f'] "from" paramRemote "source remote"
|
||||||
|
|
||||||
|
@ -99,3 +137,8 @@ fromToOptions = [fromOption, toOption]
|
||||||
jsonOption :: Option
|
jsonOption :: Option
|
||||||
jsonOption = Option ['j'] ["json"] (NoArg (Annex.setOutput JSONOutput))
|
jsonOption = Option ['j'] ["json"] (NoArg (Annex.setOutput JSONOutput))
|
||||||
"enable JSON output"
|
"enable JSON output"
|
||||||
|
|
||||||
|
timeLimitOption :: Option
|
||||||
|
timeLimitOption = Option ['T'] ["time-limit"]
|
||||||
|
(ReqArg Limit.addTimeLimit paramTime)
|
||||||
|
"stop after the specified amount of time"
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
module CmdLine.Option (
|
module CmdLine.Option (
|
||||||
commonOptions,
|
commonOptions,
|
||||||
matcherOptions,
|
|
||||||
flagOption,
|
flagOption,
|
||||||
fieldOption,
|
fieldOption,
|
||||||
optionName,
|
optionName,
|
||||||
|
@ -21,9 +20,9 @@ import Common.Annex
|
||||||
import qualified Annex
|
import qualified Annex
|
||||||
import Types.Messages
|
import Types.Messages
|
||||||
import Types.DesktopNotify
|
import Types.DesktopNotify
|
||||||
import Limit
|
|
||||||
import CmdLine.Usage
|
import CmdLine.Usage
|
||||||
|
|
||||||
|
-- Options accepted by both git-annex and git-annex-shell sub-commands.
|
||||||
commonOptions :: [Option]
|
commonOptions :: [Option]
|
||||||
commonOptions =
|
commonOptions =
|
||||||
[ Option [] ["force"] (NoArg (setforce True))
|
[ Option [] ["force"] (NoArg (setforce True))
|
||||||
|
@ -56,18 +55,6 @@ commonOptions =
|
||||||
unsetdebug = Annex.changeGitConfig $ \c -> c { annexDebug = False }
|
unsetdebug = Annex.changeGitConfig $ \c -> c { annexDebug = False }
|
||||||
setdesktopnotify v = Annex.changeState $ \s -> s { Annex.desktopnotify = Annex.desktopnotify s <> v }
|
setdesktopnotify v = Annex.changeState $ \s -> s { Annex.desktopnotify = Annex.desktopnotify s <> v }
|
||||||
|
|
||||||
matcherOptions :: [Option]
|
|
||||||
matcherOptions =
|
|
||||||
[ longopt "not" "negate next option"
|
|
||||||
, longopt "and" "both previous and next option must match"
|
|
||||||
, longopt "or" "either previous or next option must match"
|
|
||||||
, shortopt "(" "open group of options"
|
|
||||||
, shortopt ")" "close group of options"
|
|
||||||
]
|
|
||||||
where
|
|
||||||
longopt o = Option [] [o] $ NoArg $ addToken o
|
|
||||||
shortopt o = Option o [] $ NoArg $ addToken o
|
|
||||||
|
|
||||||
{- An option that sets a flag. -}
|
{- An option that sets a flag. -}
|
||||||
flagOption :: String -> String -> String -> Option
|
flagOption :: String -> String -> String -> Option
|
||||||
flagOption short opt description =
|
flagOption short opt description =
|
||||||
|
|
|
@ -55,7 +55,7 @@ noRepo a c = c { cmdnorepo = Just a }
|
||||||
|
|
||||||
{- Adds options to a command. -}
|
{- Adds options to a command. -}
|
||||||
withOptions :: [Option] -> Command -> Command
|
withOptions :: [Option] -> Command -> Command
|
||||||
withOptions o c = c { cmdoptions = o }
|
withOptions o c = c { cmdoptions = cmdoptions c ++ o }
|
||||||
|
|
||||||
{- For start and perform stages to indicate what step to run next. -}
|
{- For start and perform stages to indicate what step to run next. -}
|
||||||
next :: a -> Annex (Maybe a)
|
next :: a -> Annex (Maybe a)
|
||||||
|
|
|
@ -35,9 +35,11 @@ import Utility.Tmp
|
||||||
import Control.Exception (IOException)
|
import Control.Exception (IOException)
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [notBareRepo $ withOptions [includeDotFilesOption] $
|
cmd = [notBareRepo $ withOptions addOptions $
|
||||||
command "add" paramPaths seek SectionCommon
|
command "add" paramPaths seek SectionCommon "add files to annex"]
|
||||||
"add files to annex"]
|
|
||||||
|
addOptions :: [Option]
|
||||||
|
addOptions = includeDotFilesOption : fileMatchingOptions
|
||||||
|
|
||||||
includeDotFilesOption :: Option
|
includeDotFilesOption :: Option
|
||||||
includeDotFilesOption = flagOption [] "include-dotfiles" "don't skip dotfiles"
|
includeDotFilesOption = flagOption [] "include-dotfiles" "don't skip dotfiles"
|
||||||
|
|
|
@ -23,9 +23,12 @@ import Annex.Notification
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [withOptions [dropFromOption] $ command "drop" paramPaths seek
|
cmd = [withOptions (dropOptions) $ command "drop" paramPaths seek
|
||||||
SectionCommon "indicate content of files not currently wanted"]
|
SectionCommon "indicate content of files not currently wanted"]
|
||||||
|
|
||||||
|
dropOptions :: [Option]
|
||||||
|
dropOptions = dropFromOption : annexedMatchingOptions
|
||||||
|
|
||||||
dropFromOption :: Option
|
dropFromOption :: Option
|
||||||
dropFromOption = fieldOption ['f'] "from" paramRemote "drop content from a remote"
|
dropFromOption = fieldOption ['f'] "from" paramRemote "drop content from a remote"
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,8 @@ import Utility.DataUnits
|
||||||
import Types.Key
|
import Types.Key
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [mkCommand $ command "find" paramPaths seek SectionQuery "lists available files"]
|
cmd = [withOptions annexedMatchingOptions $ mkCommand $
|
||||||
|
command "find" paramPaths seek SectionQuery "lists available files"]
|
||||||
|
|
||||||
mkCommand :: Command -> Command
|
mkCommand :: Command -> Command
|
||||||
mkCommand = noCommit . noMessages . withOptions [formatOption, print0Option, jsonOption]
|
mkCommand = noCommit . noMessages . withOptions [formatOption, print0Option, jsonOption]
|
||||||
|
|
|
@ -11,8 +11,9 @@ import Command
|
||||||
import qualified Command.Find as Find
|
import qualified Command.Find as Find
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [Find.mkCommand $ command "findref" paramRef seek SectionPlumbing
|
cmd = [withOptions nonWorkTreeMatchingOptions $ Find.mkCommand $
|
||||||
"lists files in a git ref"]
|
command "findref" paramRef seek SectionPlumbing
|
||||||
|
"lists files in a git ref"]
|
||||||
|
|
||||||
seek :: CommandSeek
|
seek :: CommandSeek
|
||||||
seek refs = do
|
seek refs = do
|
||||||
|
|
|
@ -19,8 +19,9 @@ import Utility.Touch
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [notDirect $ noCommit $ command "fix" paramPaths seek
|
cmd = [notDirect $ noCommit $ withOptions annexedMatchingOptions $
|
||||||
SectionMaintenance "fix up symlinks to point to annexed content"]
|
command "fix" paramPaths seek
|
||||||
|
SectionMaintenance "fix up symlinks to point to annexed content"]
|
||||||
|
|
||||||
seek :: CommandSeek
|
seek :: CommandSeek
|
||||||
seek = withFilesInGit $ whenAnnexed start
|
seek = withFilesInGit $ whenAnnexed start
|
||||||
|
|
|
@ -62,7 +62,7 @@ fsckOptions =
|
||||||
, startIncrementalOption
|
, startIncrementalOption
|
||||||
, moreIncrementalOption
|
, moreIncrementalOption
|
||||||
, incrementalScheduleOption
|
, incrementalScheduleOption
|
||||||
] ++ keyOptions
|
] ++ keyOptions ++ annexedMatchingOptions
|
||||||
|
|
||||||
seek :: CommandSeek
|
seek :: CommandSeek
|
||||||
seek ps = do
|
seek ps = do
|
||||||
|
|
|
@ -21,7 +21,7 @@ cmd = [withOptions getOptions $ command "get" paramPaths seek
|
||||||
SectionCommon "make content of annexed files available"]
|
SectionCommon "make content of annexed files available"]
|
||||||
|
|
||||||
getOptions :: [Option]
|
getOptions :: [Option]
|
||||||
getOptions = fromOption : keyOptions
|
getOptions = fromOption : annexedMatchingOptions ++ keyOptions
|
||||||
|
|
||||||
seek :: CommandSeek
|
seek :: CommandSeek
|
||||||
seek ps = do
|
seek ps = do
|
||||||
|
|
|
@ -26,7 +26,7 @@ opts =
|
||||||
, deduplicateOption
|
, deduplicateOption
|
||||||
, cleanDuplicatesOption
|
, cleanDuplicatesOption
|
||||||
, skipDuplicatesOption
|
, skipDuplicatesOption
|
||||||
]
|
] ++ fileMatchingOptions
|
||||||
|
|
||||||
duplicateOption :: Option
|
duplicateOption :: Option
|
||||||
duplicateOption = flagOption [] "duplicate" "do not delete source files"
|
duplicateOption = flagOption [] "duplicate" "do not delete source files"
|
||||||
|
|
|
@ -77,7 +77,7 @@ emptyStatInfo = StatInfo Nothing Nothing M.empty Nothing
|
||||||
type StatState = StateT StatInfo Annex
|
type StatState = StateT StatInfo Annex
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [noCommit $ dontCheck repoExists $ withOptions [jsonOption] $
|
cmd = [noCommit $ dontCheck repoExists $ withOptions (jsonOption : annexedMatchingOptions) $
|
||||||
command "info" (paramOptional $ paramRepeating paramItem) seek SectionQuery
|
command "info" (paramOptional $ paramRepeating paramItem) seek SectionQuery
|
||||||
"shows information about the specified item or the repository as a whole"]
|
"shows information about the specified item or the repository as a whole"]
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,9 @@ import qualified Annex
|
||||||
import Git.Types (RemoteName)
|
import Git.Types (RemoteName)
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [noCommit $ withOptions [allrepos] $ command "list" paramPaths seek
|
cmd = [noCommit $ withOptions (allrepos : annexedMatchingOptions) $
|
||||||
SectionQuery "show which remotes contain files"]
|
command "list" paramPaths seek
|
||||||
|
SectionQuery "show which remotes contain files"]
|
||||||
|
|
||||||
allrepos :: Option
|
allrepos :: Option
|
||||||
allrepos = flagOption [] "allrepos" "show all repositories, not only remotes"
|
allrepos = flagOption [] "allrepos" "show all repositories, not only remotes"
|
||||||
|
|
|
@ -13,7 +13,8 @@ import qualified Annex.Queue
|
||||||
import qualified Annex
|
import qualified Annex
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [notDirect $ command "lock" paramPaths seek SectionCommon
|
cmd = [notDirect $ withOptions annexedMatchingOptions $
|
||||||
|
command "lock" paramPaths seek SectionCommon
|
||||||
"undo unlock command"]
|
"undo unlock command"]
|
||||||
|
|
||||||
seek :: CommandSeek
|
seek :: CommandSeek
|
||||||
|
|
|
@ -39,7 +39,7 @@ cmd = [withOptions options $
|
||||||
command "log" paramPaths seek SectionQuery "shows location log"]
|
command "log" paramPaths seek SectionQuery "shows location log"]
|
||||||
|
|
||||||
options :: [Option]
|
options :: [Option]
|
||||||
options = passthruOptions ++ [gourceOption]
|
options = passthruOptions ++ [gourceOption] ++ annexedMatchingOptions
|
||||||
|
|
||||||
passthruOptions :: [Option]
|
passthruOptions :: [Option]
|
||||||
passthruOptions = map odate ["since", "after", "until", "before"] ++
|
passthruOptions = map odate ["since", "after", "until", "before"] ++
|
||||||
|
|
|
@ -28,7 +28,7 @@ metaDataOptions =
|
||||||
, untagOption
|
, untagOption
|
||||||
, getOption
|
, getOption
|
||||||
, jsonOption
|
, jsonOption
|
||||||
] ++ keyOptions
|
] ++ keyOptions ++ annexedMatchingOptions
|
||||||
|
|
||||||
storeModMeta :: ModMeta -> Annex ()
|
storeModMeta :: ModMeta -> Annex ()
|
||||||
storeModMeta modmeta = Annex.changeState $
|
storeModMeta modmeta = Annex.changeState $
|
||||||
|
|
|
@ -18,7 +18,7 @@ import qualified Command.ReKey
|
||||||
import qualified Command.Fsck
|
import qualified Command.Fsck
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [notDirect $
|
cmd = [notDirect $ withOptions annexedMatchingOptions $
|
||||||
command "migrate" paramPaths seek
|
command "migrate" paramPaths seek
|
||||||
SectionUtility "switch data to different backend"]
|
SectionUtility "switch data to different backend"]
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ import qualified Annex
|
||||||
import Config.NumCopies
|
import Config.NumCopies
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [withOptions (fromToOptions ++ keyOptions) $
|
cmd = [withOptions (fromToOptions ++ annexedMatchingOptions ++ keyOptions) $
|
||||||
command "mirror" paramPaths seek
|
command "mirror" paramPaths seek
|
||||||
SectionCommon "mirror content of files to/from another repository"]
|
SectionCommon "mirror content of files to/from another repository"]
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ cmd = [withOptions moveOptions $ command "move" paramPaths seek
|
||||||
SectionCommon "move content of files to/from another repository"]
|
SectionCommon "move content of files to/from another repository"]
|
||||||
|
|
||||||
moveOptions :: [Option]
|
moveOptions :: [Option]
|
||||||
moveOptions = fromToOptions ++ keyOptions
|
moveOptions = fromToOptions ++ keyOptions ++ annexedMatchingOptions
|
||||||
|
|
||||||
seek :: CommandSeek
|
seek :: CommandSeek
|
||||||
seek ps = do
|
seek ps = do
|
||||||
|
|
|
@ -23,7 +23,8 @@ import Utility.CopyFile
|
||||||
import Command.PreCommit (lockPreCommitHook)
|
import Command.PreCommit (lockPreCommitHook)
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [command "unannex" paramPaths seek SectionUtility
|
cmd = [withOptions annexedMatchingOptions $
|
||||||
|
command "unannex" paramPaths seek SectionUtility
|
||||||
"undo accidential add command"]
|
"undo accidential add command"]
|
||||||
|
|
||||||
seek :: CommandSeek
|
seek :: CommandSeek
|
||||||
|
|
|
@ -19,7 +19,8 @@ cmd =
|
||||||
, c "edit" "same as unlock"
|
, c "edit" "same as unlock"
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
c n = notDirect . command n paramPaths seek SectionCommon
|
c n = notDirect . withOptions annexedMatchingOptions
|
||||||
|
. command n paramPaths seek SectionCommon
|
||||||
|
|
||||||
seek :: CommandSeek
|
seek :: CommandSeek
|
||||||
seek = withFilesInGit $ whenAnnexed start
|
seek = withFilesInGit $ whenAnnexed start
|
||||||
|
|
|
@ -16,7 +16,7 @@ import Logs.Trust
|
||||||
import Logs.Web
|
import Logs.Web
|
||||||
|
|
||||||
cmd :: [Command]
|
cmd :: [Command]
|
||||||
cmd = [noCommit $ withOptions (jsonOption : keyOptions) $
|
cmd = [noCommit $ withOptions (jsonOption : annexedMatchingOptions ++ keyOptions) $
|
||||||
command "whereis" paramPaths seek SectionQuery
|
command "whereis" paramPaths seek SectionQuery
|
||||||
"lists repositories that have file content"]
|
"lists repositories that have file content"]
|
||||||
|
|
||||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -8,6 +8,8 @@ git-annex (5.20150206) UNRELEASED; urgency=medium
|
||||||
expression.
|
expression.
|
||||||
* import: Support file matching options such as --exclude, --include,
|
* import: Support file matching options such as --exclude, --include,
|
||||||
--smallerthan, --largerthan
|
--smallerthan, --largerthan
|
||||||
|
* The file matching options are now only accepted by commands that
|
||||||
|
can actually use them, instead of by all commands.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Fri, 06 Feb 2015 13:57:08 -0400
|
-- Joey Hess <id@joeyh.name> Fri, 06 Feb 2015 13:57:08 -0400
|
||||||
|
|
||||||
|
|
|
@ -992,9 +992,6 @@ subdirectories).
|
||||||
This is similar to the find command, but instead of finding files in the
|
This is similar to the find command, but instead of finding files in the
|
||||||
current work tree, it finds files in the specified git ref.
|
current work tree, it finds files in the specified git ref.
|
||||||
|
|
||||||
Most MATCHING OPTIONS can be used with findref, to limit the files it
|
|
||||||
finds. However, the --include and --exclude options will not work.
|
|
||||||
|
|
||||||
* `proxy -- git cmd [options]`
|
* `proxy -- git cmd [options]`
|
||||||
|
|
||||||
Only useful in a direct mode repository, this runs the specified git
|
Only useful in a direct mode repository, this runs the specified git
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue