如何在Mercurial中显示未应用的变更集列表
将变更集推送到名为“a”的存储库后,当我在“a”中时,如何查看等待应用的变更集列表 在这个基础上,如何在Mercurial中显示未应用的变更集列表,mercurial,push,Mercurial,Push,将变更集推送到名为“a”的存储库后,当我在“a”中时,如何查看等待应用的变更集列表 在这个基础上, 在repo B中,我将变更集推送到repo B 我改为回购B 如何列出步骤1中推送的变更集 不确定“未应用”变更集是什么意思,不过这里有一些想法 通过在执行hg push之前执行hg outgoing,您可以很容易地看到哪些变更集将被推送到存储库中。这将列出使用默认选项推送的所有变更集 类似地,您可以在目标存储库中使用hg incoming,以显示将从另一个repo中提取哪些变更集 至于“未应用”
hg push
之前执行hg outgoing
,您可以很容易地看到哪些变更集将被推送到存储库中。这将列出使用默认选项推送的所有变更集
类似地,您可以在目标存储库中使用hg incoming
,以显示将从另一个repo中提取哪些变更集
至于“未应用”变更集,如果我假设您指的是比工作目录更新的变更集,您可以使用hg log-r.:tip
,它应该(我没有机会测试它)显示所有更新的修订,但实际上不是所有最近推送的修订
编辑:我已将-r
选项中的修订集更新为应该有效的版本。查看上的Revset以了解更多可能性。$hg summary
$ hg summary
parent: 0:9f47fcf4811f
.
branch: default
commit: (clean)
update: 2 new changesets (update) <<<<<
父项:0:9f47fcf4811f
.
分支:默认
承诺:(清洁)
更新:2个新的变更集(更新)我写了一个不同的答案,但我最终找到了一个更好的方法来做这里需要做的事情(对我来说,一个更好、更明确的解决方案在这篇文章的结尾,在[编辑]部分)
使用hg日志
具体来说,首先发出hg sum
命令。这将给我:
parent: 189:77e9fd7e4554
<some commit message>
branch: default
commit: (clean)
update: 2 new changesets (update)
显然,2
将被替换为hg sum
报告的变更集数量
这是因为tip
将引用最新(或“未应用”)的变更集。通过将输出限制为2个最新的更改(-l2
),仅显示我感兴趣的更改集的信息。使用-v
,也会显示受变更集影响的文件列表
为了简化操作,我在.bashrc
文件中定义了一个用户命令:
alias hglog="hg log -r tip -l $1"
这允许我键入hg sum
(获取挂起/未应用的变更集数量),然后键入hglog x
,其中x
是hg sum
显示的变更集数量
也许有一种更完整的方法可以做到这一点,例如使用自定义模板,但我想它在复杂性方面把事情推得太远了
[编辑](第三次迭代)
通过扩展别名的概念,我得到了这个问题最令人满意的答案,这样我就不必再键入hgsum
。My.bashrc文件现在包含以下内容:
show_pending_changesets() {
nb=$(hg sum | grep "update:" | sed 's/update: \([0-9]*\) .*/\1/');
if [ `expr $nb + 1 2> /dev/null` ] ; then
hg log -r tip -v -l $nb
else
echo "Nothing new to report"
fi ;
}
...
alias hgwhatsnew=show_pending_changesets
说明:我正在使用sed
从hg sum
输出的最后一行(以update:
开头)提取变更集的数量。然后将该数字输入hg log
。然后我所要做的就是键入hgw
并完成它。HTH您正在寻找最近被推到回购中的变更集列表?这将满足我当前的需求。是的。您所说的“等待应用”是什么意思?我所说的“等待应用”是指如果我进行hg更新,将使用的变更集列表。在这种情况下,如果您能够制定出正确的变更集定义(-r
选项)在我的回答中,它应该向您显示比当前工作目录更新的任何更改集。语法错误:hg log-r“parents():“hg:parse error:missing arguments抱歉,我部分是从内存编写的-我当前在一台没有hg的机器上,因此无法提供更正:(我还尝试过其他方法——回家后,我会在一个真实的系统上尝试,而不是使用半受过教育的猜测:)此命令按我希望的方式列出更改集:hg log-r.:tip如果您关注特定的分支,通常可以添加-b branchname
选项。不确定这对-r.:tip
-我又离开了我的hg:)
show_pending_changesets() {
nb=$(hg sum | grep "update:" | sed 's/update: \([0-9]*\) .*/\1/');
if [ `expr $nb + 1 2> /dev/null` ] ; then
hg log -r tip -v -l $nb
else
echo "Nothing new to report"
fi ;
}
...
alias hgwhatsnew=show_pending_changesets