gpt4 book ai didi

mercurial - 将一个 Mercurial 存储库用作两个 Mercurial 安装的本地存储库

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

我们有一个专门的问题跟踪 (Redmine) 机器,它有一个 Mercurial 存储库(称为“Redmine 存储库”)。 Redmine 设置为使用该存储库,据我了解,Redmine 从未对该存储库进行任何更改。所有开发人员(最终)将他们的更改推送到该存储库。

我们还有一台专用的生产机器,它可以执行代码,但不用于对代码进行任何更改。

我们有两个选择:

  • 在生产机器上设置另一个 Mercurial 存储库(称为“生产存储库”)。当新的生产版本获得批准时,将更改从 Redmine 存储库拉到生产存储库,然后将本地工作目录更新为生产存储库中的适当修订版。
  • 在生产机器上重用现有的 Redmine 存储库,将其指定为本地安装 Mercurial 的存储库(Redmine 存储库位于可以轻松安装在生产机器上的共享驱动器上)。每当批准新产品时,将本地工作目录更新为 Redmine 存储库中的适当修订版。

  • 使用选项 #2,我们摆脱了额外的“拉动”步骤(从 Redmine 存储库到生产存储库),这稍微简化了过程。但我不确定两个 Mercurial 安装使用单个存储库是否可以,就好像它是本地的一样。

    感谢您对此选择(或此设置的任何其他方面)的任何评论!

    最佳答案

    这听起来是个坏主意。 Mercurial 在保持其存储库原子读写方面做得非常好,但是当存储库位于共享驱动器上时(即使它只是一个使用它的本地存储库),它会更难做到这一点,因为网络共享(尤其是在 Windows 上)并不总是像他们所说的那样使事情变得原子化。

    理想情况下,您的存储库(工作目录和存储库)尽可能在本地,并且您使用推/拉来获取/从网络共享的变更集。如果这是不可能的,那么在远程文件系统上使用一个本地应用程序是最好的主意。

    如果您确实想尝试使用相同的底层存储库创建两个克隆,请查看 ShareExtension ,随 Mercurial 一起提供,但仅适用于高级用户。

    与其试图背负,不如在你的 redmine 存储库中放一个这样的钩子(Hook):

    [hooks]
    changegroup = hg push //production/clone

    这将自动将到达 redmine 的变更集推送到生产环境。

    关于mercurial - 将一个 Mercurial 存储库用作两个 Mercurial 安装的本地存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100389/

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