So this is mystifying, because this happens for only a single repo out of many that sync between two machines with the git-annex assistant. All other repos sync successfully.
Updating fb9c1a7..e5b6add
git-annex filter-process: git-annex: command not found
fatal: the remote end hung up unexpectedly
realpath: does not exist (No such file or directory)
Outbound config:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "mini"]
url = me@mini:Self/repos/trading-obsidian
fetch = +refs/heads/*:refs/remotes/mini/*
annex-uuid = xxxx
[branch "master"]
remote = mini
merge = refs/heads/master
[annex]
uuid = xxxx
version = 10
[filter "annex"]
smudge = git-annex smudge -- %f
clean = git-annex smudge --clean -- %f
process = git-annex filter-process
I can ssh in and run commands:
ssh -A mini 'git-annex version'
git-annex version: 10.20241202
build flags: Assistant Webapp Pairing FsEvents TorrentParser MagicMime Servant Benchmark Feeds Testsuite S3 WebDAV
dependency versions: aws-0.24.3 bloomfilter-2.0.1.2 crypton-1.0.1 DAV-1.3.4 feed-1.3.2.1 ghc-9.8.2 http-client-0.7.17 persistent-sqlite-2.13.3.0 torrent-10000.1.3 uuid-1.3.16 yesod-1.6.2.1
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL GITBUNDLE GITMANIFEST VURL X*
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg rclone hook external
operating system: darwin x86_64
supported repository versions: 8 9 10
upgrade supported from repository versions: 0 1 2 3 4 5 6 7 8 9 10
ssh -A mini 'which git-annex-shell'
/Users/me/bin/git-annex-shell
I didn't intentionally configure this repo any differently than any other repo.
For example, the assistant doesn't emit this error for another repo on the same source machine, although I have no idea what a realpath
is and why this happens in every repo, but this error doesn't seem to be causing the problem.
Updating 4963189..4055a92
Fast-forward
file.md | 2 ++
1 file changed, 2 insertions(+)
realpath: does not exist (No such file or directory)
ssh: connect to host mini port 22: Operation timed out
realpath: does not exist (No such file or directory)
ssh: connect to host mini port 22: Operation timed out
realpath: does not exist (No such file or directory)
ssh: connect to host mini port 22: Operation timed out
realpath: does not exist (No such file or directory)
ssh: connect to host mini port 22: Operation timed out
ssh: connect to host mini port 22: Operation timed out
realpath: does not exist (No such file or directory)
Any suggestions are appreciated, thanks!
This looks like the problem is happening in the remote repository, and not in the local repisotry. (Which I think is the one whose config you showed as the "outbound config").
It looks like a
git push
is being run to that remote. And then it seems like git on that remote is trying to rungit-annex filter-process
.That would not usually happen because pushing to a remote does not update that remote's working tree. Which is what git must be doing when it runs that command.
So, I think you likely have
receive.denyCurrentBranch
set toupdateInstead
in the remote repository. That will make git update the working tree. And having that configuration for the one repository would explain why you only see the problem for that one.As to why
git-annex
is not in PATH when git tries to run it there, that probably comes down to how you have git-annex installed on that system. You showed that an interactive shell does havegit-annex
in PATH when you ssh in. But sometimes the shell configuration differs between interactive and noninteractive shells. See get git-annex-shell into PATH (which is about git-annex-shell, but also applies to git-annex).BTW
realpath
is a unix command, and not one that git-annex uses. This is probably something in a configuration file like ~/.bashrc that is run when you ssh in to that host.