Mercurial - 如何获取两个存储库之间不同的文件列表

时间:2012-09-27 14:53:16

标签: version-control mercurial

我有两个相关的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之间具有当前差异的文件列表并回购B.

2 个答案:

答案 0 :(得分: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个变更集,变更集中的文件是空格分隔的

答案 1 :(得分:0)

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

hg -q outgoing -M remote_repo_url

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