2013-12-16 3 views
1

Предположим, у меня есть 2 ревизии в SVN: Редакция 140 и Редакция 185. Я изменил/зарегистрировал около 100 файлов. Теперь я хочу получить список всех файлов, которые были изменены с версии 140 до 185.Как получить все измененные файлы между двумя версиями в SVN?

Если я сравню версии 140 и 185, я получу только список файлов, которые были изменены/изменены в этих 2 версиях только не во всех версиях.

ответ

3

Что вы можете сделать, это

svn diff -r 140:185 --summarize 

Это работает в оболочке, но я не знаю, о .

+0

Это только дает разницу между двумя версиями не все файлы, которые были изменены между ними. –

+0

Возможно, я неправильно понял, чего вы пытаетесь достичь. Можете ли вы обновить свой вопрос и очертить, что не работает при использовании моего фрагмента кода? – pfnuesel

+0

Мне нужно запустить эту команду для каждой версии. Сначала для 140: 141, затем 141: 142 .... 184: 185, чтобы получить список всех измененных файлов, а затем получить их уникальный, перейдя в блокнот ++. Разве нет какой-либо команды, которая делает это за один раз? –

2

Ответ, данный @pfnuesel, верен - нельзя получить более кратким, чем это! Я предлагаю это только в том случае, если вы захотите продолжить данные. Поскольку вы отметили вопрос TortoiseSVN, вы предположительно находитесь в Windows и, следовательно, имеете доступ к PowerShell. Я написал небольшой набор инструментов для анализа метаданных Subversion, особенно моего командлета Get-SvnLog.

(примерное) эквивалентно @ pfnuesel Ответим так:

Get-SvnLog -ByFile -RevisionRange 140:185 | % { $_.path } | Sort-Object -Unique 

Но сила Get-SvnLog приходит, когда вы понимаете, что он преобразует SVN мета-данные к объектам. Эта команда, например, будут перечислены все свойства каждого файла:

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 

Вы можете увидеть API для Get-SvnLog в моем open source bookshelf, который включает в себя 20 других примеров. Откройте книгу «PowerShell» и перейдите в SvnTools. Загрузите код here.

Смежные вопросы