生成包含版本之间更改的文件的目录列表

问题描述 投票:0回答:1

我从this answer知道我可以做到

hg status --rev x:y

列出在版本xy之间已更改的文件。有没有办法获取单个文件,而不是仅包含它们的目录?

例如,如果上面的命令将产生结果

A Foo\Bar\SomeFile.txt
A Foo\Bar\AnotherFile.cs
M Baz\AnotherFile.txt

我想得到

Foo\Bar
Baz

代替。

mercurial
1个回答
0
投票

您可以使用模板来更改hg st的输出格式,就像对任何“类似日志的”汞命令一样(请参见-T选项)

    在模板中,您可以使用过滤器“目录名”过滤输出(文件名),这将去除文件的文件名部分
  • 但是我尝试了一下,并在我的存储库中发现了一些“怪异”(以及
  • expected麻烦)

    尾注:

    虽然hg st的默认输出消除了结果中重复的文件名(如果它们出现),但是您的模板不会(同样,“默认情况下”)

    1. 对于相同状态范围,我看到模板输出的错误(完全错误)结果>
    2. good
  • >hg st --rev 1170:tip M hggit\__init__.py M hggit\compat.py M hggit\git_handler.py M hggit\gitdirstate.py M hggit\hg2git.py M tests\test-illegal-contents.t

    我的

    >hg st --rev 1170:tip --template "{files % '{file}\n'}"
    hggit/__init__.py
    hggit/__init__.py
    hggit/__init__.py
    hggit/__init__.py
    hggit/__init__.py
    hggit/__init__.py
    

    (六次文件

    仅来自笔尖
    ,而不是范围)

    即使使用hg log -T而不是st(会给出

      所有文件

    ),您也会从第1页开始遇到问题:“同一文件的输出中有多个文件条目”
  • © www.soinside.com 2019 - 2024. All rights reserved.