我有两个相关的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.
答案 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
将为您提供两个存储库之间不同的文件列表。