2009-08-31 4 views
2

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

ответ

4

Вы после keyword substitution, я думаю.

+0

А, иногда есть простой ответ. Я искал документацию, но я просто не мог придумать правильные ключевые слова (не каламбур) для поиска. – Jay

2

Да, описание краснослоистой книги keyword substitution, является авторитетным, но вот краткое изложение.

В 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 $ расширен, смотрите в Автосвойство.

Набор в вашем ~/.ssh/конфигурационный файл:

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

Смежные вопросы