Простой способ встроить номер редакции svn в страницу в PHP?
-
02-07-2019 - |
Вопрос
Обратите внимание, что в правом нижнем углу этой страницы указан идентификатор редакции SVN?Я предполагаю, что это динамично.
Я бы с удовольствием добавил это на некоторые из моих сайтов, просто в качестве комментария в исходном коде, чтобы убедиться, что запуск кода выполняется.
ПРИМЕЧАНИЕ:Вы также можете предположить, что рабочий каталог рассматриваемого сайта является проверкой svn рассматриваемого репозитория.
Редактировать: Я ищу глобальный номер редакции, а не номер редакции файла, который я просматриваю.
Решение
Вы можете использовать svnversion
Утилита CLI для получения более конкретного представления о ревизии, включая самый высокий номер.Затем вы могли бы использовать регулярные выражения для анализа этого.
Subversion не имеет понятия о глобальной ревизии;скорее всего, вам пришлось бы рекурсивно просматривать рабочую копию, чтобы найти самый высокий номер редакции. svnversion
делает это за тебя.
Другие советы
Метод замены ключевых слов ненадежен, потому что он обеспечит ревизию файла, а не всей развертываемой вами кодовой базы, что, я полагаю, и является тем, что вам нужно.
Обычно я использую ANT для развертывания из subversion, а в сценарии сборки я бы использовал задачу replace для замены токена ревизии в шаблоне макета или общем заголовочном файле номером редакции развертываемой мной кодовой базы - см. Ниже.Хотя, если у кого-нибудь есть метод получше, я бы с удовольствием его послушал!
<svn username="${svn.username}" password="${svn.password}" javaHL="${svn.javahl}">
<status path="${dir.build}" revisionProperty="svn.status.revision" />
</svn>
<replace dir="${dir.build}" token="%revision%" value="${svn.status.revision}">
<include name="**/*.php" />
</replace>
Прочтите о замене ключевых слов.Видишь
http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html