我最近让 IDE 替换了整个项目中的一个琐碎文本,并且只有在对 Mercurial 进行其他更改后才意识到这个错误。我惊慌失措并且(对 Mercurial 知之甚少,现在在阅读了权威指南开始更好地了解它之后)尝试了所有似乎使我的错误“消失”的命令。不用说,这是我并不引以为豪的举动。
我记得尝试过的事情是hg update tip
和hg rollback
。由于我仅在本地计算机上使用 Mercurial,并且不从任何其他存储库中提取或推送,我认为这些命令不会导致我的主要问题:现在缺少很多文件 - 正是我让 IDE 制作的文件中的错误替换。
困扰我的是,我已经hg status --change REV
找到了所有在修订中更改的文件,而被删除的文件并没有出现在那里。
PHPStorm 有一个本地历史记录,它显示了哪些文件现在丢失了。那个(只有那个?)使我能够找到各个文件并恢复到它们最后一个已知的修订版:
hg log -l 1 path/to/foo.txt
hg revert -r <my revision> path/to/foo.txt
...但这对于数百个已更改的文件来说太耗时了。请告诉我有更好的方法。PHPStorm 历史记录很好,也可以恢复文件,但它会将它们恢复到已经被错误更改的位置。
非常感谢您的帮助,我发誓要学习和欣赏 Mercurial,而不仅仅是从今天开始的上下文菜单项。