TortoiseHg导出已更改文件的预提交版本

时间:2014-12-08 15:11:57

标签: mercurial tortoisehg

在TortoiseHg中,可以通过右键单击修订,然后选择Export - >导出已更改的文件。存档...这样我就可以将更改的文件复制到单独的文件夹中。但是如何导出已更改文件的预提交版本?我需要两个文件夹,如“之前”和“之后”。目前,我只能使用已更改文件的提交后版本的“之后”文件。

2 个答案:

答案 0 :(得分:0)

查看hg archive命令的文档(https://www.mercurial-scm.org/repo/hg/help/archivehttps://tortoisehg.bitbucket.io/manual/2.0/archive.html),似乎代码必须具有要导出的修订版号,否则默认情况下,使用的修订版本是工作目录;使用-r / - rev指定不同的版本。

thg archive -r [REV] -t [TYPE] [DEST]

因此,如果未提供 -r [REV] ,则将导出提示(最新提交的代码集)。这看起来像你不能像你想要的那样指定工作目录。

您是否有理由不想提交这些更改?您可以始终将这些提交到不同的分支,然后归档/导出它们,以便默认分支保持不变。

答案 1 :(得分:0)

  

但是如何导出已更改文件的预提交版本?

某些变更集的“预提交”是变更集的“后提交”,这是之前有关对象的变更集。你只需要检测它。

如果您希望在某些变更集之前和之后显示整个回购的状态,则它们将为$CSET$CSET-1,显然

如果你想在存储库中只对某个子目录进行预提交和提交后状态的归档,你必须找到较旧的归档点,并且你至少有两种方法可以在纯TortoiseHG中执行(加上一些本研究之外的CLI方式):

  • 在您首选的文件管理器(不在THG中)中,在存储库和TortoiseHG上下文菜单Revision History中选择所需的文件夹(存储库中我的文件夹/lang的屏幕截图)

THG Menu

您将获得标准TortoiseHG的工作台窗口和修订列表

Filtered view

稍作修改:

  1. 它将被过滤后的视图,其中会跳过一些更改集(请注意 1 选择32之前的历史记录):错过的更改集未触及问题中的目录
  2. 可见Filter Toolbar(参见 2 )显示revset,应用于revlist以获取我们的子集

    • 另一方面,revset很容易理解(建议阅读hg help revsets)并且手工编写revset可能是第二种更快的方法:在文件('path:SOMEPATH')中只有SOMEPATH是可变部分使用简单的规则:a)在任何平台上使用的Unix类型斜杠/如果subdir | file更深,则比root的直接父级更新b的b)前导斜杠和未使用的路径中的斜杠。 I.e for repo \plugins\serendipity_event_assigncategories\UTF-8\ revset中的目录将为file('path:plugins/serendipity_event_assigncategories/UTF-8')
  3. 最后,当您在Workbench中有两个版本(需要之前的)时,您可以在这些版本的上下文菜单中Export - > Archive