В некоторых продуктах управления версиями есть способ встраивать интересные значения в файл, когда он извлекается из репозитория. Обычно вы помещаете какую-то волшебную строку в исходный файл, и она обновляется при оформлении заказа. Например, вы пишете «$ revision = xxx», и если вы проверяете ревизию 832, она меняется на «$ revision = 832». Есть ли у SVN такая функция, возможно, с использованием свойств?

svn
2
Jay 31 Авг 2009 в 19:46

2 ответа

Лучший ответ

Вы хотите подстановки ключевых слов , Думаю.

4
Rob 31 Авг 2009 в 19:49
Ах, иногда есть простой ответ. Я искал документацию, но просто не мог придумать подходящие ключевые слова (без каламбура) для поиска.
 – 
Jay
31 Авг 2009 в 20:17

Да, описание подстановки ключевых слов < / a>, является авторитетным, но вот краткое изложение.

В foo.pl:

# Nifty perl trick to get just number and not "$Revision:" string.
our $revision = '1.0-' . qw$Revision: 0 $ [1];

Затем запустите:

svn propset 'svn:keywords' 'Revision' foo.pl

Если все ваши Perl-документы нуждаются в расширении $ Revision $, обратите внимание на auto-props.

Установите в вашем файле ~ / .ssh / config:

enable-auto-props = true
*.pl = svn:eol-style=native;svn:executable;svn:keywords=Id LastChangedBy LastChangedRevision Revision Author

(Здесь я также убедился, что сценарии Perl являются исполняемыми, а стиль eol правильный, чтобы пользователи могли без проблем оформлять заказ в Linux, Windows или Mac. В дополнение к Revision включены мои наиболее часто используемые ключевые слова.)

Это работает даже для клиентов Windows, таких как TortoiseSVN (см. Страницу настроек, чтобы узнать о кнопке, которая откроет файл конфигурации в редакторе).

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

~ J

2
jmanning2k 31 Авг 2009 в 20:12