目前,我正在使用的项目的代码库位于公司服务器上。 它必须保持那样。 远程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性能