Mercurial - 在分支中获取修改过的文件,但在分支上次关闭时停止

问题描述

我想在分支中获取已提交的文件,直到创建分支为止。

为此我使用:

hg log -b foo --no-merges --template="{files % '{file}\t'}"

但是当分支之前存在并重新打开(关闭后)时,这会带来太多变化

下图中的示例:

  1. 打开一个分支“测试”并提交更改
  2. 将分支合并到认值
  3. 关闭分支并合并
  4. 打开另一个名为“test”的分支
  5. 提交一些更改

问题是:如何只获取第 5 步中提交的文件,而不包含第 1 步中的文件

enter image description here

解决方法

  1. 不要关闭分支,这是浪费时间
  2. 即使您更愿意继续关闭分支 - 不要将关闭的分支合并到主线,这也是浪费时间(关闭时分支的内容不会改变)
  3. 如果您想从分支变更集的某些部分获取文件,您必须为分支中的变更集子集定义和使用 revset:如果您遵循 pp.1+2 建议,则 revset 将类似于 (待定!)last(branch('test') & branchpoint()):heads(test)