git-annex/doc/tips/automatically_adding_metadata.mdwn
Joey Hess d0fce426c4 pre-commit-annex hook script to automatically extract metadata from lots of 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.
2014-03-02 20:11:58 -04:00

24 lines
1 KiB
Markdown

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 ' ' _`
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`