SVN находит ревизию тега

Есть ли способ показать, какая версия эквивалентна определенному тегу?


person Mihai    schedule 11.02.2010    source источник


Ответы (2)


Попробуй это

svn log /path/to/tag -v --stop-on-copy

Вы можете увидеть что-то вроде этого

r10 | user | 2010-02-07 17:06:01 -0800 (Sun, 07 Feb 2010) | 1 line
Changed paths:
   A /path/to/tag (from /path/to/branch:5)

Вы можете видеть, что тег был разветвлен в ревизии 5.

person karoberts    schedule 11.02.2010
comment
Это то, что я искал. Спасибо! - person Mihai; 11.02.2010
comment
Передача вывода в head -2 | tail -1 | grep -o -E "^r[[:digit:]]+" должна печатать только версию. (Комбинация head-tail гарантирует, что мы ищем только строку, содержащую сведения о ревизии, а не, например, сообщение фиксации.) - person joelpet; 01.07.2014
comment
@joelpet Разве ваше извлечение не неправильно? Разве он не должен взять ревизию 5 вместо 10? - person NPS; 07.03.2017
comment
@NPS Ты прав; мой конвейер извлекает ревизию, в которой был создан тег (r10), в то время как вопрос, скорее, касается того, в какой ревизии содержимое тега было скопировано из исходного местоположения (r5). - person joelpet; 15.05.2017

Если вы хотите узнать номер версии того, на что указывает этот тег, вам нужно использовать svn log , который предоставляет данные в формате:

------------------------------------------------------------------------
r643 | [author] | [date] | [n] lines

Added tag
------------------------------------------------------------------------
r643 | [author] | [date] | [n] lines

[log message]
------------------------------------------------------------------------
...

Если вы добавите опцию --stop-on-copy, вы сможете узнать, для какой ревизии был создан тег. Запустите svn log как с параметром --stop-on-copy, так и без него, а запись под последним показанным при запуске с параметром покажет ревизию, на которую в конечном итоге указывает тег.

В качестве альтернативы, предполагая, что люди не делают плохих вещей в вашем репозитории (например, совершают коммиты против тега), вы можете использовать svn info возвращает информацию в формате

Path: [path]
URL: [url]
Revision: [current repository revision]
Node Kind: directory
Schedule: normal
Last Changed Author: [author]
Last Changed Rev: [last revision this particular path was changed]
Last Changed Date: YYYY-MM-DD hh:mm:ss TZ

Вы можете назвать что-то вроде svn info http://www.example.com/svn/path/to/tag

person Mark Elliot    schedule 11.02.2010
comment
но если я сейчас отмечу старую версию, последняя измененная версия будет текущей. - person Mihai; 11.02.2010