2

最近迁移到 Mercurial。

由于在旧的 SVN 存储库中大量使用外部组件,我们相应地使用 Subrepos,并且有一个 CI 服务器经常拉/推到中央存储库。所以很难追踪到底发生了什么,开发人员无法重现确切的步骤。

但是,在拉动之后,我们得到了这样的错误:

RepoLookupError: unknown revision '766981bc81dc78fe24d5fe5c7d68e36c66858e73'
abort: unknown revision '766981bc81dc78fe24d5fe5c7d68e36c66858e73'!

而且这样的变更集在任何地方都找不到,也不是在服务器上,也不是在本地存储库中。每天两次遇到这种情况。

不知何故,来自服务器的 .hgsubstate 引用了未知的子存储库变更集。

而且我们没有做任何可能有害的事情,只是通常的提交/拉取/合并。

据我们了解 - 这是一种不可能的情况(您不能提交 .hgsubstate 引用未提交或不存在的子存储库变更集)。

任何想法我们可能做错了什么或这怎么会发生?

编辑:也不使用 mq

4

1 回答 1

2

要创建未知(不可见)修订,请这样做。

客户 1

  1. 在子仓库中提交更改
  2. 将子仓库中的提交链接到子仓库中的提交(子仓库变更集 ID 将在 .hgsubstate 文件中更新)
  3. 回滚子存储库提交(现在您在主存储库中获得了指向子存储库中不存在的变更集的链接)
  4. 将两个存储库推送到服务器

客户 2

  1. 从服务器拉取

发生错误!

于 2012-01-27T21:15:14.567 回答