hg将补丁应用到工作目录是什么意思?

时间:2019-04-12 16:10:08

标签: mercurial tortoisehg

我一生中第一次尝试使用补丁程序(以恢复损坏的存储库)。因此,尽管我已经阅读了一些内容,但我对这个概念不是很熟悉。我正在使用TortoiseHg。我创建了一个补丁程序(作为文件),切换到另一个存储库,并尝试导入它。我已经要求THg将其导入到存储库(其他选项是Shelf和Working Directory)。当我单击“导入”时,THg说补丁已导入到工作目录中,并且控制台显示为:

  

%hg import --verbose-“ PATH \ 1059.patch”
  正在应用PATH \ 1059.patch
  应用于工作目录
  [命令已于DATE成功完成]

,我在历史记录窗口中看不到任何更改(没有修订1059)。我想知道我现在应该做什么或做错了什么。

我在Windows 10上使用Mercurial 4.9的TortoiseHg 4.9。

2 个答案:

答案 0 :(得分:0)

以任何方式在工作目录中对某些内容进行修改时,它不会自动影响存储库中的任何内容。您必须手动提交这样的更改。

对于命令行hg patch,我认为默认设置是自动提交。 THG可能正在使用--no-commit选项。您可以在THG输出/日志窗口中检查它。

对于命令行,帮助import中也有此注释...

  

首先将更改应用于工作目录(除非--bypass为       指定),如果有重大更改,导入将中止。

“ THG导入”窗口如下所示:

enter image description here

根据the docs

  

您可以选择直接导入到存储库中,   工作文件夹,文件架文件或修补程序队列。

我认为,如果您检查“补丁将被导入到”下拉列表,则可能会将其设置为“工作目录”或类似名称。如果您将其更改为“存储库”,我认为它将为您提交。

答案 1 :(得分:0)

除非提供了更好的答案,否则我必须假定此行为是由于存储库损坏导致的:对未损坏的存储库进行完全相同的操作时不会观察到这种情况。