Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Merge Mercurial:“;“未找到匹配项”;执行合并时,“合并”;没有节点&引用;如果我想脱光衣服_Merge_Mercurial - Fatal编程技术网

Merge Mercurial:“;“未找到匹配项”;执行合并时,“合并”;没有节点&引用;如果我想脱光衣服

Merge Mercurial:“;“未找到匹配项”;执行合并时,“合并”;没有节点&引用;如果我想脱光衣服,merge,mercurial,Merge,Mercurial,我有一个mercurial dropbox,托管在dropbox文件夹中,我从另一个存放在我办公室PC中的repo推送它。这样,我可以在办公室处理我的项目,并在家中执行热修复 同步时发生错误,因此某个文件未正确同步。我有一个修订版(n.678),不能与实际的头部合并 如果我尝试合并,我会收到此消息 中止: data/hotelsclick/src/main/res/values/string-array.xml。i@5f2b6faa86a1: 没有找到匹配项 如果我试图用hg strip 67

我有一个mercurial dropbox,托管在dropbox文件夹中,我从另一个存放在我办公室PC中的repo推送它。这样,我可以在办公室处理我的项目,并在家中执行热修复

同步时发生错误,因此某个文件未正确同步。我有一个修订版(n.678),不能与实际的头部合并

如果我尝试合并,我会收到此消息

中止: data/hotelsclick/src/main/res/values/string-array.xml。i@5f2b6faa86a1: 没有找到匹配项

如果我试图用hg strip 678删除无用的修订,我会得到

中止: data/hotelsclick/src/main/res/values/string-array.xml。i@5f2b6faa86a1: 没有节点

如果我执行了hg验证,这就是结果

libs/日期间隔选择器/.git/index@678:a83e1b77d446在舱单中 未找到8009个文件、681个变更集、14161个总修订2 遇到完整性错误!(第一个损坏的变更集似乎是 (678)

如果我试着推怎么办

搜索更改 中止:推送创建新的远程磁头16c4912af9a5! (合并或参见“hg帮助推送”了解推送新磁头的详细信息)

所以我不能合并,不能删除那个修订,不能推。我被卡住了,我不知道为什么。有人能帮忙吗?我不在乎678修订版的内容,如果可以的话,我很乐意删除它


谢谢

首先,我强烈建议不要在版本控制系统中使用文件同步服务(无论是Dropbox还是Google Drive或其他)。这些服务不尊重存储库操作的原子性;即使是带有单个文件存储库(如化石)的版本控制系统也不是100%安全的,即使只有一个用户在使用该服务

其次,您需要修复一个部分损坏的存储库。在理想情况下,您可以在某个地方有一个干净的备份,即使它不是完全最新的,并且可以有选择地重播缺少的修订(例如使用
hg export
hg import

除此之外,下一步就是看看是否可以进行部分克隆。例如,您可以尝试:

hg clone -r 680 /path/to/repo /path/to/clean_repo
如果只有数据有缺陷,通常应跳过678版。然而,增量压缩的工作方式,在678之后按顺序进行的修订也可能已经损坏。在本例中,我将尝试使用
-r 677
而不是
-r 680
,并查看
hg export
是否适用于复制修订版
679
680

如果这样做不起作用,并且损坏更严重,我会尝试转换扩展:

hg --config extensions.convert= convert --config convert.hg.ignoreerrors=True /path/to/repo /path/to/clean_repo

请注意,这样的转换可能会更改单个存储库条目的哈希值,这意味着您必须在任何地方更新存储库内容。

谢谢,我将repo从/old_repo克隆到/old_repo_new,然后将其克隆回/old_repo。断开的提交不是在al克隆的!非常感谢你!另外,到现在为止,我已经在dropbox上使用mercurial一年了,以前从未出现过问题。因为我是唯一一个在这个项目上写代码的人,所以我很少需要合并,所以到目前为止这是一个完美的解决方案:-)需要记住的重要一点是,当你开始工作时,你应该暂停同步,一旦你完成了,你应该批量同步所有东西。
hg --config extensions.convert= convert --config convert.hg.ignoreerrors=True /path/to/repo /path/to/clean_repo