0

我有两个相关的 Mercurial 存储库。存储库 A 有很多不在存储库 B 中的更改。我想生成存储库 A 和存储库 B 之间不同的文件名列表

这是我到目前为止所拥有的:

一个名为 hg_outconfig.txt 的文本文件,其中包含以下文本:

changeset = "{file_mods}\n{file_dels}\n{file_adds}"
file_mod = "{file_mod}\n"
file_add = "{file_add}\n"
file_del = "{file_del}\n"

然后我运行命令:

cd PATH_TO_REPO_A
hg -q outgoing URL_TO_REPO_B --style c:\\hg_outconfig.txt | sort

这确实列出了 repo A 中所有已更改的文件,但它还列出了 repo A 中的文件,这些文件与之前已经在 repo B 中的提交相比发生了更改。我只想要一个在 repo A 和 repo B 之间存在当前差异的文件列表.

4

2 回答 2

0

好的,我想出了如何做到这一点。为了列出传出文件并排除合并,您可以将 -M 参数与传出命令一起使用。所以

hg -q outgoing -M remote_repo_url

将为您提供两个存储库之间不同的文件列表。

于 2012-09-28T14:13:11.317 回答
0

... --template "{files}\n"会给你远非漂亮和漂亮,但正确的输出

从我的测试

hg incoming --template="{files}\n" -q
footer.php functions.php header.php readme.txt search.php style.css
comments.php functions.php header.php readme.txt sidebar.php style.css
readme.txt sidebar.php style.css
functions.php readme.txt screenshot.png style.css

4 个字符串是 4 个变更集,变更集中的文件以空格分隔

于 2012-09-27T16:19:19.497 回答