Hi there,
After updating to 3.20111203 (on Arch Linux) I noticed I was not able to use git annex get
from a SSH remote (server running Arch Linux, same version of git-annex): "requested key is not present". Same behavior with current master (commit 6cf28585). I had no issue with the previous version (3.20111122).
On this server, I was able to track down the issue using git-annex-shell inannex
and strace
:
$ strace -f -o log git-annex-shell inannex ~/photos-annex.git WORM-s369360-m1321602916--2011-11-17.jpg
$ echo $?
1
$ tail -n20 log
[...]
25623 chdir("/home/schnouki/git-annex") = 0
25623 stat("/home/schnouki/photos-annex.git/annex/objects/082/676/WORM-s369360-m1321602916--2011-11-17.jpg/WORM-s369360-m1321602916--2011-11-17.jpg", {st_mode=S_IFREG|0400, st_size=369360, ...}) = 0
25623 open("annex/objects/082/676/WORM-s369360-m1321602916--2011-11-17.jpg/WORM-s369360-m1321602916--2011-11-17.jpg", O_RDONLY) = -1 ENOENT (No such file or directory)
[...]
Note there is a call to stat()
with the full path to the requested file, and then a call to open()
with a relative path -- which calls this call to fail, and git-annex-shell to return 1. With 3.20111122, there was no call to stat()
, just a successful call to open()
with a full absolute path.
Using git bisect
I was able to determine that this bug appeared in commit 64672c62 ("refactor"). Reverting it makes git-annex-shell
work as expected, but I'm sure there are better ways to fix this. However I don't know enough Haskell to do it myself.
Could you please try to fix this in a future version?
Thanks for a very good bug report.
I've fixed this stupid mistake introduced in the code refactoring. done --Joey