【问题标题】:Mercurial - Rename/Merge RepositoryMercurial - 重命名/合并存储库
【发布时间】:2013-06-05 19:45:55
【问题描述】:

我们使用 Mercurial 并设置了一个存储库服务器,所有本地/开发人员更改都被推送到/提取到该服务器。我从假期回来发现我们的一个回购已被替换。显然,开发人员在推送提交时遇到了问题,并认为唯一的解决方案是删除我们服务器上的 repo,并以新名称从他的机器上推送一个新的 repo。不知道怎么做,但在这样做的过程中,我们在项目被吹走之前丢失了项目的所有变更历史。

到目前为止,我的本地计算机上仍有完整的存储库历史记录,并且希望将新存储库与旧存储库合并并保留完整的更改历史记录。我很犹豫是否对我的机器进行拉取/更新,以防我丢失历史记录。

我还想更新服务器上的 repo 目录的名称,因为现在我们的一些工具已经破坏了 repo 的路径,并且希望恢复到原始目录名称,而不是更新我们所有工具的引用。

我想我可以使用hg rename 来做我想做的关于重命名的事情,但是我如何将两个 repos 合并为一个?

【问题讨论】:

    标签: mercurial merge rename


    【解决方案1】:

    我找到了一种方法来按照这里的说明进行合并:https://www.mercurial-scm.org/wiki/MergingUnrelatedRepositories

    • 首先,我复制了本地存储库,以防万一发生意外
    • 我将服务器上的 repo 克隆为我想要的名称,并且与我的本地 repo 匹配
    • 我将服务器 repo 拉到了我的本地,而不是进行更新,而是进行了合并
    • 已解决合并差异并在本地提交
    • 已将更改推送到新服务器存储库,确认完整的更改历史记录已到位
    • 删除了旧的服务器存储库

    【讨论】:

    • 你描述了一组非常奇怪的事情;因为如果您在返回时找到的服务器中确实缺少回购的过去历史记录,那么它应该是一个不相关的回购,您将无法从中合并。所以不清楚你在那里处理什么问题。
    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多