More v6 work. Got most of the way to a solution to the problem of updating
the associated files database for staged changes to unlocked files, eg a
git mv
.
While writing the test case, I was surprised to find that the problem
is timing dependent. If a git mv
is run less than a second after git
add
, git runs the smudge filter for whatever reason, which avoids the
problem. With a longer delay, it doesn't run the smudge filter. Seems this
could be the cause of intermittent glitches with v6 mode, and I've seen a
few such glitches before.
Anyway, I developed an inexpensive way to find the relevant staged changes,
using git diff
with a full page of options to tweak its behavior just
right. Still need to make that only run when the index has changed, not
every time git-annex runs.
There's still a race between a command like git mv
and git annex
drop/get
, that can result in the unlocked file's content not being
updated. Don't have a solution to that yet.
This work is supported by the NSF-funded DataLad project.