【问题标题】:Push DVCS repository to master without needing codebase无需代码库即可将 DVCS 存储库推送到 master
【发布时间】: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


【解决方案1】:

如果不以某种方式将代码库传输到远程服务器,我不知道有任何 DVCS 可以工作。

但是现代 DVCS 像 git 或 mercurial 能够压缩初始代码库。在客户端上创建初始存储库后,您经常会惊喜地发现 .hg.git 目录比添加的工作目录小得多(对于 git,您需要先重新打包存储库才能看到空间增益)。

对于更小的传输,可以使用 mercurial 的 bundle feature(它使用 bz2 而不是 zlib)。

【讨论】:

    猜你喜欢
    • 2022-08-14
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 2012-08-25
    • 2019-11-06
    相关资源
    最近更新 更多