{"thread":{"id":"29213","subject":"Metadata storage - let's do this (was: \"Tracking file metadata in git -- fix metastore or enhance git?\") (was: \"Revisiting metadata storage\")","startedAt":"2011-12-20T15:45:24Z","lastAt":"2011-12-20T15:45:24Z","messageCount":1,"participants":["Richard Hartmann"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"181526","messageId":"CAD77+gSihfmOV1ggAx9zcrqdn3F8CObXGZrJjSfMHKtY25teeg@mail.gmail.com","threadId":"29213","inReplyTo":null,"subject":"Metadata storage - let's do this (was: \"Tracking file metadata in git -- fix metastore or enhance git?\") (was: \"Revisiting metadata storage\")","fromName":"Richard Hartmann","fromEmail":"richih.mailinglist@gmail.com","sentAt":"2011-12-20T15:45:24Z","receivedAt":"2011-12-20T15:45:24Z","isPatch":false,"sender":{"key":"richih.mailinglist@gmail.com","avatar":"https://avatars.githubusercontent.com/u/754723?v=4"},"body":"Hi all,\n\nto summarize the current situation: quite a few people want to have\nthis, but no one seems to be willing to actually jump into the cold\nwater and swim.\n\nI decided to scratch my own itch and started to collect requirements,\netc. Obviously, those are mine. I can already tell you that I will\nfocus on mtime and possibly EXIF support as that is what I need this\nwhole thing for.\nYou are very welcome to comment on any of this.\n\n\nPlease note that I decided not to tie this into git but to use a\nseparate file. The rationale being that, this way, normal git\noperations are not impacted in any way and allowing re-use elsewhere.\n\n\nGeneral:\n* Must work with non-git\n* Must play nicely with git\n** Must merge easily when there are no conflicts\n** Must conflict merges if layout version is changed\n* No XML as that does not merge\n* Assuming I spear-head this effort, it will be in Perl 5\n* Possible names include\n** metamonger\n** metamangler\n** git meta\n* Needs test suite\n\nStorage:\n* Versioned storage layout\n* Tab-seperated list (handle file names containing tabs via escaping?)\n* UTF-8 for file names, ISO-8859-1 for metadata\n* All binary data, if any (support for xattr?) will be ASCII-armoured\n* Metadata will be both machine and human readable _and_ explicitly be\ndesigned to facilitate manual editing\n\nSyntax:\n\n$0 save # save metadata, recursively, to .meta.db\n\n$0 apply # apply metadata, recursively, from .meta.db\n\n$0 diff # guess.\n\n-q : quiet\n-m : comma-seperated list to override what data will be stored/applied/diffed\n-f : specify file name to store to/apply from\n-F: store to/apply from .meta.db.$HOSTNAME\n-U: store to/apply from .meta.db.$(cat /etc/hostuuid)\n--exif-db : EXIF <> db\n--exif-file : EXIF <> file\n\nI would like to have this tool be able to operate on EXIF data to see\nif the file's mtime and creation time are the same. Very specific use\ncase, but hey. Maybe factor that out into a cleanly modularized system\nand call if via a more generic interface, though\n\n\nDepending on the feedback I get and how busy I am before christmas, I\nmay get an initial version up and running before 2012.\n\n\nIf you want to help, nag or anything, please do it asap.\n\n\nThanks,\nRichard\n"}]}