Asg*_*oth 9 vpn ssh rsync sshfs git
目前,我正在处理的项目的代码库远程位于公司服务器上。它必须保持这样。远程git存储库也不能公开。
我目前的设置是:
VPNsshfs以挂载代码的副本ssh到远程服务器并在git那里运行命令这样做的问题是,VPN 不时sshfs掉线,所以我的安装中断了,我的 IDE 冻结了。我所做的是手动重新连接 VPN,然后sshfs再次运行,然后重新开始工作。
但随着VPN跌倒的次数增多,它会变得很烦人。
所以我想知道是否有sshfs某种缓存的任何设置,这将使我能够工作,并且只有在 VPN 恢复时才同步更改。
这可能没有意义,因为如果远程驱动程序不可用,则没有任何可写入的内容。那么使用某种watch东西并用于rsync以双向方式移动更改的不同设置呢(当我保存文件时,或者当我这样做时git pull)
我不能只是 git clone,因为我无法重现整个环境以“本地”工作(数据库和其他东西)
代码必须在他们的服务器中,为了让我测试/查看我的工作,我必须访问一个 URL,即我的沙箱。每次我想查看我的更改时,我都无法 git push。
小智 5
我使用这个 sshfs 选项来最小化延迟:
sshfs -o Ciphers=arcfour,compression=no,nonempty,auto_cache,reconnect,workaround=all user@development.net:/usr/local/gitdev/ ~/dev/code
Run Code Online (Sandbox Code Playgroud)
它具有重新连接标志、所有 sshfs 解决方法、使用自动缓存和 arcfour chiper。
您可以在 sshfs 手册上阅读这些选项,我发现这些选项至少对我的设置来说是最快的。
预计到达时间:有关 sshfs 性能的更多信息,请阅读此处:sshfs 性能
zecrazytux 是对的——为什么不使用你git应该使用的方式:克隆存储库,远程处理它,并将更改推送回主服务器?
我认为你没有理由“不能”git push每次你想看到你的改变时你的工作(理想情况下推送到一个开发分支,然后在经过测试和证明工作后被合并)——很多人都这样做。如果您想自动化这部分工作,您甚至可以使用post-receive挂钩将更改部署到环境中。
(你显然不想这样做,但你没有给出任何理由,所以我拒绝你问题的前提。)
坦率地说,您无法使不可靠的网络连接变得“可容忍”(特别是如果您尝试挂载网络文件系统)——您可以如上所述远程工作,通过 SSH 进入系统并直接在系统上工作(是您的screen)朋友在这里),或调查并修复底层网络不稳定。
尝试做其他事情来“让它变得可以忍受”是徒劳的(想想“飓风中的鸡尾酒伞”)。