aboutsummaryrefslogtreecommitdiff
path: root/Logs/Transitions.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-08-28 16:38:03 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-08-28 16:41:13 -0400
commit69bfbd94004d193050e0fe0827f380bdd1ed5644 (patch)
treec0eac16499b9cbc8920c140bd2e1a9bdfd09839b /Logs/Transitions.hs
parent0ffe5408ae1b396453f080bef2858542317daf23 (diff)
add forget command
Works, more or less. --dead is not implemented, and so far a new branch is made, but keys no longer present anywhere are not scrubbed. git annex sync fails to push the synced/git-annex branch after a forget, because it's not a fast-forward of the existing synced branch. Could be fixed by making git-annex sync use assistant-style sync branches.
Diffstat (limited to 'Logs/Transitions.hs')
-rw-r--r--Logs/Transitions.hs10
1 files changed, 6 insertions, 4 deletions
diff --git a/Logs/Transitions.hs b/Logs/Transitions.hs
index 41f4b2635..d4b7d5eb3 100644
--- a/Logs/Transitions.hs
+++ b/Logs/Transitions.hs
@@ -50,6 +50,9 @@ describeTransition :: Transition -> String
describeTransition ForgetGitHistory = "forget git history"
describeTransition ForgetDeadRemotes = "forget dead remotes"
+noTransitions :: Transitions
+noTransitions = S.empty
+
addTransition :: POSIXTime -> Transition -> Transitions -> Transitions
addTransition ts t = S.insert $ TransitionLine ts t
@@ -91,8 +94,7 @@ transitionList = map transition . S.elems
{- Typically ran with Annex.Branch.change, but we can't import Annex.Branch
- here since it depends on this module. -}
-recordTransition :: (FilePath -> (String -> String) -> Annex ()) -> Transition -> Annex ()
-recordTransition changer o = do
- t <- liftIO getPOSIXTime
+recordTransitions :: (FilePath -> (String -> String) -> Annex ()) -> Transitions -> Annex ()
+recordTransitions changer t = do
changer transitionsLog $
- showTransitions . addTransition t o . parseTransitionsStrictly "local"
+ showTransitions . S.union t . parseTransitionsStrictly "local"