使用嵌套 sshfs 时出现非确定性错误

使用嵌套 sshfs 时出现非确定性错误

OSX 的实现sshfs 不喜欢连接到运行 SSHDroid 的 Android 手机,所以我尝试通过安装 ubuntu 虚拟机来获得访问权限,而sshfs该虚拟机又具有到手机的安装点。

我的主要目标是将git手机上的存储库的提交拉到 MacBook 上的存储库,反之亦然。我的典型工作流程是 1) 在 Mac 和手机上提交更改; 2)从手机中拉取新的提交; 3)在Mac上合并; 4)将合并提交拉回手机。

这大部分有效,但我发现git fetch(获取手机上的存储库)经常失败

error: unable to create temporary file: Interrupted system call
fatal: failed to write object
fatal: unpack-objects failed

这种情况并不总是发生——有时git fetch会成功完成,一切都很好。也许这可能是某种时间问题。

是否有一个选项可以传递给一个或两个sshfs调用以使这项工作顺利进行?

我意识到我可以通过虚拟机上的中间存储库进行拉取,但这会有点麻烦。

答案1

使用git fetch --quiet。为了实现进度表的git使用setitimer(),这又会导致频繁的SIGALRM交付。sshfs不能很好地处理它们,根据时间和命令导致Interrupted system call或错误。File exists这个问题与时间相关,并且随着存储库的增大而变得更糟。

相关内容