在Mercurial(hg)中,如果发出“hg push”,你如何看到将被推送的文件列表?

问题描述 投票:21回答:5

我们可以看到所有变更集和所涉及的文件

hg outgoing -v

但文件名都分散在变更集列表中。

如果发布hg push,有没有办法看到所有文件的列表?

mercurial push dvcs
5个回答
10
投票

首先,使用以下内容创建一个文件:

changeset = "{files}"
file = "{file}\n"

假设您将其命名为out-style.txt并将其放在您的主目录中。然后你可以给这个命令:

hg -q outgoing --style ~/out-style.txt | sort -u

6
投票

我经常使用

hg outgoing -v | grep files

它使列表更短,但不排序。但到目前为止,我还没有处于这样一种情况,即我想推动这么多(并同时检查文件)这是一个问题。

[编辑]做你想做的事:

  • 使用cut删除files:部分
  • 对于具有多个触摸文件的变更集,请使用tr将它们放在单独的行中
  • 最后用sort对结果输出进行排序

像这样:

hg outgoing -v |grep files: |cut -c 14- |tr ' ' '\n' |sort -u

您可以将它放在〜/ outgoingfiles.sh或其他东西中,以使其更好并准备就绪。


6
投票

一个有点不被重视的功能:hg status可以显示有关任意更改集之间文件状态更改的信息。这可用于获取修订版XY之间更改的文件列表:

hg status --rev X:Y

在这种情况下,我们可以使用hg outgoing,找到第一个外向变更集X然后做

hg status --rev X:

查看自修订版X以来的文件更改。您可以将它组合成shell中的一行:

hg status --rev $(hg outgoing -q --template '{node}' -l 1):

3
投票

我使用Torgoise Hg,它是一个shell扩展,具有“同步”视图,允许您在推送之前查看传出文件。对于提交以及其他事情也很方便。


0
投票

一个简单的hg out也将解决这个问题。它将列出所有已提交但尚未推送的签到。

© www.soinside.com 2019 - 2024. All rights reserved.