gpt4 book ai didi

mercurial - 将 Mercurial 存储库移动到另一台服务器

转载 作者:行者123 更新时间:2023-12-03 19:32:06 25 4
gpt4 key购买 nike

我们有一个项目存在于一个 mercurial 存储库中。

我们的客户希望通过执行以下操作来获得代码库的所有权:

  • 在属于客户的服务器上设置一个 mercurial 存储库。
  • 将现有代码导入新的 mercurial 存储库。

  • 实现第 2 步的最佳方法是什么?

    执行以下操作是否很简单:
  • 克隆现有的 mercurial 存储库:
    hg clone <existing mercurial repo URL>
  • 将克隆的存储库推送到新的存储库中:
    hg push <new mercurial repo URL>

  • 我错过了任何步骤吗? 呢? hgrc 文件?在将项目推送到新的存储库之前,是否必须以任何方式对其进行修改?

    最佳答案

    是的,你可以做你所说的,但是值得注意的是,如果你做一个简单的hg clone您的主存储库,那么两者之间将存在一个链接,这可能不是您想要的。您可以通过编辑 .hg/hgrc 删除此链接。文件并删除 default = ... [paths] 中的项目部分。

    我发现更好的方法是不克隆。这样您就没有存储库之间的链接,因为这可能是您想要的客户。

    基本方法是设置一个没有变更集的新存储库,然后通过以下三种方式之一引入所有变更集:

  • 将更改从您的存储库推送到新的存储库。
  • 将更改从旧存储库中拉入新存储库。
  • 如果您无权访问新存储库,请创建一个可以提供给客户的捆绑包 - 然后可以将其解包或拉入空存储库。

  • 像往常一样进行推送和拉取,但指定存储库位置:
    // create the empty repository
    hg init .
    // pull in everything from the old repo
    hg pull /projects/myOriginalRepo

    或推...
    // create the empty repository
    hg init /projects/myNewRepo
    cd /projects/myOriginalRepo
    hg push /projects/myNewRepo

    创建捆绑包可能是一种更好的方式,因为您可以将捆绑包写入 DVD 并用精美的贺卡将其包裹在蝴蝶结中送给您的客户:
    cd /projects/myOriginalRepo
    hg bundle --all ../repo.bundle

    一切都写到一个文件中,然后可以用 hg unbundle repo.bundle 提取或 hg pull repo.bundle , 到没有现有变更集的存储库中。

    关于 hgrc文件,正如在另一个答案中已经提到的,它不是受控文件,因此不会被复制。但是,任何内容都可能是诸如执行自动构建的钩子(Hook)之类的东西,或者在应用变更集之前对其进行验证。这种逻辑可能只对您自己的组织有意义,我建议您不希望将其强加给您的客户 - 毕竟,他们拥有您的代码库的所有权,并且可能拥有自己的代码库为此类事情准备的系统。

    关于mercurial - 将 Mercurial 存储库移动到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555278/

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