2011-02-02 81 views
4

在更改xyz之前,您可以使用什么mercurial命令查看变更集?hg命令在hg获取之前查看变更集

如果你做hg log -r :xyz,你会看到所有在(包括)xyz之前的变更集 - 按升序列出。但我想轻松看到之前的变更集。


更新:真的我后是这样的:如果我做一个hg fetch,我可以用什么命令查看变更前的那个是由拉取的变更?

hg log -r :xyz其中xyz是由获取作品引入的第一个变更集,但它返回了我刚想要最新的变更集的整个列表。

回答

7

你不能做到这一点。一旦你拉了(并且抓取只是拉+更新或者合并),那么你没有记录你拉什么以及你从拉取得什么。

你应该做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]是新不明智的自动合并变更取指创建,然后命令:

hg diff -r C 

会告诉你什么是新的,但没有先前写下来没有办法查找'C'。

0

我假设xyz是散列形式的变更集。尝试:

汞柱登录-r:XYZ-1

这应该工作仅列出了变更前1

+0

变更集不是散列形式 - 这是数字ID – 2011-02-03 14:52:22

+0

它可以同时使用数字ID或散列形式。 – cbz 2011-02-03 17:36:09

0

随着parentrevspec [1]安装的扩展,您可以使用混帐的语法下面。根据您的shell,引号可能不是必需的。

hg log -r 'xyz^' 
  1. https://www.mercurial-scm.org/wiki/ParentrevspecExtension
+1

只有在启用了parentrevspec扩展时才有效。 – 2011-02-03 09:05:24

+0

似乎并没有为我工作.. – 2011-02-03 14:53:03

0

我不知道是什么意思之前。你的问题可能意味着你可能只想要变更集的父母。这些你可以很容易地与

hg parent -r xyz 

这不需要花哨的新版本的mercurial。

汞父母[-r REV] [文件]

显示工作目录或修订

打印工作目录的父目录修订的父母。如果通过 -r/- rev给出修订,则打印该修订的父级。如果给出文件参数 ,则打印上次更改文件的修订版(在 工作目录修订版之前或者给定了--rev参数(如果给出))。

选项:

-r --rev  show parents of the specified revision 
--style  display using template map file 
--template display with template 
--mq  operate on patch repository