24838547e2
* At long last there's a way to hide annexed files whose content is missing from the working tree: git-annex adjust --hide-missing * When already in an adjusted branch, running git-annex adjust again will update the branch as needed. This is mostly useful with --hide-missing to hide/unhide files after their content has been dropped or received. Still needs integration with sync and the assistant, and not as fast as it could be, but already usable. This commit was sponsored by Ethan Aubin.
51 lines
1.3 KiB
Haskell
51 lines
1.3 KiB
Haskell
{- git-annex command
|
|
-
|
|
- Copyright 2016-2018 Joey Hess <id@joeyh.name>
|
|
-
|
|
- Licensed under the GNU GPL version 3 or higher.
|
|
-}
|
|
|
|
module Command.Adjust where
|
|
|
|
import Command
|
|
import Annex.AdjustedBranch
|
|
|
|
cmd :: Command
|
|
cmd = notBareRepo $ notDirect $ noDaemonRunning $
|
|
command "adjust" SectionSetup "enter adjusted branch"
|
|
paramNothing (seek <$$> optParser)
|
|
|
|
optParser :: CmdParamsDesc -> Parser Adjustment
|
|
optParser _ =
|
|
(LinkAdjustment <$> linkAdjustmentParser)
|
|
<|> (PresenceAdjustment <$> presenceAdjustmentParser <*> maybeLinkAdjustmentParser)
|
|
|
|
linkAdjustmentParser :: Parser LinkAdjustment
|
|
linkAdjustmentParser =
|
|
flag' UnlockAdjustment
|
|
( long "unlock"
|
|
<> help "unlock annexed files"
|
|
)
|
|
<|> flag' FixAdjustment
|
|
( long "fix"
|
|
<> help "fix symlinks to annnexed files"
|
|
)
|
|
|
|
maybeLinkAdjustmentParser :: Parser (Maybe LinkAdjustment)
|
|
maybeLinkAdjustmentParser = Just <$> linkAdjustmentParser <|> pure Nothing
|
|
|
|
presenceAdjustmentParser :: Parser PresenceAdjustment
|
|
presenceAdjustmentParser =
|
|
flag' HideMissingAdjustment
|
|
( long "hide-missing"
|
|
<> help "hide annexed files whose content is not present"
|
|
)
|
|
|
|
seek :: Adjustment -> CommandSeek
|
|
seek = commandAction . start
|
|
|
|
start :: Adjustment -> CommandStart
|
|
start adj = do
|
|
checkVersionSupported
|
|
showStart' "adjust" Nothing
|
|
next $ next $ enterAdjustedBranch adj
|