summaryrefslogtreecommitdiff
path: root/Types/MetaData.hs
Commit message (Collapse)AuthorAge
* avoid generating arbitrary MetaData with illegal fieldsGravatar Joey Hess2014-03-26
|
* hilarious typoGravatar Joey Hess2014-03-18
|
* Each for each metadata field, there's now an automatically maintained ↵Gravatar Joey Hess2014-03-18
| | | | | | | | | | "$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).
* pre-commit-annex hook script to automatically extract metadata from lots of ↵Gravatar Joey Hess2014-03-02
| | | | | | | | | | | | | | | | | | types of files Using the extract(1) program to do the heavy lifting. Decided to make git-annex run pre-commit-annex when committing. Since git-annex pre-commit also runs it, it'll be run when git commit is run too, via the pre-commit hook. This basically gives back the pre-commit hook that git-annex took away. The implementation avoids repeatedly looking for the hook script when the assistant is running and committing repeatedly; only checks if the hook is available once. To make the script simpler, made git-annex metadata -s field?=value only set a field when it's not already got a value. This commit was sponsored by bak.
* metadata: FIeld names are now case insensative.Gravatar Joey Hess2014-02-25
|
* metadata: Field names limited to alphanumerics and a few whitelisted ↵Gravatar Joey Hess2014-02-23
| | | | punctuation characters to avoid issues with views, etc.
* annex.genmetadata can be set to make git-annex automatically set metadata ↵Gravatar Joey Hess2014-02-23
| | | | (year and month) when adding files
* pre-commit: Update metadata when committing changes to annexed files within ↵Gravatar Joey Hess2014-02-19
| | | | | | | | | | | | | | | | | | | | a view. So the user can now switch to a view and then move files around within it to manage metadata. For example, moving a file into a new directory when in the tags=* view adds a tag to it. Implementation is fairly efficient. One diff-index, which is no more expensive than the first stage of a git commit, followed by possibly some cat-file --batch traffic to find the key (when deleting a file). Very similar to what's done in direct mode when committing. And like direct mode when updating the WC after a merge, it has to buffer the diff-tree values in order to make 2 passes over them. When not in a view, pre-commit now does one extra git symbolic-ref, which is tiny overhead. This commit was sponsored by Andrew Eskridge.
* add git annex view commandGravatar Joey Hess2014-02-18
| | | | | | | | | | | | | | | | | | (And a vpop command, which is still a bit buggy.) Still need to do vadd and vrm, though this also adds their documentation. Currently not very happy with the view log data serialization. I had to lose the TDFA regexps temporarily, so I can have Read/Show instances of View. I expect the view log format will change in some incompatable way later, probably adding last known refs for the parent branch to View or something like that. Anyway, it basically works, although it's a bit slow looking up the metadata. The actual git branch construction is about as fast as it can be using the current git plumbing. This commit was sponsored by Peter Hogg.
* add another quickcheck property, and several edge cases handledGravatar Joey Hess2014-02-16
|
* filter branches (incomplete)Gravatar Joey Hess2014-02-16
| | | | | | | | Promosing work toward metadata driven filter branches. A few methods to construct them are stubbed out; all the data types and pure code seems good. This commit was sponsored by Walter Somerville.
* limiting files based on metadataGravatar Joey Hess2014-02-13
| | | | | | Note that there is currently no caching, so --metadata foo=bar --metadata tag=blah will currently read the log 2x per file.
* metacata command can now operate on many files at onceGravatar Joey Hess2014-02-13
|
* improve simplifierGravatar Joey Hess2014-02-12
|
* fix metadata log simplifier and additional quickcheck testsGravatar Joey Hess2014-02-12
|
* fix Ord instance for MetaValue to work like Eq instanceGravatar Joey Hess2014-02-12
|
* add metadata command to get/set metadataGravatar Joey Hess2014-02-12
| | | | | | | | | Adds metadata log, and command. Note that unsetting field values seems to currently be broken. And in general this has had all of 2 minutes worth of testing. This commit was sponsored by Julien Lefrique.
* data types and serialization for metadataGravatar Joey Hess2014-02-12
A very haskell commit! Just data types, instances to serialize the metadata to a nice format, and QuickCheck tests. This commit was sponsored by Andreas Leha.