如何使sshfs + VPN + git一个可以忍受的工作环境?

目前,我正在使用的项目的代码库位于公司服务器上。 它必须保持那样。 远程git仓库也不能公开。

我目前的设置是:

  • 连接到VPN
  • 运行sshfs来挂载代码的副本
  • 开始编写代码
  • 当我完成: ssh到远程服务器,并在那里运行git命令

这个问题是,VPN时常下降,所以我的sshfs挂起,我的IDE冻结。 我所做的是手动重新连接VPN,然后再次运行sshfs ,然后重新开始工作。

但是随着VPN越来越频繁地变得烦人。

所以我想知道是否有某种cachingsshfs设置,这将允许我工作,并且只有当VPN恢复时才同步更改。

这可能是没有意义的,因为如果远程驱动程序不可用,则无法写入。 那么如何设置一个不同的设置,使用某种types的事物,并使用rsync以双向方式移动更改(当我保存一个文件,或者当我做git pull

我不能只是克隆克隆,因为我不能重现整个环境工作“本地”(数据库和东西)

代码必须在他们的服务器上,为了让我testing/看到我的工作,我必须访问一个URL,那就是我的沙箱。 每次我想看到我的变化,我都无法推动。

zecrazytux是对的 – 为什么不按照你应该使用的方式使用git :通过克隆库,远程处理,并将变化推回给主?

我看不出有什么理由,每当你想看到你的改变时,你都不能“ git push你的工作(理想情况git push到一个开发分支,然后在testing和certificate工作时合并) – 许多人这样做。 如果你想自动化这部分内容,甚至可以使用post-receive钩子将更改部署到环境中。
(你显然不想这样做 ,但你没有给出任何理由,所以我拒绝你的问题的前提。)


坦率地说,没有办法做一个不可靠的networking连接“可以忍受”(特别是如果你想挂载networking文件系统) – 你可以像上面所描述的那样远程工作,SSH进入系统直接工作( screen是你的朋友在这里),或调查和解决底层networking不稳定问题。
试图做一些其他的事情来“使之容忍”是一种徒劳的行为(想想“飓风中的鸡尾酒伞”)。

我正在使用这个sshfs选项来减less延迟:

 sshfs -o Ciphers=arcfour,compression=no,nonempty,auto_cache,reconnect,workaround=all [email protected]:/usr/local/gitdev/ ~/dev/code 

它有重新连接标志,所有的sshfs解决方法,使用自动caching和arcfour chiper。

你可以阅读有关sshfs手册上的这些选项,我发现这些选项至less是我的设置最快的sshfs选项。

ETA:更多关于sshfs性能的信息请看这里: sshfs性能