Ответ 1
Это сделает это, я думаю:
svn diff -r 22334:HEAD --summarize <url of the branch>
В svn у меня есть ветвь, которая была создана, например, в редакции 22334. Затем были сделаны фиксации на ветке.
Как мне получить список всех файлов, которые были изменены в ветке, по сравнению с тем, что на туловище? Я не хочу видеть файлы, которые были изменены на туловище между тем, когда была создана ветка и "сейчас".
Это сделает это, я думаю:
svn diff -r 22334:HEAD --summarize <url of the branch>
Вы также можете получить быстрый список измененных файлов, если это все, что вы ищете, используя команду состояния с опцией -u
svn status -u
Это покажет вам, какая версия файла находится в текущей базе кода по сравнению с последней версией в хранилище. Я использую diff только когда я действительно хочу увидеть различия в самих файлах.
Здесь есть хорошее руководство по команде svn, которое объясняет многие из этих распространенных сценариев: Справочник по командам SVN
Вы можете использовать следующую команду:
svn status -q
Согласно svnbook:
With --quiet (-q), it prints only summary information about locally modified items.
ВНИМАНИЕ: Вывод этой команды показывает только вашу модификацию. Поэтому я предлагаю сделать svn up
, чтобы получить последнюю версию файла, а затем использовать svn status -q
, чтобы получить файлы, которые вы изменили.
В этом списке будут перечислены только измененные файлы:
svn status -u | grep M
-u будет отображать в том числе объектные файлы, если они добавлены во время компиляции.
Итак, чтобы преодолеть это, вы можете так использовать.
svn status -u | grep -v '\?'
echo You must invoke st from within branch directory
SvnUrl=`svn info | grep URL | sed 's/URL: //'`
SvnVer=`svn info | grep Revision | sed 's/Revision: //'`
svn diff -r $SvnVer --summarize $SvnUrl
svn log -q -v
показывает пути и скрывает комментарии. Все пути имеют отступ, поэтому вы можете искать строки, начинающиеся с пробела. Затем направьте pipeку к cut
и sort
, чтобы привести в порядок:
svn log --stop-on-copy -q -v | grep '^[[:space:]]'| cut -c6- | sort -u
Это получает все пути, упомянутые на ветки, начиная с ее точки ветвления. Обратите внимание, что в нем будут перечислены удаленные и добавленные, а также измененные файлы. Я просто использовал это, чтобы получить материал, который я должен волновать при рассмотрении слегка запутанной ветки от нового разработчика.