有一个存储库位于:
如何在分支2.8和3.0之间查看更改列表(作为提交和消息)?
我试过
$ hg log -r "2.8:3.0" --template '{node|short} {desc|strip|firstline}\n'
e1e5cf5700d0 Increase version number
faa26bc2e908 Added tag 2.8.12 for changeset a81a53304344
a81a53304344 Prepare release 2.8.12
b57e24462eb1 Increase version number
但它并未列出2.8和3.0之间所做的所有更改
答案 0 :(得分:0)
hg log -r "(ancestors(2.8) or ancestors(3.0)) and not (ancestors(2.8) and ancestors(3.0))"
答案 1 :(得分:0)
分支机构之间的变更日志?! 如何你会想象这个?分支是独立的(可变的)树,在过去有(可能的)共同祖先
按照预期生成“:”范围的Revset
修订号介于x和y之间的所有变更集,包括在内。
hg glog -r "2.8:3.0" -T "{branch} {rev} {tags}\n{node|short} {desc|strip|firstline}\n\n"
o 2.8 4801
| e1e5cf5700d0 Increase version number
|
o 2.8 4800
| faa26bc2e908 Added tag 2.8.12 for changeset a81a53304344
|
o 2.8 4799 2.8.12
| a81a53304344 Prepare release 2.8.12
|
| o 3.0 4798
| | b57e24462eb1 Increase version number
| |
当您使用branch-name作为revision-id时,分支的提示用作节点,在之前任何提交到受revset分支影响的任何提交中,您将只获得此结果
虽然我在查询中找不到任何合理的后端,但我不得不问“哪个是真正的业务任务?”
添加-上强>
使用硬编码的revset记录“分支2.8和3.0中最后两个标签之间的修订”
hg log -r "last(tag('re:^2.8')):last(tag('re:^3.0'))"
和revset可以很容易地转换为参数化[revsetalias]
之类的
cbt($1, $2) = last(tag('re:^$1')):last(tag('re:^$2'))
并且日志可以缩短为
hg log -r "cbt(2.8, 3.0)"
2.8 4799 2.8.12
a81a53304344 Prepare release 2.8.12
3.0 4798
b57e24462eb1 Increase version number
3.0 4797
a1dc5578784d Added tag 3.0.8 for changeset ff943130c7c4
3.0 4796 3.0.8
ff943130c7c4 Prepare release 3.0.8
并用于任何一对分支