I'm testing out git-annex between a few computers one being a mac (osx 10.9) and a laptop (linux mint 16). With a vps running git annex as a transfer annex.
Anyway sync is almost working...
When I add files on my mac's annex they upload, and go to my laptop as they should.
When I add files on my laptop's annex they upload, and the mac "downloads" them but only creates broken symlinks to the files.
I looked in the log and nothing out of the ordinary is happening... is this a bug with the osx version or what?
more info
- the symlink on the osx annex is symlinking to a file in .git/annex/objects
- the osx annex changes the aliases to real files every time I restart the git annex daemon
Thanks!
It sounds like the contents of the files are being successfully transferred.
It may be that you're using an old and buggy version of git-annex, in which the direct mode code lost track of things and so failed to update the tree correctly when receiving the content of a file. If so, you could fix it by upgrading git-annex and running
git annex fsck
.I was using the 2013-12-13 build and now I've upgrade to the 2014-01-03 build. git-annex has symlinked some important workspace.xml files to nowhere. One looks like this:
workspace.xml -> ../../../.git/annex/objects/M2/8W/SHA256E-s68106--90e9cc4f617c9034db1bf462d058b82c59ade0be58de1d3a3e2f8c02606631c2.xml/SHA256E-s68106--90e9cc4f617c9034db1bf462d058b82c59ade0be58de1d3a3e2f8c02606631c2.xml
The referenced file doesn't exist. Actually, that entire M2 directory doesn't exist.
This has cost me a lot of time trying to fix this. I tried git-annex fsck and I get this message:
** No known copies exist of XXXXXXX/workspace.xml
"XXXXXXX" is a path I needed to obscure
I can see it in the git-annex repo but it is a reference to a symlink that doesn't exist. Is there any way to get this file back? git-annex whereis tells me it is nowhere. This appears to be real data loss.
@Tim, you do not seem to be having the problem that the OP described.
It is completely normal for git-annex to represent a file whose content is not present in the repository as a broken symlink. Typically, git-annex preserves at least one copy of the file in one of your repositories. But if you
git annex add $file; git annex drop --force $file
, you will be left in exactly the situation you describe.You can use
git annex log $file
to see a log of which repositories contained a copy of the file in the past, and see what times the file was removed from each repository. This might give clues to what operation caused the last copy of the file to be lose.