[[!comment format=mdwn
 username="https://www.google.com/accounts/o8/id?id=AItOawmhfodZquCI_EEl-f3h7HkROTszlsQL6yA"
 nickname="Joe"
 subject="comment 8"
 date="2013-06-18T02:14:01Z"
 content="""
Thanks joey - I pulled the latest and built it. I don't think everything is working, or maybe my steps need to be updated. On the positive side, git annex fsck no longer errors out. However, I still get the fast-forward message and get annex get . gives me an error about repositories not being available.

This is running my test script:

[[!format sh \"\"\"

C:\joe\backup>ssh joebo@xxxx.com sh testrepo.sh
Initialized empty Git repository in /home/joebo/repo.git/
init origin ok
(Recording state in git...)
commit
ok
git-annex: no branch is checked out

C:\joe\backup>rm -rf repo

C:\joe\backup>git init repo
Initialized empty Git repository in C:/joe/backup/repo/.git/

C:\joe\backup>cd repo

C:\joe\backup\repo>git annex init
init
  Detected a crippled filesystem.

  Enabling direct mode.

  Detected a filesystem without fifo support.

  Disabling ssh connection caching.
ok
warning: LF will be replaced by CRLF in C:\joe\backup\repo\.git\annex\journal\uu
id.log.
The file will have its original line endings in your working directory.
(Recording state in git...)

C:\joe\backup\repo>git remote add origin ssh://joebo@xxxx.com/~/repo.git

C:\joe\backup\repo>echo hello  1>foo.txt

C:\joe\backup\repo>git annex add .
add foo.txt (checksum...) ok
(Recording state in git...)
warning: LF will be replaced by CRLF in C:\joe\backup\repo\.git\annex\journal\ae
4_1e9_SHA256E-s8--f873eef4f852e335da367d76ce7f1973c15b8ffebf532b064df4bc691cd51a
87.txt.log.
The file will have its original line endings in your working directory.

C:\joe\backup\repo>git commit -m \"initial commit\"
[master (root-commit) 4450966] initial commit
 1 file changed, 1 insertion(+)
 create mode 120000 foo.txt

C:\joe\backup\repo>git annex sync
commit
ok
pull origin
warning: no common commits
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From ssh://xxxx.com/~/repo
 * [new branch]      git-annex  -> origin/git-annex
ok
(merging origin/git-annex into git-annex...)
(Recording state in git...)
push origin
Counting objects: 18, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (16/16), 1.41 KiB, done.
Total 16 (delta 3), reused 0 (delta 0)
To ssh://joebo@xxxx.com/~/repo.git
 * [new branch]      git-annex -> synced/git-annex
 * [new branch]      master -> synced/master
ok

C:\joe\backup\repo>git annex copy --to origin
copy foo.txt (checking origin...) (to origin...)
foo.txt
           8 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 79 bytes  received 31 bytes  31.43 bytes/sec
total size is 8  speedup is 0.07
ok
warning: LF will be replaced by CRLF in C:\joe\backup\repo\.git\annex\journal\ae
4_1e9_SHA256E-s8--f873eef4f852e335da367d76ce7f1973c15b8ffebf532b064df4bc691cd51a
87.txt.log.
The file will have its original line endings in your working directory.
(Recording state in git...)

C:\joe\backup\repo>git annex sync
commit
ok
pull origin
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From ssh://xxxx.com/~/repo
   dd2afc8..fcccfa3  git-annex  -> origin/git-annex
ok
(merging origin/git-annex into git-annex...)
(Recording state in git...)
push origin
Counting objects: 21, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (11/11), 896 bytes, done.
Total 11 (delta 4), reused 0 (delta 0)
To ssh://joebo@xxxx.com/~/repo.git
   a093010..10a7c3a  git-annex -> synced/git-annex
ok

C:\joe\backup\repo>git push origin master
Everything up-to-date

C:\joe\backup\repo>cd ..

C:\joe\backup>rm -rf repo-bak

C:\joe\backup>git init repo-bak
Initialized empty Git repository in C:/joe/backup/repo-bak/.git/

C:\joe\backup>cd repo-bak

C:\joe\backup\repo-bak>git remote add origin ssh://joebo@xxxx.com/~/repo.git

C:\joe\backup\repo-bak>git fetch origin
remote: Counting objects: 36, done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 36 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (36/36), done.
From ssh://xxxx.com/~/repo
 * [new branch]      git-annex  -> origin/git-annex
 * [new branch]      master     -> origin/master
 * [new branch]      synced/git-annex -> origin/synced/git-annex
 * [new branch]      synced/master -> origin/synced/master

C:\joe\backup\repo-bak>git merge origin/synced/master

C:\joe\backup\repo-bak>git annex sync

  Detected a crippled filesystem.

  Enabling direct mode.

  Detected a filesystem without fifo support.

  Disabling ssh connection caching.
warning: LF will be replaced by CRLF in C:\joe\backup\repo-bak\.git\annex\journa
l\uuid.log.
The file will have its original line endings in your working directory.
(merging origin/git-annex origin/synced/git-annex into git-annex...)
(Recording state in git...)
commit
ok
pull origin
ok
push origin
Counting objects: 18, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (8/8), 695 bytes, done.
Total 8 (delta 4), reused 0 (delta 0)
To ssh://joebo@xxxx.com/~/repo.git
   10a7c3a..dbf4a72  git-annex -> synced/git-annex
ok

C:\joe\backup\repo-bak>git annex get .
get foo.txt (not available)
  Try making some of these repositories available:
        608d7025-8d33-459e-875b-84de43946980
        608d7025-8d33-459e-875b-84de43946980
        def09afe-da97-4f07-ae90-90ea116eb8c4
failed
git-annex: get: 1 failed

C:\joe\backup\repo-bak>cat foo.txt
.git/annex/objects/6k/Mf/SHA256E-s8--f873eef4f852e335da367d76ce7f1973c15b8ffebf5
32b064df4bc691cd51a87.txt/SHA256E-s8--f873eef4f852e335da367d76ce7f1973c15b8ffebf
532b064df4bc691cd51a87.txt
C:\joe\backup\repo-bak>cd ..

C:\joe\backup>cd repo

C:\joe\backup\repo>echo foo2  1>foo2.txt

C:\joe\backup\repo>git annex add .
add foo2.txt (checksum...) ok
(Recording state in git...)
warning: LF will be replaced by CRLF in C:\joe\backup\repo\.git\annex\journal\fb
a_8bb_SHA256E-s7--eef0e29200a3194851e5fb4ff77d0d0aec5cd3f5ccd78762e80a45f0bbece0
5f.txt.log.
The file will have its original line endings in your working directory.

C:\joe\backup\repo>git commit -m \"another\"
[master 438409c] another
 1 file changed, 1 insertion(+)
 create mode 120000 foo2.txt

C:\joe\backup\repo>git annex sync
commit
ok
pull origin
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 8 (delta 4), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From ssh://xxxx.com/~/repo
   10a7c3a..dbf4a72  synced/git-annex -> origin/synced/git-annex
ok
(merging origin/synced/git-annex into git-annex...)
(Recording state in git...)
push origin
Counting objects: 25, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (14/14), 1.32 KiB, done.
Total 14 (delta 3), reused 0 (delta 0)
To ssh://joebo@xxxx.com/~/repo.git
   dbf4a72..79c01f2  git-annex -> synced/git-annex
   4450966..438409c  master -> synced/master
ok

C:\joe\backup\repo>git annex copy --to origin
copy foo.txt (checking origin...) ok
copy foo2.txt (checking origin...) (to origin...)
foo2.txt
           7 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 79 bytes  received 31 bytes  220.00 bytes/sec
total size is 7  speedup is 0.06
ok
warning: LF will be replaced by CRLF in C:\joe\backup\repo\.git\annex\journal\fb
a_8bb_SHA256E-s7--eef0e29200a3194851e5fb4ff77d0d0aec5cd3f5ccd78762e80a45f0bbece0
5f.txt.log.
The file will have its original line endings in your working directory.
(Recording state in git...)

C:\joe\backup\repo>git annex sync
commit
ok
pull origin
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From ssh://xxxx.com/~/repo
   fcccfa3..eb065b0  git-annex  -> origin/git-annex
ok
(merging origin/git-annex into git-annex...)
(Recording state in git...)
push origin
Counting objects: 33, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (17/17), 1.27 KiB, done.
Total 17 (delta 8), reused 0 (delta 0)
To ssh://joebo@xxxx.com/~/repo.git
   79c01f2..7ecf368  git-annex -> synced/git-annex
ok

C:\joe\backup\repo>cd ..

C:\joe\backup>cd repo-bak

C:\joe\backup\repo-bak>git annex sync
commit
ok
pull origin
remote: Counting objects: 52, done.
remote: Compressing objects: 100% (29/29), done.
remote: Total 36 (delta 13), reused 0 (delta 0)
Unpacking objects: 100% (36/36), done.
From ssh://xxxx.com/~/repo
   fcccfa3..eb065b0  git-annex  -> origin/git-annex
   4450966..438409c  master     -> origin/master
   dbf4a72..7ecf368  synced/git-annex -> origin/synced/git-annex
   4450966..438409c  synced/master -> origin/synced/master
ok
(merging origin/git-annex origin/synced/git-annex into git-annex...)
(Recording state in git...)
push origin
Counting objects: 30, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (9/9), 732 bytes, done.
Total 9 (delta 5), reused 0 (delta 0)
To ssh://joebo@xxxx.com/~/repo.git
   7ecf368..7895f60  git-annex -> synced/git-annex
 ! [rejected]        master -> synced/master (non-fast-forward)
error: failed to push some refs to 'ssh://joebo@xxxx.com/~/repo.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and merge the remote changes
hint: (e.g. 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
failed
git-annex: sync: 1 failed

C:\joe\backup\repo-bak>git pull origin synced/master
From ssh://xxxx.com/~/repo
 * branch            synced/master -> FETCH_HEAD
Updating 4450966..438409c
Fast-forward
 foo2.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 120000 foo2.txt

C:\joe\backup\repo-bak>git annex sync
commit
ok
pull origin
ok
push origin
Everything up-to-date
ok

C:\joe\backup\repo-bak>cat foo.txt
.git/annex/objects/6k/Mf/SHA256E-s8--f873eef4f852e335da367d76ce7f1973c15b8ffebf5
32b064df4bc691cd51a87.txt/SHA256E-s8--f873eef4f852e335da367d76ce7f1973c15b8ffebf
532b064df4bc691cd51a87.txt
C:\joe\backup\repo-bak>git annex get foo.txt
get foo.txt (not available)
  Try making some of these repositories available:
        608d7025-8d33-459e-875b-84de43946980
        608d7025-8d33-459e-875b-84de43946980
        608d7025-8d33-459e-875b-84de43946980
        608d7025-8d33-459e-875b-84de43946980
        def09afe-da97-4f07-ae90-90ea116eb8c4
        def09afe-da97-4f07-ae90-90ea116eb8c4
failed
git-annex: get: 1 failed

C:\joe\backup\repo-bak>
C:\joe\backup\repo-bak>git annex fsck foo.txt
fsck foo.txt ok

C:\joe\backup\repo-bak>

\"\"\"]]

Perhaps I need to change my transcript to reflect the new fixes?

Reverting back to my patched version, I can run the script and run git annex fsck --verifyDirectMapping and get the file cleanly. Do I need to update the server version? (I assume not)
"""]]
