Each for each metadata field, there's now an automatically maintained "$field-lastchanged" that gives the timestamp of the last change to that field.

Note that this is a nearly entirely free feature. The data was already
stored in the metadata log in an easily accessible way, and already was
parsed to a time when parsing the log. The generation of the metadata
fields may even be done lazily, although probably not entirely (the map
has to be evaulated to when queried).
This commit is contained in:
Joey Hess 2014-03-18 18:55:43 -04:00
parent fa641dad2d
commit caa97d1271
8 changed files with 94 additions and 23 deletions

View file

@ -5,11 +5,15 @@
- Licensed under the GNU GPL version 3 or higher.
-}
module Annex.MetaData where
module Annex.MetaData (
genMetaData,
module X
) where
import Common.Annex
import qualified Annex
import Types.MetaData
import Types.MetaData as X
import Annex.MetaData.StandardFields as X
import Logs.MetaData
import Annex.CatFile
@ -19,15 +23,6 @@ import Data.Time.Calendar
import Data.Time.Clock
import Data.Time.Clock.POSIX
tagMetaField :: MetaField
tagMetaField = mkMetaFieldUnchecked "tag"
yearMetaField :: MetaField
yearMetaField = mkMetaFieldUnchecked "year"
monthMetaField :: MetaField
monthMetaField = mkMetaFieldUnchecked "month"
{- Adds metadata for a file that has just been ingested into the
- annex, but has not yet been committed to git.
-