如何使sshfs + VPN + git成为可容忍的工作环境?


9

当前,我正在从事的项目的代码库位于公司服务器的远程位置。它必须保持那样。远程git存储库也无法公开。

我当前的设置是:

  • 连接到 VPN
  • 运行sshfs以安装代码的副本
  • 开始编写代码
  • 完成后:ssh连接到远程服务器并在其中运行git命令

问题在于,VPN有时会sshfs掉线,因此我的安装中断,我的IDE冻结。我要做的是手动重新连接VPN,然后sshfs再次运行,然后恢复工作。

但是随着VPN跌倒次数的增加,它变得很烦人。

因此,我想知道是否sshfs为某种类型的缓存设置了任何设置,这些设置将允许我工作,并且仅在VPN恢复后才同步更改。

这可能没有任何意义,因为如果远程驱动程序不可用,则没有任何可写入的内容。那么,使用某种watch东西并用于rsync双向移动更改的另一种设置又如何呢(无论是保存文件时还是执行时git pull

我不能只是git clone,因为我不能重现整个环境以在“本地”工作(数据库和其他东西)

该代码必须在他们的服务器中,以便我测试/查看我的工作,我必须访问一个URL,即我的沙箱。每当我要查看更改时,我都无法git push。


3
你为什么不git理智地使用?克隆仓库,然后远程工作。
zecrazytux

我不能只是git clone,因为我不能重现整个环境以“本地”工作,因此代码必须在他们的服务器中,以便我测试/查看我的工作。我可以访问作为我的沙箱的URL。每当我要查看更改时,我都无法进行git push
Asgaroth

1
薄饼,那真是太坏了。
EEAA 2013年

这是一个坏问题吗?它并不是像我可以更改他们的基础结构或对其做出决定,我只需要一种与他们远程协作的方法。
Asgaroth,2013年

Answers:


2

zecrazytux是正确的 - 为什么不使用git应有的方式:克隆存储库,远程处理它,并将更改推回主数据库?

我认为没有理由git push每次都想看到所做的更改时就“无法” 工作(理想情况下是推送到开发分支,然后在经过测试和证明有效的情况下将其合并)–很多人这样做。post-receive如果您想使那部分事情自动化,甚至可以使用钩子将更改部署到环境中。
(您显然不想这样做,但是您没有给出任何理由,所以我拒绝您提出问题的前提。)


坦率地说有,你可以做,使不可靠的网络连接“容忍”(特别是如果你正在尝试安装网络文件系统)什么-你可以作为远程工作上面列出,SSH进入系统,然后直接在其上工作(screen是你的朋友),或调查并修复潜在的网络不稳定。
尝试做其他事情以使其“可忍受”是徒劳的(想想“飓风中的鸡尾酒伞”)。


原因是,我们使用了redmine,并且每个提交都应具有特定的格式。因此,对于一个任务来说,一堆提交是不可接受的。另外,在进入浏览器并进行刷新(F5)之前,还必须执行git commit + push,这将使其比现在更难以忍受。想象一下不得不提交+推送,只是因为我错过了一个分号(我很夸张,但您明白了)
Asgaroth

we have redmine and each commit should have a specific format<-因此,当您合并开发分支格式时,将按照redmine期望的方式提交合并。git像这样灵活:-)
voretaq7

缺少分号的事情很简单:不要犯错误(我很夸张,但是您知道了-您可以对自己的东西进行静态语法检查,然后再努力消除类似的小东西,因为Redmine只会看到合并提交,无论如何,没人需要知道在您的dev分支中发生的恐怖事件)–否则,我们将回到“远程工作,screen用于连接断开的情况下使用”
voretaq7 2013年

可能是正确的,但是我仍然不得不提交+按下按钮以查看更改,但是我当然使用语法检查器,但您没有想到。但是您知道在Web应用程序中工作时,在处理某些内容时需要进行大量页面刷新,再次commit + puhs会使它的容忍度不如现在。
Asgaroth,2013年

您应该能够进行以下设置:Origin→远程克隆→本地克隆。从本地克隆推送到远程克隆(不受任何Redmine限制)。当您处于似乎适合使用Redmine的状态时,可以将远程克隆推送到原始位置。
Alfe

0

我正在使用此sshfs选项来最大程度地减少延迟:

sshfs -o Ciphers=arcfour,compression=no,nonempty,auto_cache,reconnect,workaround=all user@development.net:/usr/local/gitdev/ ~/dev/code

它具有使用自动缓存和arcfour削片机的重新连接标志,所有sshfs解决方法。

您可以在sshfs手册上阅读有关这些选项的信息,我发现这些最快的sshfs选项至少在我的设置中如此。

ETA:有关sshfs性能的更多信息,请阅读此处:sshfs性能

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.