首页 > 解决方案 > hg 将补丁应用于工作目录是什么意思?

问题描述

我有生以来第一次尝试使用补丁(恢复损坏的存储库)。所以我对这个概念不是很熟悉,虽然我读过一点。我正在使用 TortoiseHg。我创建了一个补丁(作为文件),切换到另一个存储库,并正在尝试导入它。我已经要求 THg 将其导入存储库(其他选项是货架和工作目录)。当我单击 Import 时,THg 说补丁已导入到工作目录,并且控制台显示:

% hg import --verbose --"PATH\1059.patch"
将 PATH\1059.patch
应用到工作目录
[命令成功完成日期]

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

我在 Windows 10、TortoiseHg 4.9 和 Mercurial 4.9 上。

标签: mercurialtortoisehg

解决方案


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

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

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

首先将更改应用到工作目录(除非指定 --bypass),如果有未完成的更改,导入将中止。

THG 导入窗口如下所示:

在此处输入图像描述

根据文档

您可以选择直接导入存储库、工作文件夹、架子文件或补丁队列。

我想如果你检查“补丁将被导入”下拉菜单,它可能被设置为“工作目录”或类似的。如果您将其更改为“存储库”,我认为它会为您提交。


推荐阅读