【问题标题】:Using hg revert in Mercurial在 Mercurial 中使用 hg revert
【发布时间】:2011-01-15 09:49:56
【问题描述】:

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

? filename.java.orig

我可以只删除这些文件吗?为什么 Mercurial 在我使用 revert 时会生成它们?

【问题讨论】:

    标签: mercurial


    【解决方案1】:

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

    hg revert --no-backup filename.java
    

    从 Mercurial 2.0 开始,您可以改为使用标志 -C 来禁止创建 .orig 文件

    hg revert -C filename.java
    

    【讨论】:

    • 保存一些输入:hg revert -C filename.java
    • -C 快捷方式是在 mercurial 2.0 中引入的,请参阅 mercurial.selenic.com/wiki/WhatsNew
    • 我不确定我是否理解-C--no-backup 的缩写...是Courageous revert 吗?
    • 我猜它代表干净,因为它与调用hg revert FILE && hg clean具有相同的效果。
    【解决方案2】:

    是的,您可以删除它们。这是一项安全功能,以防您还原了您不想还原的内容。

    【讨论】:

      【解决方案3】:

      我觉得purge extension 很方便。用法:

      hg purge
      

      "此扩展清除所有未被跟踪的文件和目录 水银”

      ...包括 .orig 文件,但不包括被忽略的文件(除非您使用 --all)。

      【讨论】:

        【解决方案4】:

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

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

        rm `hg st -un | grep orig`
        

        如果你想恢复,根本不关心备份原始文件,你想要的命令是:

        hg update -C
        

        【讨论】:

          【解决方案5】:

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

          hg clean
          

          【讨论】:

          • 标准 Mercurial 中有“clean”命令——也许您正在考虑清除扩展和hg purge
          • @Martin: 输入 hg clean 表示 clean 由清除扩展提供
          • Casebash:啊,对了——purge 扩展提供了两个名称下的命令:hg purgehg clean
          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            这些是相当常见的,由各种操作产生。浏览一下我工作的一个中等大小的存储库,会发现其中有 237 个。我不喜欢删除最终可能有用的东西,而且我没有理由用相同的后缀命名合法文件,所以我将以下内容添加到 .hgignore 中:

            .\.orig$
            

            【讨论】:

              【解决方案8】:

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

              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确认删除文件[安全机制]

              希望这有帮助。

              【讨论】:

                猜你喜欢
                • 2019-01-06
                • 2012-04-10
                • 2012-12-18
                • 2011-04-08
                • 2017-11-12
                • 2012-11-25
                • 2023-04-10
                • 2011-07-07
                • 1970-01-01
                相关资源
                最近更新 更多