我有兴趣查看我的分支的拓扑结构,理想情况是以一种漂亮的方式(la graphlog).例如,我想看看有多少(开放)分支,何时分割,最后一次合并到彼此等等.我对它们之间的所有合并不感兴趣,也不对每个分支上的直线开发感兴趣.
例如,当查看bitbucket上的分叉时,这很有用.Github的网络图有所帮助,但分支结构常常被直线开发和/或频繁合并所淹没.
我想也许我可以使用像
hg glog --rev "head() or merge() or branch_points()"
Run Code Online (Sandbox Code Playgroud)
但随后会glog显示介于两者之间的所有修订,更不用说我无法弄清楚如何指定branch_points()即具有多个子项的修订版本.
是否存在可以近似于我的欲望的mercurial(或其他DVCS)的扩展?如果没有,是否有更好的方法来获取此信息?
以下补丁将分支点修订集添加到 Mercurial。它目前仅适用于 Mercurial 2.2,但它运行得很好。
\n\n我不知道我是否有时间快速推动纳入。您可以转到邮件列表并主动提出将其准备好以供包含(这将节省我的工作)。
\n\n修订版也在https://bitbucket.org/ArneBab/hg-stable
\n\n# HG changeset patch\n# User bab@draketo.de\n# Date 1343931127 -7200\n# Branch stable\n# Node ID f5e211663739e31f2e476c43992ee5335f9d8146\n# Parent 00182b3d087909e3c3ae44761efecdde8f319ef3\nrevsets: added branchpoint() for revisions with more than one child.\n\nReason: Get very terse information via\n\n hg glog --rev "head() or merge() or branchpoint()"\n\ndiff -r 00182b3d0879 -r f5e211663739 mercurial/revset.py\n--- a/mercurial/revset.py Tue May 01 19:09:15 2012 +0900\n+++ b/mercurial/revset.py Thu Aug 02 20:12:07 2012 +0200\n@@ -710,6 +710,15 @@\n cl = repo.changelog\n return [r for r in subset if cl.parentrevs(r)[1] != -1]\n\n+def branchpoint(repo, subset, x):\n+ """``branchpoint()``\n+ Changeset has more than one child.\n+ """\n+ # i18n: "merge" is a keyword\n+ getargs(x, 0, 0, _("branchpoint takes no arguments"))\n+ cl = repo.changelog\n+ return [r for r in subset if cl.children(repo[r].node())[1:]]\n+\n def minrev(repo, subset, x):\n """``min(set)``\n Changeset with lowest revision number in set.\n@@ -1137,6 +1146,7 @@\n "bisected": bisected,\n "bookmark": bookmark,\n "branch": branch,\n+ "branchpoint": branchpoint,\n "children": children,\n "closed": closed,\n "contains": contains,\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
230 次 |
| 最近记录: |