gpt4 book ai didi

mercurial - 同步 2 个 mercurial 存储库

转载 作者:行者123 更新时间:2023-12-04 06:11:18 26 4
gpt4 key购买 nike

假设我们有以下开发设置:

  • 位置 A 的团队 1 有一个中央 mercurial 仓库,所有这些团队的工作都被推送到这里
  • 位置 B 的团队 2(距离团队 1 半个地球,互联网连接不稳定),拥有自己的中央 mercurial 存储库,所有这些团队的工作都被推送到这里

  • 如何安全地同步团队 1 和团队 2 的中央存储库而不会遇到合并/多头等问题?

    我会假设从一个存储库(例如位置 A)到另一个存储库的预定推/拉将处理这个问题,但是我如何处理涉及多个头的情况?

    例如:
    团队 1 推送提交,同时团队 2 也推送。现在,当位置 A 的 repo 拉动更改时,它会得到多个头。现在我该怎么办?这里的解决方案是让团队 1(在位置 A)的开发人员合并头部并将它们推回他的中央存储库,以便下一个预定的位置 B 推送插入合并?如果团队 2 已经将其他更改推送到其中央存储库,这些会导致问题,对吗?

    这种问题还有其他解决方案吗?

    我想避免的是,团队 2 必须等待其互联网连接稳定才能将其更改推送回团队 1 ...

    我很高兴在这里有任何帮助;-)

    最佳答案

    基本规则是,永远不要将新头推送到远程存储库。因为如果你这样做,你将创建突然出现在另一个团队的存储库中的头,他们必须合并,这很令人困惑。如果您尝试这样做,除非您指定 --force 参数,否则 Mercurial 会提示这一点。

    但除此之外,这是相当标准的票价;您指定一个或多个人负责合并两个存储库(每天左右),然后从两个分支中提取所有更改,合并两个负责人,然后将结果推送回两个存储库,就像任何团队成员都必须做的那样.如果在合并时推送了某些内容,则必须在推送之前进行另一次合并(希望没有冲突)。

    为了部分自动化,您可以在两个团队存储库服务器上设置一个 post-push hook,它将更改异步推送到另一台服务器,如果合并失败,则向负责合并的人员发送电子邮件,因为它会创建远程头。因为服务器不同步的时间窗口不是很长,所以大多数情况下这可能会成功。它应该包含一些逻辑,如果它已经在推送则不推送,如果连接断开则稍后重试。

    关于mercurial - 同步 2 个 mercurial 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7739171/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com