This commit is contained in:
CandyAngel 2015-04-18 16:55:50 +00:00 committed by admin
parent 466e795747
commit 66806fa527

View file

@ -0,0 +1,78 @@
### Please describe the problem.
git annex fsck --from $remote
copies the symlinks from the remote into *.git/annex/tmp*, which then fail to fsck as they don't point to content.
In the transcript below, the 'a' file should fail fsck, but the rest pass.
### What steps will reproduce the problem?
See transcript
### What version of git-annex are you using? On what operating system?
* git-annex version: 5.20150409-g3575ee5
* Arch Linux (git-annex-bin)
### Please provide any additional information below.
## git init origin
## cd corrupt/
## git annex init corrupt
## echo a > a.txt
## echo b > b.txt
## echo c > c.txt
## git annex add .
add a.txt ok
add b.txt ok
add c.txt ok
(recording state in git...)
## git commit -m "add files"
[master (root-commit) 1d670a5] add files
3 files changed, 3 insertions(+)
create mode 120000 a.txt
create mode 120000 b.txt
create mode 120000 c.txt
("corrupting" a file not needed but here for completeness)
## chmod +w .git/annex/objects/41/pJ/SHA256E-s2--87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7.txt/
## echo 'd' > .git/annex/objects/41/pJ/SHA256E-s2--87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7.txt/SHA256E-s2--87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7.txt
## cd ..
## git clone corrupt/ recovery/
Cloning into 'recovery'...
done.
## cd recovery/
## git annex init recovery
init recovery (merging origin/git-annex into git-annex...)
(recording state in git...)
ok
(recording state in git...)
## git annex fsck --from origin
fsck a.txt
git-annex: .git/annex/tmp/fsck24477.SHA256E-s2--87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7.txt: getFileStatus: does not exist (No such file or directory)
failed
fsck b.txt
git-annex: .git/annex/tmp/fsck24477.SHA256E-s2--0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f.txt: getFileStatus: does not exist (No such file or directory)
failed
fsck c.txt
git-annex: .git/annex/tmp/fsck24477.SHA256E-s2--a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478.txt: getFileStatus: does not exist (No such file or directory)
failed
(recording state in git...)
git-annex: fsck: 3 failed
## ls -lah .git/annex/tmp/
total 20K
drwxr-xr-x 2 gemma users 4.0K Apr 18 17:27 ..
drwxr-xr-x 5 gemma users 4.0K Apr 18 17:27 ..
lrwxrwxrwx 1 gemma users 197 Apr 18 17:27 fsck24477.SHA256E-s2--0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f.txt -> ../corrupt/.git/annex/objects/x7/01/SHA256E-s2--0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f.txt/SHA256E-s2--0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f.txt
lrwxrwxrwx 1 gemma users 197 Apr 18 17:27 fsck24477.SHA256E-s2--87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7.txt -> ../corrupt/.git/annex/objects/41/pJ/SHA256E-s2--87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7.txt/SHA256E-s2--87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7.txt
lrwxrwxrwx 1 gemma users 197 Apr 18 17:27 fsck24477.SHA256E-s2--a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478.txt -> ../corrupt/.git/annex/objects/Vw/zz/SHA256E-s2--a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478.txt/SHA256E-s2--a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478.txt