在changeset之前,您可以使用什么mercurial命令来查看变更集?
如果您执行hg log -r :xyz
,您将看到(并包括) xyz之前按升序列出的所有更改集。但是我想很容易地看到之前的变化。
更新:我真正想要的是:如果我做了一个hg fetch
,我可以使用什么命令来在被获取的变更集之前查看变更集?
在hg log -r :xyz
中,xyz是第一个由fetch工作引入的变更集,但它返回了以前的变更集的整个列表,我只想要最近的。
发布于 2011-02-03 15:13:42
你不能这么做。一旦您已经拉动(而fetch只是拉+更新或合并),就没有记录您在拉之前拥有什么和您刚刚从拉中得到了什么。
你应该先做hg incoming
,然后再拉,看看你会得到什么。
另外,停止使用fetch
。拔取、更新和合并的行为是完全独立的,在一个命令中执行这些操作提供了不适当的错误报告,并且只是混淆了一些事情。默认情况下,该命令是禁用的,并且有关于完全删除它的讨论。合并是编码,不应该隐藏。
展开以显示无法覆盖的案例
如果在获取历史记录之前如下所示:
[A]-[B]-[C]
你(违背了所有的建议) fetch
并得到你现在拥有的[D]
:
[A]-[B]-[C]-[D]
你可以确切地看到什么是新的:
hg diff -r tip-1
或与:
hg diff -r "parent(tip)"
但是,如果再次从A,B,C开始,则获取D,E,得到以下结果:
[A]-[B]-[C]-[D]-[E]
没有任何命令可以运行来查看“更改了什么”,而不需要将[C]
写在它的便条上。
另一方面,如果你的回购开始时是这样的:
[A]-[B]
\
-[C]
抓取之后你就有了这个:
[A]-[B]-[D]
\
-[C]-[E]
没有一个命令可以告诉你“什么改变了”。类似地,如果在进行回购之前,您的回购如下所示:
[A]-[B]-[C]
抓取之后你得到了这个:
[A]-[B]-[C]-[E]-[F]
\ /
-[D]-------/
如果[F]
是新创建的不明智的自动合并变更集fetch,那么命令:
hg diff -r C
会告诉你什么是新的,但没有办法去查找'C‘之前没有写下来。
发布于 2011-02-02 22:42:43
我假设xyz是散列形式的变更集。尝试:
hg日志-r :xyz-1
它应该可以在1之前只列出变更集。
发布于 2011-02-03 01:58:15
安装了parentrevspec1扩展后,您可以使用下面类似于git的语法。根据您的shell,这些引号可能没有必要。
hg log -r 'xyz^'
https://stackoverflow.com/questions/4880725
复制相似问题