如何实现git checkout的等效功能<;承诺>;在mercurial中使用子存储库?
根据git reset--hard--的等价物是如何实现git checkout的等效功能<;承诺>;在mercurial中使用子存储库?,git,mercurial,Git,Mercurial,根据git reset--hard--的等价物是hg revert-a--no backup--。在这样做之后,我希望类似于git checkout的hg update-c能够工作 但是它失败了,出现了错误中止:子存储库'subrepo/subsubrepo'中未提交的更改,即使在运行hg revert-a之后,subrepo/subsubrepo和subrepo中没有备份。因此,仅确保子回购和主回购“干净”是不够的。您还必须确保子回购更新到与主回购的提交相对应的提交 在我看来,hg rever
hg revert-a--no backup--
。在这样做之后,我希望类似于git checkout
的hg update-c
能够工作
但是它失败了,出现了错误
中止:子存储库'subrepo/subsubrepo'
中未提交的更改,即使在运行hg revert-a之后,subrepo/subsubrepo
和subrepo
中没有备份。因此,仅确保子回购和主回购“干净”是不够的。您还必须确保子回购更新到与主回购的提交相对应的提交
在我看来,hg revert
在大多数情况下比它的价值更麻烦(当你想取消合并时,它的行为也很奇怪)。如果您只是想让存储库看起来像工作目录的父目录,那么执行hg-up-C.
(注意大写字母-C
,记住这不会留下任何备份)通常更简单;您可以使用其他提交来替换
,以便在一个步骤中更新该提交。因为更新是递归的,所以在子repo上应该可以正常工作。但是,它将通过一个命令在整个存储库(包括Subrepo)上递归操作,因此请确保您没有放弃原本要保留的更改