我们使用hg来控制大型项目的来源。每当我们发布版本时,我们都会在hg中标记版本。
现在说我做了一个特定的修订(我已经修复了一个bug)。我想知道哪些版本包含此修复,即哪些标记"覆盖"本次修订。
我如何找到这个?在hg标签中似乎只引用标记的变更集。我记得在ClearCase中,标记修订版的每个祖先都会被标记,是否有办法在hg中查看此信息?
谢谢!
答案 0 :(得分:5)
没有任何额外扩展的Revsets可以为您提供一些帮助。像
hg log -r "id(hash):tip and tag()"
或更短且更好(可能)版本hg log -r "descendants(hash) and tag()"
正好和我的回购缩短版本的缩影版本的例子
>hg glog -r "descendants(c9e3b41ec78f)"
@ changeset: 65:f202d72d6397
| tag: tip
| parent: 63:c778bae76563
| user: Alex Bream
| date: Wed Nov 09 21:42:50 2011 +0600
| summary: 2-9 яюыэюёЄ№■ фю 2769
|
| o changeset: 64:625d08492555
| | branch: Cleanup
| | parent: 62:eed6619dadb8
| | user: Alex Bream
| | date: Wed Nov 09 21:38:44 2011 +0600
| | summary: ╟рўшёЄър яю 1-1 155
| |
o | changeset: 63:c778bae76563
|\| parent: 61:e7ae9e5f725a
| | parent: 62:eed6619dadb8
| | user: Alex Bream
| | date: Wed Nov 09 21:33:22 2011 +0600
| | summary: Merge with Cleanup
| |
| o changeset: 62:eed6619dadb8
| | branch: Cleanup
| | parent: 59:c9e3b41ec78f
| | user: Alex Bream
| | date: Thu Mar 03 19:19:34 2011 +0500
| | summary: ╟рўшёЄър яю 1-1 131
| |
o | changeset: 61:e7ae9e5f725a
| | user: Alex Bream
| | date: Thu Mar 03 05:40:34 2011 +0500
| | summary: 2-9 яю 2745
| |
o | changeset: 60:1393fe759096
|\| parent: 57:a38258cac9b8
| | parent: 59:c9e3b41ec78f
| | user: Alexander
| | date: Thu Mar 03 04:59:22 2011 +0500
| | summary: Merge ё ўшёЄшыъющ
| |
| o changeset: 59:c9e3b41ec78f
| | branch: Cleanup
| | user: Alexander
| | date: Thu Mar 03 04:54:11 2011 +0500
| | summary: ╟рўшёЄър яЁюыюу яюыэюёЄ№■
| |
比较两种形式的revsets的输出(无论如何都是相同的输出)
<强>的后代()强>
>hg log -r "descendants(c9e3b41ec78f)" --template "{rev}:{node|short}\n"
59:c9e3b41ec78f
60:1393fe759096
61:e7ae9e5f725a
62:eed6619dadb8
63:c778bae76563
64:625d08492555
65:f202d72d6397
直接范围定义
>hg log -r "id(c9e3b41ec78f):tip" --template "{rev}:{node|short}\n"
59:c9e3b41ec78f
60:1393fe759096
61:e7ae9e5f725a
62:eed6619dadb8
63:c778bae76563
64:625d08492555
65:f202d72d6397
答案 1 :(得分:1)
这使得输出类似于hg tags
:
hg log -r "reverse(descendants(8bb6)) and tag()" --template "{tags}\t{rev}:{node|short}\n"
答案 2 :(得分:0)
您可以使用Nearest extension查找最接近修订版的转发标记。然后,根据您的工作流程,您应该能够轻松推断出哪个其他标记也包含您的更改。
您还可以使用以下内容从当前版本打印最新的后向标记:
hg log -l 1 --template "{latesttag}\n"
然后还推断出“覆盖”标签。