在Mercurial中使用hg revert

时间:2010-02-10 18:26:39

标签: mercurial

我正在使用Mercurial。我做了一个存储库的克隆。为了调试,我在java文件中更改了几行代码。我没有提交这些更改。我只是想将它们恢复到原始状态,就像在存储库中找到的那样。我尝试了hg revert filename.java,它确实还原了它,但现在当我hg status时,我看到我的文件夹中添加了其他文件,如:

? filename.java.orig

我可以删除这些文件,为什么Mercurial在使用revert时会创建它们?

8 个答案:

答案 0 :(得分:86)

您还可以使用标志--no-backup,并且不会创建.orig文件

hg revert --no-backup filename.java

从Mercurial 2.0开始,您可以使用标志-C来压缩.orig文件的创建

hg revert -C filename.java

答案 1 :(得分:47)

是的,你可以删除它们。这是一个安全功能,以防你还原你不想恢复的东西。

答案 2 :(得分:23)

我发现purge extension方便了。用法:

hg purge

“此扩展程序清除Mercurial未跟踪的所有文件和目录” - 包括.orig文件,但不包括被忽略的文件(除非您使用--all)。

答案 3 :(得分:8)

正如其他人所指出的那样,您可以安全地删除这些文件。

您可以通过从您的仓库的根目录执行此命令来删除它们:

rm `hg st -un | grep orig`

如果您想要还原,并且根本不关心备份原始文件,那么您需要的命令是:

hg update -C

答案 4 :(得分:6)

这些是您还原之前的文件副本。如果您不需要,可以手动或使用Purge extension

删除它们
hg clean

答案 5 :(得分:5)

可以为合并和还原操作创建这些备份文件(参见man page)。您可以根据需要添加忽略规则,或者只是在不再需要时删除它们。

答案 6 :(得分:0)

这些是相当普遍的,由各种操作产生。看一眼我工作的中等大小的存储库就找到了其中的237个。我不喜欢删除可能最终有用的内容,而且我没有理由为具有相同后缀的合法文件命名,所以我将以下内容添加到.hgignore中:

.\.orig$

答案 7 :(得分:0)

我自己制作了这个批处理文件。

IF "%1%" == "d" (
    del /s *.orig
    del /s *.rej
 ) ELSE ( 
    del /s /p *.rej
    del /s /p *.orig
 )

帮助: 将此内容保存为 orig.bat

  1. 运行 orig d ,一次删除所有拒绝和原始文件,无需确认
  2. 运行 orig 以删除确认[安全机制]
  3. 的文件

    希望这有用。