我感兴趣的是查看我的分支的拓扑,最好是以一种漂亮的方式(一个图形日志)。例如,我想看看有多少(开放的)分支,当它们分开的时候,它们最后一次相互融合和相互融合,等等。我对它们之间的所有合并都不感兴趣,也不对每个分支上的直线发展感兴趣。
例如,当查看bitbucket上的分叉时,这是很有用的。Github的网络图有帮助,但是分支结构常常被直线开发和/或频繁的合并所淹没。
我想也许我可以修改一下
hg glog --rev "head() or merge() or branch_points()"但是,glog在中间显示了所有的修订,更不用说我无法知道如何指定branch_points(),即有多个子版本的修订。
是否有足够的汞(或另一种DVCS)可以接近我的愿望?如果没有,是否有更好的方法来获取这些信息?
发布于 2012-08-03 12:25:45
下面的修补程序将分支点重新设置添加到Mercurial。它目前只适用于Mercurial 2.2,但在那里工作得很好。
我不知道我是否有时间尽快争取加入。您可以转到邮件列表并提供准备,以便将其包括在内(这将节省我的工作量)。
修订版也在https://bitbucket.org/ArneBab/hg-stable中。
# HG changeset patch
# User bab@draketo.de
# Date 1343931127 -7200
# Branch stable
# Node ID f5e211663739e31f2e476c43992ee5335f9d8146
# Parent 00182b3d087909e3c3ae44761efecdde8f319ef3
revsets: added branchpoint() for revisions with more than one child.
Reason: Get very terse information via
hg glog --rev "head() or merge() or branchpoint()"
diff -r 00182b3d0879 -r f5e211663739 mercurial/revset.py
--- a/mercurial/revset.py Tue May 01 19:09:15 2012 +0900
+++ b/mercurial/revset.py Thu Aug 02 20:12:07 2012 +0200
@@ -710,6 +710,15 @@
cl = repo.changelog
return [r for r in subset if cl.parentrevs(r)[1] != -1]
+def branchpoint(repo, subset, x):
+ """``branchpoint()``
+ Changeset has more than one child.
+ """
+ # i18n: "merge" is a keyword
+ getargs(x, 0, 0, _("branchpoint takes no arguments"))
+ cl = repo.changelog
+ return [r for r in subset if cl.children(repo[r].node())[1:]]
+
def minrev(repo, subset, x):
"""``min(set)``
Changeset with lowest revision number in set.
@@ -1137,6 +1146,7 @@
"bisected": bisected,
"bookmark": bookmark,
"branch": branch,
+ "branchpoint": branchpoint,
"children": children,
"closed": closed,
"contains": contains,https://stackoverflow.com/questions/10280664
复制相似问题