如何在Mercurial中恢复目录结构?

3

我在我的mercurial仓库中重命名了一些目录[当时不知道hg rename命令],只是在我的Linux机器上执行了mv命令,然后我意识到我想要它们回到之前的状态,所以我进行了hg rollback。但它没有将事物恢复到先前的状态,我该如何获得我的最后提交?

2个回答

2
hg rollback 命令会移除你最新的提交¹。你需要使用 mv 将目录移回原处,并重新提交你的最新更改。
当你再次遇到相同的情况时,可以使用 hg revert 命令将工作副本中的更改替换为当前版本的内容。但由于你的当前版本是上一次提交之前的版本,现在使用 revert 命令也会撤销你最新提交的更改。
作为经验法则,永远不要使用 rollback² 命令,因为使用 mq 扩展可以更加安全地达到 rollback 的效果。
¹技术上来说,它移除了最新的事务,但很可能你的最后一个事务就是一次提交。
(注:保留 html 标签)

我很喜欢您省略了第二个脚注... :-) 我认为您的经验法则已经足够好了 —— 刚开始使用 Mercurial 的人最好不要使用 rollback。 - Martin Geisler
1
@MartinGeisler 我受到德意志联邦铁路个人时刻表的启发,其中经常出现备注e),其内容为“e) .”。 - Rudi

0

你想要回滚。请尝试:

hg revert -a

或者如果您只想还原某个目录,可以指定一个目录。


“hg revert” 很有可能在 “hg rollback” 之后破坏数据,因为回退会清除提交的顶部。 - Rudi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接