Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并的命名分支(但不是未合并的分支)上的changests的mercurial日志_Mercurial_Branch_Logging - Fatal编程技术网

合并的命名分支(但不是未合并的分支)上的changests的mercurial日志

合并的命名分支(但不是未合并的分支)上的changests的mercurial日志,mercurial,branch,logging,Mercurial,Branch,Logging,我希望能够获得图表中出现的每个变更集的“hg日志” 变更集1和变更集2。我也找不到一个方法来做这件事 a) 忽略在changeset1:changeset2之间合并的命名分支上的节点 或b)包括非changeset2祖先的命名分支上的节点 下面是一个简单示例的“hg glog”,其中包含2个命名分支和默认分支。一个命名分支被合并,因此其节点相关,另一个不相关: @ changeset: 5:e384fe418e9b |\ tag: tip | | parent:

我希望能够获得图表中出现的每个变更集的“hg日志” 变更集1和变更集2。我也找不到一个方法来做这件事 a) 忽略在changeset1:changeset2之间合并的命名分支上的节点 或b)包括非changeset2祖先的命名分支上的节点

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

@    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
我需要一个log命令,它将为我提供所有节点,这些节点是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"
省略版本3,它是版本0的后代和版本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或更高版本),则可以使用该功能。在这种情况下,需要使用祖先()运算符:

hg log --rev ancestors(5)

有关更多信息,请参见hg帮助revsets。

谢谢。我以前没见过。我真正想要的是:hg log--rev‘祖先(changeset2)和后代(changeset1)’实际上,看起来双冒号可以更简单地实现我想要的:hg log--rev‘changeset1::changeset2’是,你需要
X::Y
语法——我把它放在这里是为了这个目的:-)现在我想知道hgweb的漂亮图形是如何被强迫产生如此精细的输出的<代码>hg glog--rev foo::bar向您展示了一个很好的图形,描述了两个版本之间的关系,但hgweb并没有向您展示。。。