В какой команде svn будут перечислены все файлы, измененные на ветке?

В svn у меня есть ветвь, которая была создана, например, в редакции 22334. Затем были сделаны фиксации на ветке.

Как мне получить список всех файлов, которые были изменены в ветке, по сравнению с тем, что на туловище? Я не хочу видеть файлы, которые были изменены на туловище между тем, когда была создана ветка и "сейчас".

Ответ 1

Это сделает это, я думаю:

svn diff -r 22334:HEAD --summarize <url of the branch>

Ответ 2

Вы также можете получить быстрый список измененных файлов, если это все, что вы ищете, используя команду состояния с опцией -u

svn status -u

Это покажет вам, какая версия файла находится в текущей базе кода по сравнению с последней версией в хранилище. Я использую diff только когда я действительно хочу увидеть различия в самих файлах.

Здесь есть хорошее руководство по команде svn, которое объясняет многие из этих распространенных сценариев: Справочник по командам SVN

Ответ 3

Вы можете использовать следующую команду:

svn status -q

Согласно svnbook:

With --quiet (-q), it prints only summary information about locally modified items.

ВНИМАНИЕ: Вывод этой команды показывает только вашу модификацию. Поэтому я предлагаю сделать svn up, чтобы получить последнюю версию файла, а затем использовать svn status -q, чтобы получить файлы, которые вы изменили.

Ответ 4

В этом списке будут перечислены только измененные файлы:

svn status -u | grep M

Ответ 5

-u будет отображать в том числе объектные файлы, если они добавлены во время компиляции.

Итак, чтобы преодолеть это, вы можете так использовать.

svn status -u | grep -v '\?' 

Ответ 6

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

Ответ 7

svn log -q -v показывает пути и скрывает комментарии. Все пути имеют отступ, поэтому вы можете искать строки, начинающиеся с пробела. Затем направьте pipeку к cut и sort, чтобы привести в порядок:

svn log --stop-on-copy -q -v | grep '^[[:space:]]'| cut -c6- | sort -u

Это получает все пути, упомянутые на ветки, начиная с ее точки ветвления. Обратите внимание, что в нем будут перечислены удаленные и добавленные, а также измененные файлы. Я просто использовал это, чтобы получить материал, который я должен волновать при рассмотрении слегка запутанной ветки от нового разработчика.