diff options
author | Joey Hess <joey@kitenet.net> | 2012-01-06 15:40:04 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-01-06 15:40:07 -0400 |
commit | a3a9f87047d27306c27f4108ee58af3365f284af (patch) | |
tree | 26fbd58b758a0a3773f7df05d30a8c101d866e1b /Logs | |
parent | 1f8a1058c96bd4ee11fcb353f0ede1842d79ab6a (diff) |
log: New command that displays the location log for file, showing each repository they were added to and removed from.
This needs to run git log on the location log files to get at all past
versions of the file, which tends to be a bit slow.
It would be possible to make a version optimised for showing the location
logs for every key. That would only need to run git log once, so would be
faster, but it would need to process an enormous amount of data, so
would not speed up the individual file case.
In the future it would be nice to support log --format. log --json also
doesn't work right yet.
Diffstat (limited to 'Logs')
-rw-r--r-- | Logs/Presence.hs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Logs/Presence.hs b/Logs/Presence.hs index f5e4f1ea9..372af37d5 100644 --- a/Logs/Presence.hs +++ b/Logs/Presence.hs @@ -13,14 +13,15 @@ module Logs.Presence ( LogStatus(..), + LogLine, addLog, readLog, + getLog, parseLog, showLog, logNow, compactLog, currentLog, - LogLine ) where import Data.Time.Clock.POSIX @@ -80,6 +81,10 @@ logNow s i = do currentLog :: FilePath -> Annex [String] currentLog file = map info . filterPresent <$> readLog file +{- Given a log, returns only the info that is are still in effect. -} +getLog :: String -> [String] +getLog = map info . filterPresent . parseLog + {- Returns the info from LogLines that are in effect. -} filterPresent :: [LogLine] -> [LogLine] filterPresent = filter (\l -> InfoPresent == status l) . compactLog |