Hey @paperdigits, thanks for your support on my weird plans and fantasies on how things should work .
I still struggle with some basic concepts, e.g. which rule takes precedence, “numcopies” or the rule in “wanted”, or if I have to make “wanted” aware of the numcopies requirement. I know that your approach on my issue would be to avoid sync --content
, but I still think there is a way to configure the repository in a way such that things work as expected automatically and that I cannot accidentally break it (e.g. by running sync --content
).
Regarding workflow scenarios:
That’s the easy one: git annex sync
, and it works as expected.
git annex get <file>
git annex drop <file/pathspec>
or, if configured correctly, git annex drop -a
That’s a tricky one, and after some discussion in the git-annex forum, I think the best approach would be to sync the metadata (only the star rating or maybe other workflow related metadata) from sidecars to the git-annex metadata (always in one direction, from sidecar to git-annex) and have preferred content rules to reflect the personal ideas about which files to keep. I am working on a little shell script to parse the sidecars and set metadata accordingly. But this will take a while, not too much time recently …
Besides adding files to git-annex, I would skip more complex settings such as having memory cards configured as git-annex with the “source” group setting, since the directory structure of memory cards in cameras is somehow restricted, and there are great tools available to do this without git-annex (e.g. rapid photo downloader).
Besides these, there would be a couple of workflows to add, but I am running out of time (family wants breakfast) … But an important one would be to drop jpeg duplicates of raw files when shooting raw+jpeg. I had some discussion over at the git-annex forum regarding this, see here, and this seems to be not (easily) possible automatically from git-annex side, so I am working on a shell script to set git-annex metadata accordingly, something such as
for k in `find . -name "*.CR2"`; do
if [ -e `dirname $k`/`basename $k .CR2`.JPG ]; then
<set metadata>
fi
done
but a bit more robust and with the correct meta data setting.