1

I currently want to deploy my existing git-annex repository on a new computer.

My configuration is the following one:

  • on serverA: I have a git bare (with git-annex) repository and no actual files
  • on serverB: I have an classical git-annex local folder which contains the actual (heavy) files (synced with serverA's repository)
  • on serverC: I want to create a new git-annex repository and copy the files from serverB on it

Notice that I am not able to clone directly from serverBon serverC.

I follow the process:

  • on serverC: git clone ssh://serverA/<path> after I run git annex init origin and git annex sync
  • on serverB: git remote add NEW ssh://serverC/<path>, git annex sync NEW and it works. But when I want to copy the actual (heavy) files using git annex sync NEW --content, no file are copied and I have for each file the following error: copy <file> (unable to check NEW) failed.

Any idea of the raeson of these errors (notice that debug mode provide no additional information)?

Notice that all servers use version 8.xx of git-annex

Guuk
  • 505
  • 3
  • 17
  • The `unable to check NEW` is the clear important element here. I don't remember if that means it can't check because it can't connect or something else. Have you done a `git fetch NEW` to make sure that works alone (I think `git annex sync` does this for you, but running it explicitly may give you more clues) – Wes Hardaker Nov 14 '21 at 13:44
  • @WesHardaker thank you for your reply. I run `git fetch NEW` but it changes nothing... – Guuk Nov 14 '21 at 13:52
  • Have you tried `git annex copy SOMETHING -to NEW` to see if you can manually copy them over there? – Wes Hardaker Nov 14 '21 at 14:07
  • Yes, and it fails with same error – Guuk Nov 14 '21 at 14:09
  • This is beginning to sound familiar... have you done a `git pull` from NEW? You may need to update the annex branch on NEW manually (I know you've said you can't actually do a pull). – Wes Hardaker Nov 14 '21 at 14:09
  • Ah, I think the problem is that serverC still doesn't know about the remote B. Even if you never expect to access B directly, serverC still needs to set up a remote to B for annex to recognize it exists. maybe. – Wes Hardaker Nov 14 '21 at 14:10
  • I am very surprised of it because git annex sync NEW works well. – Guuk Nov 14 '21 at 14:25
  • @WesHardaker I think you are right concerning the identification of each repository. `git annex` identify each repo using a uuid. The use of an intermediate `bare` repo leads to not provide the uuid of serverB on serverC. So, if you want to copy file from serverB to serverC, serverB runs a command (using ssh) `git annex shell p2pstdio --uuid ` which return that uuidofB is not known.......... – Guuk Nov 14 '21 at 15:55
  • Notice that this trouble can be solved by changing the uuid in serverC with the corresponding one on the git config on serverB remote declaration. – Guuk Nov 14 '21 at 17:17

0 Answers0