初步说明:在 SVN 行话中从 repo获取文件是“checkout”,保存到 repo - “commit”。不要混合 CVS 和 SVN 术语,这可能会导致误解
为了获得修订(或修订)中更改文件的列表,您可以使用
- 简单的方法 -
svn log
有选项-q -v
。对于单个修订,您还添加 -c REVNO,对于修订范围:-r REVSTART:REVEND。可能额外的 --xml 会产生比纯文本更合适的输出
您必须对日志的输出进行后处理才能获得纯列表,因为:日志包含一些对您无用的数据,如果是范围日志,您可以将同一文件包含在多个修订版中
z:\>svn log -q -v -r 1190 https://subversion.assembla.com/svn/customlocations-greylink/
------------------------------------------------------------------------
r1190 | lazybadger | 2012-09-20 13:19:45 +0600 (Чт, 20 сен 2012)
Changed paths:
M /trunk/Abrikos.ini
M /trunk/ER-Telecom.ini
M /trunk/GorNet.ini
M /trunk/KrosLine.ini
M /trunk/Rostelecom.ini
M /trunk/Vladlink.ini
------------------------------------------------------------------------
单个修订的示例:您必须log | grep trunk | sort -u
将 repo-base 添加到文件名
- 更难的方法:使用额外的 SCM(即 - Mercurial)和 hgsubversion,您将获得更多(也许)日志
hg log --template "{files}\n"
- 只是因为您只会获得文件列表,但不同修订版中的文件集是换行符分隔的,修订版内的文件名是空格- 分离的