我的存储库中有一个文件夹。然后,我将这个文件夹设为子存储库(包含完全相同的文件),提交并推送此更改。现在我不能通过提交来更新了。下面是我得到的信息:
% hg update --repository <path to repo> --config ui.merge=internal:fail --rev 1159 --clean
abort: path 'subrepo\include\header.h' is inside nested repo 'subrepo'
[command returned code 255 Wed Dec 05 11:57:45 2012]其中,subrepo是子存储库当前所在的文件夹的名称。有没有办法克服这一点并更新到更早的版本?
发布于 2012-12-06 00:14:50
找到了一个解决方案:删除有问题的文件夹,然后使用“放弃更改”选项进行更新。很有魅力。
发布于 2012-12-05 23:01:58
经过一些谷歌搜索,这看起来与Caveat 3直接相关,引用“更新/合并当前不能完全删除子存储库,因为这可能会丢失仅本地的更改”。另外,警告5状态“未处理正常文件和subrepos之间的冲突”。
有趣的是,我以前从未见过,Subrepositories被认为是一个"feature of last resort",意思是说一些你不应该使用的东西,如果你可以的话。
可能不是你想要的答案。
一种变通办法是通过克隆来获得您的修订...您可以在创建子存储库之前使用基于修订的新克隆:
% hg clone --repository <path to repo> new_copy --rev 1159这将克隆到该点之前的所有内容,因此您将丢失任何“未来历史”,但至少能够返回到较早的版本。
https://stackoverflow.com/questions/13720517
复制相似问题