【发布时间】:2010-11-21 17:00:36
【问题描述】:
如何在不查找父级的情况下检查 mercurial 中的变更集?在 mercurial 中,相当于
git show HEAD^
Git-show 提供变更集元数据和差异。
【问题讨论】:
如何在不查找父级的情况下检查 mercurial 中的变更集?在 mercurial 中,相当于
git show HEAD^
Git-show 提供变更集元数据和差异。
【问题讨论】:
我想你想要hg export cset。
【讨论】:
您还应该查看parentrevspec extension 以启用更类似于 Git 的语法来指定修订。
【讨论】:
您的问题有两个部分。首先,如何一次性获取变更集的元数据和差异:
hg log --patch --rev tip
您可以缩短选项:
hg log -pr tip
问题的第二部分是如何在不查找的情况下说出“X 的父变更集”。为此,您可以使用提到的parentrevspec extension Martin。
启用扩展后,您可以执行以下操作:
hg log -pr tip^
如果您不想从 git 的命令中重新训练手指,可以为您的 ~/.hgrc 文件添加别名:
[alias]
show = log -pr
那么你可以使用:
hg show tip^
【讨论】:
hg export 是首选(它列出了完整的提交消息等)。
--verbose/-v 添加到日志命令中。 log 的输出更易于阅读(日期和节点/父 ID 采用更友好的格式)并且它支持 --color,与 export 不同。
hg help revsets 是你的朋友。您可以使用-r 'parents(rev)' 获取所有父级(在合并的情况下为多个)或-r 'p1(rev)' 或-r 'p2(rev)' 获取rev 的第一个或第二个父级。
与“git show HEAD^”类似的命令是:
hg log -pr -2 # -1 (last commit), -2 - one before it, etc.
或
hg exp tip^ # tip^ is similar to -r -2
或者例如,如果您想查看最后 3 次提交(有差异):
hg log -pr -3: # colon means start 3 commits behind and up to tip inclusive
答案有点晚了,但仍然。 :)
更新:显然现在 HG 也支持 git 语法:
hg exp tip^^^..tip
或
hg log -pr tip~4
【讨论】:
git show 不同,hg log -pr 只显示提交消息的标题,而不是整个消息。要显示整个消息,还必须传递-v,如hg log -pvr REV。
hg log -pr -2,发现消息只有一行。由于该命令应该与git show等效,因此我一定是在错误的提交上,所以我花了一些时间试图找出这可能是如何发生的。 (我是不是不小心变基/进化了一些东西?)实际上,我从来没有犯错。我没有对“nitpick”投反对票。我投了反对票,因为这个答案不正确这一事实让我感到困惑并浪费了我的时间。
git show 是否与 6 年前一样。无论如何,我已经更新了答案,不再使用 equivalent 这个词,以避免进一步混淆。
如果您只想查看提交的内容和差异,请使用:
hg diff -c <the commit hash or bookmark name>
要查看您已签出的提交(git 中的 HEAD),请执行以下操作:
hg diff -c -1
如果你想查看之前的提交(git 中的 HEAD^),请执行以下操作:
hg diff -c -2
简单。
【讨论】: