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


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

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

6 62
svn

6 ответов:

это будет делать, я думаю:

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

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

svn status -u

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

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

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

svn status -u | grep M

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

svn status -q

по данным svnbook:

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

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

-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