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

@ -23,12 +23,15 @@ The field names are limited to alphanumerics (and `[_-.]`), and are case
insensitive. The metadata values can contain absolutely anything you
like -- but you're recommended to keep it simple and reasonably short.
Here are some recommended metadata fields to use:
Here are some metadata fields that git-annex has special support for:
* `tag` - With each tag being a different value.
* `year`, `month` - When this particular version of the file came into
being.
* `$field-lastchanged` - This is automatically maintained for each
field that's set, and gives the time stamp (since the Unix epoch)
of the most recent change to the field. It cannot be modified directly.
To make git-annex automatically set the year and month when adding files,
run `git config annex.genmetadata true`. Also, see
[[tips/automatically_adding_metadata]].

View file

@ -18,3 +18,6 @@ Something along the lines of
This would allow me to review files that haven't had any tag changes applied for a while and thus, may need the tags updating.
I've done this in every tagging system I've used by (ab)using mtime, but that requires an additional step (of touching the file).
> [[done]]; "$field-lastchanged" is automatically made available for each
> field! --[[Joey]]