implement another adjustment -- easy to do now!
This commit is contained in:
parent
a85196bd4e
commit
41b7c5f6aa
2 changed files with 19 additions and 8 deletions
|
@ -36,22 +36,23 @@ import Annex.CatFile
|
||||||
import Annex.Link
|
import Annex.Link
|
||||||
import Git.HashObject
|
import Git.HashObject
|
||||||
import Annex.AutoMerge
|
import Annex.AutoMerge
|
||||||
|
import Annex.Content
|
||||||
import qualified Database.Keys
|
import qualified Database.Keys
|
||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|
||||||
data Adjustment
|
data Adjustment
|
||||||
= NoneAdjustment
|
= UnlockAdjustment
|
||||||
| UnlockAdjustment
|
|
||||||
| LockAdjustment
|
| LockAdjustment
|
||||||
|
| HideMissingAdjustment
|
||||||
|
| ShowMissingAdjustment
|
||||||
deriving (Show)
|
deriving (Show)
|
||||||
|
|
||||||
{- Note that adjustments can only be reversed once; reversing a reversal
|
|
||||||
- does not always get back to the original. -}
|
|
||||||
reverseAdjustment :: Adjustment -> Adjustment
|
reverseAdjustment :: Adjustment -> Adjustment
|
||||||
reverseAdjustment NoneAdjustment = NoneAdjustment
|
|
||||||
reverseAdjustment UnlockAdjustment = LockAdjustment
|
reverseAdjustment UnlockAdjustment = LockAdjustment
|
||||||
reverseAdjustment LockAdjustment = UnlockAdjustment
|
reverseAdjustment LockAdjustment = UnlockAdjustment
|
||||||
|
reverseAdjustment HideMissingAdjustment = ShowMissingAdjustment
|
||||||
|
reverseAdjustment ShowMissingAdjustment = HideMissingAdjustment
|
||||||
|
|
||||||
{- How to perform various adjustments to a TreeItem. -}
|
{- How to perform various adjustments to a TreeItem. -}
|
||||||
adjustTreeItem :: Adjustment -> HashObjectHandle -> TreeItem -> Annex (Maybe TreeItem)
|
adjustTreeItem :: Adjustment -> HashObjectHandle -> TreeItem -> Annex (Maybe TreeItem)
|
||||||
|
@ -77,7 +78,15 @@ adjustTreeItem LockAdjustment h ti@(TreeItem f m s)
|
||||||
<$> hashSymlink' h linktarget
|
<$> hashSymlink' h linktarget
|
||||||
Nothing -> return (Just ti)
|
Nothing -> return (Just ti)
|
||||||
| otherwise = return (Just ti)
|
| otherwise = return (Just ti)
|
||||||
adjustTreeItem NoneAdjustment _ ti = return (Just ti)
|
adjustTreeItem HideMissingAdjustment h ti@(TreeItem _ _ s) = do
|
||||||
|
mk <- catKey s
|
||||||
|
case mk of
|
||||||
|
Just k -> ifM (inAnnex k)
|
||||||
|
( return (Just ti)
|
||||||
|
, return Nothing
|
||||||
|
)
|
||||||
|
Nothing -> return (Just ti)
|
||||||
|
adjustTreeItem ShowMissingAdjustment _ ti = return (Just ti)
|
||||||
|
|
||||||
type OrigBranch = Branch
|
type OrigBranch = Branch
|
||||||
type AdjBranch = Branch
|
type AdjBranch = Branch
|
||||||
|
@ -88,11 +97,13 @@ adjustedBranchPrefix = "refs/heads/adjusted/"
|
||||||
serialize :: Adjustment -> String
|
serialize :: Adjustment -> String
|
||||||
serialize UnlockAdjustment = "unlocked"
|
serialize UnlockAdjustment = "unlocked"
|
||||||
serialize LockAdjustment = "locked"
|
serialize LockAdjustment = "locked"
|
||||||
serialize NoneAdjustment = "none"
|
serialize HideMissingAdjustment = "present"
|
||||||
|
serialize ShowMissingAdjustment = "showmissing"
|
||||||
|
|
||||||
deserialize :: String -> Maybe Adjustment
|
deserialize :: String -> Maybe Adjustment
|
||||||
deserialize "unlocked" = Just UnlockAdjustment
|
deserialize "unlocked" = Just UnlockAdjustment
|
||||||
deserialize "locked" = Just UnlockAdjustment
|
deserialize "locked" = Just UnlockAdjustment
|
||||||
|
deserialize "present" = Just HideMissingAdjustment
|
||||||
deserialize _ = Nothing
|
deserialize _ = Nothing
|
||||||
|
|
||||||
originalToAdjusted :: OrigBranch -> Adjustment -> AdjBranch
|
originalToAdjusted :: OrigBranch -> Adjustment -> AdjBranch
|
||||||
|
|
|
@ -20,6 +20,6 @@ seek = withWords start
|
||||||
|
|
||||||
start :: [String] -> CommandStart
|
start :: [String] -> CommandStart
|
||||||
start [] = do
|
start [] = do
|
||||||
enterAdjustedBranch UnlockAdjustment
|
enterAdjustedBranch HideMissingAdjustment
|
||||||
next $ next $ return True
|
next $ next $ return True
|
||||||
start _ = error "Unknown parameter"
|
start _ = error "Unknown parameter"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue