我有一个更新Mercurial的奇怪问题。每当我将文件添加到我的存储库然后更新存储库的另一个位置(例如在CI过程中)时,就会发生错误“找不到匹配”。然后,当我删除到整个文件夹并再次克隆它没有问题,并添加新的文件。更新和删除不会产生问题
当我执行“a”验证时显示以下内容:
data/test.txt.i@54:丢失revlog! 54:空或缺少test.txt test.txt@54:b80de5d13875在清单中 未找到3个完整性错误 碰到的问题! (第一次损坏的变更集 似乎是54)
知道可能导致这种情况的原因吗?
修改
完整的痕迹:
ThoughtWorks.CruiseControl.Core.CruiseControlException: 源控制操作失败: 中止:data /test.txt.i@b80de5d13875: 没找到匹配! 。处理命令:hg 更新 - 非交互式 ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial.GetSource(IIntegrationResult 结果)在 ThoughtWorks.CruiseControl.Core.IntegrationRunner.Build(IIntegrationResult 结果)在 ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest 请求)
答案 0 :(得分:2)
“存储库损坏”在此处不是专利,因为您可以再次克隆,并检索所有内容(旧的和新添加的)。
所以要检查的不同点是:
1 /处理某种冲突(阻止data/test.txt.i@b80de5d13875
写入的内容,即使这样也会记录文件内容)
2 / hg revlog
和hg debugindex
,查看您的回购中实际记录的版本。
3 / hg verify
以排除任何回购贪污
4 / check the integrity of your repo