2009-10-19 2 views
2

Как я могу получить, чтобы мой номер версии SVN появлялся на моем веб-сайте каждый раз, когда я совершал?Номер версии SVN, как на сайте Stackoverflow (справа внизу)

+0

Дубликат: http://stackoverflow.com/questions/163/how-do-i-sync-the-svn-revision-number-with-my-asp-net- веб-сайт – Stobor

+0

Дубликат: http://stackoverflow.com/questions/110175/how-to-access-the-current-subversion-build-number – Stobor

ответ

2

В основном вам нужно выполнить команду svn info в командной строке, а затем проанализировать вывод (так что это происходит на сервере). Посмотрите этот blog entry, например

Выход из СВН информации выглядит следующим образом:

Path: . 
URL: http://continuum.td.foo.com/svn/EngTools/Atom/trunk/aimv-test-daemon 
Repository Root: http://continuum.td.foo.com/svn 
Repository UUID: 69079f5b-ed1a-0410-902f-f9949c1bbd36 
Revision: 107090 
Node Kind: directory 
Schedule: normal 
Last Changed Author: johndoe 
Last Changed Rev: 107006 
Last Changed Date: 2009-07-09 15:21:17 -0700 (Thu, 09 Jul 2009) 

Допустим, вы не хотите, чтобы запустить демон или Exec можно просто сбросить содержимое в какой-то известный файл после обновления строить svn info > svnbuild.info и разобрать, что

3

вы должны иметь что-то вроде $Revision$ в файле которого пересмотр вы хотите отслеживать (скажем foo.html), и сказать Svn отслеживать и заменить, что ключевое слово в файле, то есть:

svn propset svn:keywords "Revision" foo.html 

Svn тогда, когда файл будет изменен, измените это выражение на $Revision: 23 или вне зависимости от того, какой номер версии может быть. (Конечно, вы можете сделать это и в других файлах, но затем - в зависимости от того, как вы создаете свой сайт - вам нужно будет получить информацию из каждого интересующего файла и добавить ее на страницу, которую вы показываете, например через шаблоны или что угодно).

+0

Следует подчеркнуть, что использование '$ Revision $' в одном файле будет * not * автоматически обновляет свое значение при внесении изменений в другие файлы. –

+0

Думаю, что в моем ответе недостаточно внимания? У меня это в самой первой строке и снова в круглых скобках в конце ... –

+0

Я просто часто вижу эту проблему как «Часто встреченный неожиданный результат», поэтому, возможно, это черно-белое * необходимо. –

0

Предполагая PHP здесь, но вы можете легко сделать это на любом серверном языке.

<?PHP 
$revString = '$Revision$'; // Subversion will substitute something like $Revision: <number> $ 
$revNum = magic($revString); // magic parses the integer number out of the string. 
echo "Subversion revision: $revNum"; 
+0

Эта функция 'magic()' должна быть новой в PHP. :) –

3

Похоже, они встраивать его в страницу («просмотреть исходный код» на этой странице):

<div id="svnrev">svn revision: 4999</div> 

я могу получить его, используя Черепаху на Windows, глядя на журнал для хранилища. Вы не говорите, какую ОС вы используете, или если это командная оболочка для вас.

Проверьте команду SVN Red Bean book на нужную команду.

+0

Они используют C#, поэтому, вероятно, какая-то переменная в глобальном классе. – cybermonkey

0

Предполагая, что Java и Ant, вы можете использовать задачу для запроса репозитория и хранения информации в некоторых свойствах Ant. Это может быть полезно получить не только номер версии, но и имя тега/ветки.

Вы можете увидеть sample task in my sandbox

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