TortoiseHg - 如何在不先提交的情况下创建补丁

21

当我想从未提交的更改中创建补丁时,我真的必须先提交吗?TortoiseHg不允许在执行提交之前创建补丁吗?

4个回答

22

TortoiseHg 2.0.2:在工作台中,您可以右键单击工作目录行,并从上下文菜单中选择导出 / 复制补丁 - 所得到的差异将被放置在剪贴板中。

当然,您不会像对提交执行相同操作时那样在补丁开头获得更改集标头和提交消息:

# HG changeset patch
# User John Doe <john@doe.com>
# Date 1300889184 -7200
# Node ID 0050250004150030450034543labc23598235325
# Parent  098140937509174fbca7089686d986986e06f097
Sample commit message ...

感谢xanatos的帮助:

你可以在工作台中启用包含二进制数据的差异的 "git 格式": 文件->设置->比较->Git 格式 = True (默认值未指定,似乎等于 False)


4

1

对于工作台(tortoisehg)中的单个文件,您需要点击您的工作目录,在文件列表窗格中右键单击该文件,然后按照 @alexandrul 的说法点击 复制补丁


接下来,存储库>导入补丁有一个“从剪贴板导入”的按钮。 - Jeroen K

0

虽然那个特性长期以来就已经被要求了,但截至6.4.2(2023年),TortoiseHg仍未提供直接的方法。

不过你可以使用工作目录行的上下文菜单选择导出 -> 复制补丁,然后将剪贴板中的差异结果粘贴到一个新文件中(使用文本编辑器如记事本)。

请注意:

  1. 这样的补丁将排除二进制文件差异,除非启用了Git格式。Git格式可以在 文件- >设置中的 Diff 选项卡中启用。(感谢alexandrul和xanatos)
  2. 这样的补丁将排除新文件,即使它们被选择了。这可以通过将这些文件加入计划来解决。
  3. 文件内容中的非ASCII字符可能会被错误编码。这可以通过使用命令行(hg diff)来解决。或者,免费的Atlassian Sourcetree也提供可视化地创建补丁的功能。尽管网站上暗示它只支持Mercurial,但它是专有的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接