2

我的存储库中有一个文件夹。然后我将此文件夹设为子存储库(具有完全相同的文件),提交并推送此更改。现在我无法通过该提交更新回来。这是我收到的信息:

% 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]

subreposubrepo现在所在的文件夹的名称在哪里。有什么方法可以解决这个问题并更新到早期版本?

4

2 回答 2

6

找到解决方案:删除有问题的文件夹,然后使用“放弃更改”选项进行更新。像魅力一样工作。

于 2012-12-05T16:14:49.930 回答
5

经过一番谷歌搜索,这看起来与警告 3直接相关,引用“更新/合并当前无法完全删除子存储库,因为这可能会丢失仅本地更改”。还要注意 5 个状态“未处理普通文件和子存储库之间的冲突”。

有趣的是,我以前从未见过的东西,子存储库被认为是“不得已而为之的功能”,也就是说,如果您能提供帮助,您应该尽量不要使用它。

可能不是您要找的答案。

一种解决方法是通过克隆来获得您的修订......您可以在创建子存储库之前使用基于修订的新克隆:

% hg clone --repository <path to repo> new_copy --rev 1159

这将克隆到那时的所有内容,因此您将丢失任何“未来历史”,但至少能够恢复到早期版本。

于 2012-12-05T15:01:57.593 回答