Получать измененные файлы из командной строки SVN между двумя версиями
Мне нужно получить список измененных файлов между двумя версиями в SVN.
Я использовал следующую команду:
svn diff -r 5001:6001 --summarize https://svn.blah.com/../ > output.txt
По какой-то причине файлы, измененные в ревизии 5001, не заполняются в выходном текстовом файле.
Какова точная команда для извлечения списка файлов между двумя версиями (включая и от ревизий, включая ревизию 5001 и версию 6001)?
Ответы
Ответ 1
Попробуйте svn diff -r 5000:6001
. Чтобы понять это, рассмотрите следующее: как будет выглядеть вывод svn diff -r 100:100
? Он не будет показывать никаких изменений, потому что изменения одинаковы. Чтобы увидеть изменения для версии 100, мы должны использовать -r 99:100
.
Ответ 2
Попробуйте svn log -r 5000:6001 -v
получить список файлов. Это дает список файлов, классифицированных по номеру ревизии. Таким образом, можно получить представление о том, какие файлы входили в какую ревизию с первого взгляда.
Ответ 3
Ответ Dirk-Willem van Gulik идеально подходит, если вы хотите все изменения. Однако, если вы хотите, чтобы только список файлов был изменен, добавьте --summarize switch в свою команду,
svn diff -r 13447:HEAD
Ответ 4
svn diff -r v1:v2 --summarize | awk '{print $2}' > filelist.txt
Пояснение:
svn diff -r v1:v2 --summarize
предоставляет вам статус и имя файла, разделенного символом табуляции. Вам нужно выбрать строку после символа табуляции - второго поля. Вы можете сделать это с помощью awk
и перенаправить вывод на filelist.txt
Ответ 5
svn diff -r 5001:6001 ...local path hier ... > output.txt