如何只捆绑一个分支中的hg捆绑?

时间:2018-12-31 18:13:36

标签: mercurial

我已经尝试过了:

$ hg bundle -b my-branch ../my-branch-bundle.hg
searching for changes
no changes found

然后这个:

$ hg bundle --all --branch my-branch ../my-branch-bundle.hg
7191 changesets found

...但是我的分支只有3次提交?还有这个:

$ hg bundle --base null --branch my-branch ../my-branch-bundle.hg
7191 changesets found

如何hg bundle 对给定分支的更改?!

1 个答案:

答案 0 :(得分:1)

hg bundle捆绑每个指定的修订(-r),并假定目标存储库具有--base选项指定的所有修订(及其祖先)。

因此仅获取3个变更集的小分支的一种方法是使用--base指定变更集的第一个变更集,并指定分支的第一个变更集及其后代。

例如,给定:

o  changeset:   5:f429f686e698
|  branch:      test
|
o  changeset:   4:e02923c7302b
|  branch:      test
|
o  changeset:   3:076f442d4d3b
|  branch:      test
|
| @  changeset:   2:dab4279642cb
|/
o  changeset:   1:233d09b80d63
|
o  changeset:   0:6818527e85ac

使用:

hg bundle --base 1 --rev heads(descendants(3))