【发布时间】:2023-03-13 00:42:01
【问题描述】:
要在客户端的暂存环境中工作,我必须通过 VPN 进行连接,该 VPN 会锁定所有正常的网络流量并阻止任何与 Internet 的连接。
这将立即阻止使用任何“正常”VCS 解决方案,因为无法访问服务器。一个解决方案是在本地创建一个 DVCS 存储库(git?),然后在需要时将更改推送到主服务器。这个计划有一个缺陷。
整个代码库大约 14GB。通过互联网下载所有这些需要一些时间,尤其是当我可能在每种情况下都在 3 或 4 台不同的机器上工作时。对于 DVCS 来说,这似乎很愚蠢而且过分。
TL;DR 任何 DVCS 解决方案都可以让您在不需要代码库的情况下推送到主服务器/存储库?错误示例:将 .git 文件夹(不是 14GB 代码库)复制到另一个目录,并在与 VPN 断开连接后将其推送到主服务器。
【问题讨论】:
-
没有任何子项目的14GB代码库(不能拆分)?我认为没有真正适用于部分历史记录的 dvcs(这就是您要寻找的)。
-
由于 VPN 的锁定特性,除了来自客户端的基本的每日、每周和每月备份过程外,很难在项目上实施任何类型的版本控制。可以将其变成子项目,但其中最大的将堆积在 4GB 左右。这个代码库没有以前的 vcs 历史记录,只是——幸运的是? -- 一组令人惊叹的文档,我们一直热衷于更新。
-
那么问题是将数据从客户端(已经有代码库)传输到服务器?我对吗?一些可能对您有所帮助的要点:hg 存储库或 重新打包 git 存储库可能远小于 14GB(在 hg 的情况下,它是 gzip 压缩的,git 可能会通过一些 delta 压缩执行类似的操作)。然后你只需要将 repo 推送到服务器一次,之后它只会是更小的增量。
-
@tonfa 您是正确的,因为问题是将代码库(在 VPN 上)传输到服务器(在 Internet 上)。
-
我建议您尝试将文件放入 hg 和 git repo 并测量 .hg 和 .git 目录的大小。也许你会有一个惊喜。
标签: language-agnostic version-control dvcs vpn