假设我在SVN中有2个修订:修订版140和修订版185.我修改/签入了大约100个文件。现在我想获取已从版本140更改为185的所有文件的列表。
如果我比较修订版140和185,我将只获得在这两个版本中更改/修改的文件列表,而不是在所有版本中。
答案 0 :(得分:4)
答案 1 :(得分:3)
@pfnuesel给出的答案是正确的 - 人们不能比这更简洁!我只是在您可能希望进一步挖掘数据的情况下提供此功能。由于你标记了TortoiseSVN这个问题,你大概是在Windows上,因此可以访问PowerShell。我写了一小套工具来分析Subversion元数据,特别是我的Get-SvnLog
cmdlet。
@ pfnuesel答案的(近似)等价是:
Get-SvnLog -ByFile -RevisionRange 140:185 | % { $_.path } | Sort-Object -Unique
但是当你明白它将SVN元数据转换为对象时,Get-SvnLog
的力量就会出现。例如,此命令将列出每个文件的所有属性:
Get-SvnLog -ByFile -RevisionRange 140:185 | Format-Table -auto
获得更多区别对待,这将报告上次触摸的每个文件以及在指定的修订范围内触摸的次数:
Get-SvnLog -ByFile -RevisionRange 140:185 |
group Path |
select `
@{ n='Last Touched'; e={@($_.group | sort date -Descending)[0].date} }, `
@{ n='NumberOfTimesTouched'; e={$_.count} }, `
name |
sort name |
Format-Table -AutoSize
您可以在我的open source bookshelf中查看Get-SvnLog的API,其中包含其他20个示例。打开PowerShell“book”并转到SvnTools。下载代码here。