gpt4 book ai didi

merge 命名分支上的变更日志,但不是未 merge 的

转载 作者:行者123 更新时间:2023-12-02 23:00:05 24 4
gpt4 key购买 nike

我希望能够获得图表中出现的每个变更集的“hg log”变更集 1 和变更集 2。我无法找到一种方法来做到这一点,没有任何一个a) 省略在changeset1:changset2之间 merge 的命名分支上的节点或 b) 包括命名分支上不是 Changeset2 祖先的节点

这是一个简单示例的“hg glog”,其中包含 2 个命名分支和默认分支。一个命名分支被 merge ,因此它的节点是相关的,另一个是不相关的:

@    changeset:   5:e384fe418e9b
|\ tag: tip
| | parent: 2:7dc7af503071
| | parent: 3:0a9be59d576e
| | summary: merge somefeature branch into default
| |
| | o changeset: 4:4e8c9ca127c9
| | | branch: unmerged_feature
| | | parent: 1:ef98ad136fa8
| | | summary: change that is not merged into ending changeset
| | |
| o | changeset: 3:0a9be59d576e
| |/ branch: somefeature
| | parent: 1:ef98ad136fa8
| | summary: changed b.txt
| |
o | changeset: 2:7dc7af503071
| summary: changed a.txt
|
o changeset: 1:ef98ad136fa8
| summary: added b.txt
|
o changeset: 0:271b22b4ad30
summary: added a.txt

我想要一个日志命令,它将为我提供 rev 0 的后代和 rev 5 的祖先的所有节点。这是除 rev 4 之外的所有节点。

我可以获得太多信息:

hg log -r 0:5 --template "{rev}:branch={branches},desc={desc}\n"

这为我提供了 rev 4 的日志条目,它不是 rev 5 的祖先:

0:branch=,desc=added a.txt
1:branch=,desc=added b.txt
2:branch=,desc=changed a.txt
3:branch=somefeature,desc=changed b.txt
4:branch=unmerged_feature,desc=change that is not merged into ending changeset
5:branch=,desc=merge somefeature branch into default

我能得到的信息太少了:

hg log -b default -r 0:5 --template "{rev}:branch={branches},desc={desc}\n"

省略 rev 3,它是 rev 0 的后代和 rev 5 的祖先

0:branch=,desc=added a.txt
1:branch=,desc=added b.txt
2:branch=,desc=changed a.txt
5:branch=,desc=merge somefeature branch into default

最佳答案

如果您使用的是较新版本的 Mercurial(1.6.0 或更高版本),则可以使用 revsets特征。在这种情况下,您需要祖先()运算符:

hg log --rev ancestors(5)

请参阅 hg help revsets 了解更多信息。

关于 merge 命名分支上的变更日志,但不是未 merge 的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4494399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com