git-annex's metadata works best when files have a lot of useful metadata attached to them.
To make git-annex automatically set the year and month when adding files,
run git config annex.genmetadata true
.
A git commit hook can be set up to extract lots of metadata from files like photos, mp3s, etc.
- Install the
extract
utility, from http://www.gnu.org/software/libextractor/
apt-get install extract
- Download pre-commit-annex and install it in your git-annex repository
as
.git/hooks/pre-commit-annex
.
Remember to make the script executable! - Run:
git config metadata.extract "artist album title camera_make video_dimensions"
Now any fields you list in metadata.extract to will be extracted and stored when files are committed.
To get a list of all possible fields, run: extract -L | sed 's/ /_/g'
By default, if a git-annex already has a metadata field for a file,
its value will not be overwritten with metadata taken from files.
To allow overwriting, run: git config metadata.overwrite true
is there a way for this to be done globally, without having to install and configure the hook for each repository? it seems like a fairly useful feature that could be factored in git-annex itself (as opposed to be shipped as a shell script)...
also, is there a way to retroactively parse the tags from existing files (as opposed to only new files added to the repo).
thanks