我正在尝试使用hg convert --filemap清理一个存储库。在文件地图中,除了rename之外,任何选项都能很好地转换。如果我向filemap添加了任何rename选项,那么它在第一次与abort: unable to convert merge commit since target parents do not merge cleanly合并时就会失败。
我试着只添加一个虚拟的rename foo bar选项(回购中没有一个foo或bar路径),结果也是一样的。
我尝试了一个真正的重命名(现有的第一条路径),同样发生。只要重命名的速度在那里,它就会中断。
这是个虫子吗?我做错了什么?
更新:复制:
创建文件a,在其中写一些东西,提交。更新到父级,在a中编写其他内容,提交。与其他头部合并,手工修复冲突。
Filemap由一行和一行组成:rename foo bar。运行hg convert。如果提交不能自动合并,它将失败。
发布于 2019-08-17 14:05:35
根据扩展wiki规则定义的文件地图无法重现错误:
原始回购
Repo>hg log --style changelog
2019-08-17 Me
* file1.dat, file1.txt:
Merge all from Data1
[21caf63b7011] [tip] <Data2>
* file1.dat:
Compability fix
[77667c9ad22c] <Data2>
* file1.dat, file1.txt:
Mod for Data2
[7253bf25d7e7] <Data2>
* file1.dat, file1.txt:
Mod for Data1
[de1f80454b7b] <Data1>
* file1.dat, file1.txt:
Mod1
[7f1dd9e27ceb]
* file1.dat, file1.txt:
Initial tree
[d10d46c86e0f]改装回购
Conv>hg log --style changelog
2019-08-17 Me
* core.code, data.dat:
Merge all from Data1
[350d1675a713] [tip] <Data2>
* data.dat:
Compability fix
[7b13e52e0887] <Data2>
* core.code, data.dat:
Mod for Data2
[05f2eae8379c] <Data2>
* core.code, data.dat:
Mod for Data1
[6776b7ac4388] <Data1>
* core.code, data.dat:
Mod1
[c733197f909c]
* core.code, data.dat:
Initial tree
[19230ad05c7a]菲尔马普
rename "file1.txt" "core.code"
rename "file1.dat" "data.dat"发布于 2021-05-14 15:16:17
我也犯了同样的错误,为此我将转换分成多个步骤。
问题似乎是当您在文件地图中的重命名和包含的历史记录中的合并时,在运行一次convert。所以我做了这个:
hg convert。基本上,只是将原始存储库中的东西包含/排除到临时中间回购中。hg convert。这将从中间存储库到最终存储库。即使合并还在历史上,也没有问题。这解决了“中止”的问题。另外,另一个好处是,由于步骤1是最长的(在大约20000个变更集中只选择了几个更改集),所以对重命名进行迭代变得容易得多。我发现文件映射有点困难,因为事情会默默地失败。
我正在使用"Mercurial Distributed SCM (版本5.7)“
https://stackoverflow.com/questions/57430015
复制相似问题