I hang out in #git-annex on OFTC (come and chat/ask for help).

Getting mentioned by Joey is definitely a (if not the) highlight of my involvement in the git-annex community. That really made my month!

Things that I am (or plan to) work on related to git-annex (in some way):

  • FUSE filesystem for dynamic get/drop of content
  • FUSE filesystem for metadata change/views (like tagsistant)
  • Patchset for ikiwiki which allows it to be used with perlbrew libs
  • Support for modifying git-annex metadata in my file sorting app
  • Support for git-annex in my VR environment

sorting annex

diagram

  +------+
  |      | clone
  | base ------------+---------------------------+
  |      |           |                           |
  +----|-+           |                           |
     clone    +------|-----+              +------|-----+
       |      |            |              |            |
       |      | hd1-serial | < populate > | hd3-serial |
       |      |            |              |            |
       |      +------|-----+              +------|-----+
       |             |                           |
       |           clone                       clone
       |             |                           |
       |      +------|-----+              +------|-----+
       |      |            |              |            |
       |      | hd2-serial |   < get >    | hd4-serial |
       |      |            |              |            |
       |      +------|-----+              +------|-----+
       |             |                           |
+------|------+      |                           |
|             |      |                           |
| collate.git -------+---------------------------+
|             |remote add >
+------|------+
       |
     clone
       |
  +----|----+
  |         |
  | sorting |
  |         |
  +---------+

explanation

  • base created and a mkannex.sh script is added to it which inits a git-annex repository with the desired settings
  • base is cloned to an empty drive as the "type" of files to be added (hd1, hd3)
    • types are file, filelink, keyfile and keylink
    • e.g. git clone ${base_uri} keyfile
  • mkannex.sh is run and repository is named ${drive_serial}_${type}
  • annex is populated with contents of $type, in directories created with uuidgen -r to prevent collision
  • populated repository (hd1, hd3) is cloned to another drive (hd2, hd4)
  • mkannex.sh is run and repository is named ${drive_serial}_${type}
  • contents are git annex get'd from the populated drives

  • collate.git cloned from base and mkannex.sh run, named "collate"

  • remotes added to collate.git for secondary drives (hd2, hd4)
  • collate.git syncs metadata, learning of all repositories and their contents
  • sorting is cloned from collate.git to do sorting activities
    • read-only remotes added for the content drives as required