首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >命令在hg提取之前查看更改集。

命令在hg提取之前查看更改集。
EN

Stack Overflow用户
提问于 2011-02-02 22:35:38
回答 4查看 1.6K关注 0票数 4

在changeset之前,您可以使用什么mercurial命令来查看变更集?

如果您执行hg log -r :xyz,您将看到(并包括) xyz之前按升序列出的所有更改集。但是我想很容易地看到之前的变化。

更新:我真正想要的是:如果我做了一个hg fetch,我可以使用什么命令来在被获取的变更集之前查看变更集?

hg log -r :xyz中,xyz是第一个由fetch工作引入的变更集,但它返回了以前的变更集的整个列表,我只想要最近的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-03 15:13:42

你不能这么做。一旦您已经拉动(而fetch只是拉+更新或合并),就没有记录您在拉之前拥有什么和您刚刚从拉中得到了什么。

你应该先做hg incoming,然后再拉,看看你会得到什么。

另外,停止使用fetch。拔取、更新和合并的行为是完全独立的,在一个命令中执行这些操作提供了不适当的错误报告,并且只是混淆了一些事情。默认情况下,该命令是禁用的,并且有关于完全删除它的讨论。合并是编码,不应该隐藏。

展开以显示无法覆盖的案例

如果在获取历史记录之前如下所示:

代码语言:javascript
复制
[A]-[B]-[C]

你(违背了所有的建议) fetch并得到你现在拥有的[D]

代码语言:javascript
复制
[A]-[B]-[C]-[D]

你可以确切地看到什么是新的:

代码语言:javascript
复制
hg diff -r tip-1

或与:

代码语言:javascript
复制
hg diff -r "parent(tip)"

但是,如果再次从A,B,C开始,则获取D,E,得到以下结果:

代码语言:javascript
复制
[A]-[B]-[C]-[D]-[E]

没有任何命令可以运行来查看“更改了什么”,而不需要将[C]写在它的便条上。

另一方面,如果你的回购开始时是这样的:

代码语言:javascript
复制
[A]-[B]
  \
   -[C]

抓取之后你就有了这个:

代码语言:javascript
复制
[A]-[B]-[D]
  \
   -[C]-[E]

没有一个命令可以告诉你“什么改变了”。类似地,如果在进行回购之前,您的回购如下所示:

代码语言:javascript
复制
[A]-[B]-[C]

抓取之后你得到了这个:

代码语言:javascript
复制
[A]-[B]-[C]-[E]-[F]
  \            /
   -[D]-------/

如果[F]是新创建的不明智的自动合并变更集fetch,那么命令:

代码语言:javascript
复制
hg diff -r C

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

票数 7
EN

Stack Overflow用户

发布于 2011-02-02 22:42:43

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

hg日志-r :xyz-1

它应该可以在1之前只列出变更集。

票数 0
EN

Stack Overflow用户

发布于 2011-02-03 01:58:15

安装了parentrevspec1扩展后,您可以使用下面类似于git的语法。根据您的shell,这些引号可能没有必要。

代码语言:javascript
复制
hg log -r 'xyz^'

  1. https://www.mercurial-scm.org/wiki/ParentrevspecExtension
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4880725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档