首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看两次提交之间subrepos的更改

如何查看两次提交之间subrepos的更改
EN

Stack Overflow用户
提问于 2015-07-30 14:58:56
回答 3查看 482关注 0票数 0

我有一个带传票的mercurial回购(也是mercurial)。想象一下我更改了传票和主回购的情况。现在我想看看几次提交之间的变化,包括subrepos中的变化。

有可能吗?

我使用TortoiseHG和diffmerge。在从TortoiseHg调用visual diff的差异中,我看不到几次提交之间的subrepos的变化。

EN

回答 3

Stack Overflow用户

发布于 2018-04-12 18:07:08

在命令行中,您可以执行以下操作。假设您想要查看变更集(在主存储库中) c608f6017bd772d284a44170之间名为example的子存储库的所有更改。

在主存储库中

代码语言:javascript
复制
hg diff -rc608f6017bd7:72d284a44170 .hgsubstate | grep example

将返回子存储库example的变更集,如下所示:

代码语言:javascript
复制
-001fc0acef220bcd42898ef3932dee8330ea64c0 example
+77f9db4d51c4b483607178aba91c872b0adedf1e example

现在,您可以使用以下命令查看子存储库更改的日志和差异:

代码语言:javascript
复制
cd example
hg log -r001fc0acef220bcd42898ef3932dee8330ea64c0:77f9db4d51c4b483607178aba91c872b0adedf1e
hg diff -r001fc0acef220bcd42898ef3932dee8330ea64c0:77f9db4d51c4b483607178aba91c872b0adedf1e

如果您经常需要它,您可以创建一个名为sublog的bash脚本,如下所示:

代码语言:javascript
复制
#!/bin/bash

r=$(hg diff -r$1:$2 .hgsubstate | grep $3 | cut -c 2-41 | tr '\n' ':' | sed 's/:$//'; echo '')
cd $3
hg log -r:$r

并像这样使用它:

代码语言:javascript
复制
sublog c608f6017bd7 72d284a44170 example
票数 1
EN

Stack Overflow用户

发布于 2015-07-30 18:28:18

我只能在命令行上告诉您如何实现它--但这也可以通过tortoiseHG轻松实现:

大多数命令都可以通过使用-S--subrepos标志获知子存储库。因此,为了查看两个变更集X和Y之间的差异,包括所有子存储库上的变更集,请在主存储库中执行以下操作:

hg diff -S -rX:Y

当然,请注意,如果提交给主存储库的子存储库版本没有更改,则不会在子存储库中显示差异。

票数 0
EN

Stack Overflow用户

发布于 2015-08-02 02:44:16

对于我使用过的TortoiseHg版本(不包括最近的几个版本),我还没有看到一种方法来做你所问的事情。不过,有几个选项:

  • 您可以直接在TortoiseHg的输出日志窗口中键入命令,因此您可以在那里执行hg diff -S -rX:Y
  • 将您要比较的父存储库的版本存档到某些目录(hg archive --repository <path-to-repo> -r <rev> -S -t files -- <outputfolderpath>,或在TortoiseHg中,右键单击变更集,选择导出->存档)。然后在归档目录上使用diffmerge。这有点单调乏味(特别是如果您想要比较许多变更集),但您将得到一个“深”的视觉差异。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31717127

复制
相关文章

相似问题

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