代码之家  ›  专栏  ›  技术社区  ›  basszero

此设置的良好Mercurial使用模式是什么?

  •  13
  • basszero  · 技术社区  · 17 年前

    我们在同一个封闭的(呃,愚蠢的政府)网络上有两个开发商,另一个开发商开车几分钟就到了,还有第四个开发商在全国的半路上。对于不在同一网络上的人来说,电子邮件、FTP和删除媒体都是可能的传输方法。

    我是两个封闭式网络开发者之一,考虑我们的“主”位置。

    什么是最适合团队的Mercurial设置/模式?向远程开发人员传输更改的最佳方法是什么?由于我是负责人,我想我必须保留至少一个主回购与另一个本地回购,我可以在其中发展。彼此只需要一个主人的复制品。这是对的吗?我想这也让我负责合并?

    正如您所看到的,我仍在努力围绕分布式版本控制进行研究。我认为在连接情况下没有其他方法可以做到这一点。

    3 回复  |  直到 16 年前
        1
  •  1
  •   nlucaroni    17 年前

    网络之外的用户可以 patches 和/或使用 email 将更新发送到主回购协议或其他人,如您自己合并它们。其他内部人员可以拥有本地副本,比如你自己,并进行合并——但是如果你有这些脱离网络的补丁,那么一个人处理它们可能会更好,这样就不会有人感到困惑,但这是你必须考虑的事情。

    通过另一种方式同步,您可以创建一个补丁,然后他们通过电子邮件或获取一个闪存驱动器给远程开发人员来修补他们的系统。你需要团队成员的良好沟通,我很感谢我没有站在你的立场上。

    这些是我唯一的建议——好吧,很明显,给他们一个VPN连接!我很想听听进展如何,什么计划稳定到每周的最佳状态,等等。

        2
  •  3
  •   Martin Geisler    16 年前

    补丁程序是一种简单而通用的解决方案。

    对于移动较大的更改组(尤其是二进制更改和合并),Mercurial提供二进制捆绑包。包基本上是在网络上发送的二进制文件。 hg push 但在这里它被捕获在一个文件中。

    让我们想象一下,我不知何故得到了一个克隆(通过闪存驱动器、DVD等)。称之为 upstream . 然后我做第二个克隆,叫它 devel . 我把我所有的发展 迪维尔 并进行大量的提交、合并等操作。因为Mercurial是分布式的,所以我可以离线完成所有这些操作。

    查看中缺少哪些变更集 上游 我愿意

    % hg outgoing ../upstream
    

    当我有东西要送的时候,我可以用

    % hg bundle changes.hg ../upstream
    

    获取一个二进制压缩文件,其中包含变更集及其所有元数据。然后我可以将这个文件刻录到CD上,然后通过邮件发送…

    包的接收者可以

    % hg incoming changes.hg
    

    查看变更集列表和

    % hg pull changes.hg
    

    将变更集解包并添加到他的存储库中。然后他很可能不得不合并——这就好像他是通过HTTP或SSH直接从您的存储库中提取的。

    注意, 上游 存储库仅用作记住上游存储库中已找到哪些变更集的方便方法。您还可以记下变更集ID并使用 hg bundle --base 绑定以指定基(公共)变更集时。见 hg help bundle look in the wiki .

        3
  •  0
  •   basszero    17 年前

    对的。任何东西进入封闭网络的唯一途径就是通过闪存驱动器。

    推荐文章