Pau*_*han 117 version-control mercurial
我想生成一个列表,列出Mercurial中给定目录中两个修订版之间的文件.
特别是,我没有兴趣在什么改变,但哪些文件在该目录中改变.
例如,假设在then
和之间otherthen
,只有2个文件发生了变化:
>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>
Run Code Online (Sandbox Code Playgroud)
什么是假设命令?我已经尝试了差异和日志,但我看不出如何说服他们这样做:要么我得到补丁(差异),要么得到整个回购(日志).
ale*_*rus 165
hg status --rev x:y
Run Code Online (Sandbox Code Playgroud)
在哪里x
和y
所需的修订号(或标签或分支名称).
如果您在Windows中使用终端添加hg status --rev x:y
> your-file.txt
将列表保存到文件.
mar*_*112 14
状态就是你所需要的.
但是,根据"两个版本之间"的含义,您可能还会考虑使用" x :: y "(DAG - 定向非循环图)范围.
给定并行变更集,
1--2---4
\---3
hg status --rev 1:4
将返回(1,2,3,4),即根据本地数值转速在端点之间和包括端点之间的任何内容.这可能(并且很可能会)在其他 - 尽管是相关的 - 存储库中返回不同的结果!
hg status --rev 1::4
将返回(1,2,4),即在端点,并且其所有的变更后代的"1"和祖先的"4".
后一种情况x :: y通常在实际应用中更有用.这是你通过TortoiseHg\Visual Diff得到的.
> hg help revsets:
"x :: y"DAG范围,表示作为x的后代和y的祖先的所有变更集,包括x和y本身.如果省略第一个端点,这相当于"祖先(y)",如果省略第二个端点则相当于"后代(x)".