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

时间:2010-06-14 23:20:03

标签: mercurial push dvcs

我们可以使用

查看所有变更集和涉及的文件
hg outgoing -v

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

有没有办法只查看发出hg push后会出现的所有文件的列表?

5 个答案:

答案 0 :(得分:10)

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

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

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

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

答案 1 :(得分:6)

我通常使用

hg outgoing -v | grep files

它使列表更短,但没有排序。但到目前为止,我还没有遇到过这么多问题(同时检查文件),这是一个问题。

<强> [编辑] 做你想做的事:

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

像这样:

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

你可以把它放在〜/ outgoingfiles.sh 或其它东西中,让它变好并准备就绪。

答案 2 :(得分: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 :(得分:3)

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

答案 4 :(得分:0)

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