d0fce426c4
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.
24 lines
1 KiB
Markdown
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`
|