予備的な注意: SVN 用語でリポジトリからファイルを取得することは「チェックアウト」であり、リポジトリに保存することは「コミット」です。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"
取得できますが、異なるリビジョンのファイルセットは改行で区切られ、リビジョン内のファイル名はスペースです。 -分離