Надеюсь, это поможет.
<script type="text/javascript">
function getParameters() {
var searchString = window.location.search.substring(1),
params = searchString.split("&"),
hash = {};
if (searchString == "") return {};
for (var i = 0; i < params.length; i++) {
var val = params[i].split("=");
hash[unescape(val[0])] = unescape(val[1]);
}
return hash;
}
$(window).load(function() {
var param = getParameters();
if (typeof param.sent !== "undefined") {
// Do something.
}
});
</script>
Если Вам установили TortoiseSVN, Вы также имеете инструмент SubWCRev в наличии. Используйте тот инструмент для получения пересмотра вместо того, чтобы неправильно использовать ключевое слово $REV$.
создайте шаблонный файл, который содержит Ваш, определяет, возможно, что-то как
константа длинный WC_REV = $WCREV$;
в файле, названном version.h.tmpl
на каждой сборке назовите SubWCRev для создания 'реального' файла, который можно использовать в приложении:
SubWCRev path\to\workingcopy path\to\version.h.tmpl path\to\version.h
Это создаст файл version.h из version.h.tmpl с текстовым $WCREV$, замененным пересмотром, в котором Ваша рабочая копия в настоящее время.
Документы для SubWCRev могли бы помочь также.
Я думаю, что Вы не можете понимать, как $Rev$ отмечают работы. Цели флага Rev не состоял в том, чтобы фиксировать этот пересмотр всегда в репозиторий подверсии. Цель состоит в том, что на обновлении, флаг Rev всегда будет, каков пересмотр. Вы не должны должны быть помещать код в подверсию, которая содержит пересмотр. Подверсия очень хороша в отслеживании той информации для Вас.
То, что Вы, вероятно, пропустили, - то, что, необходимо установить свойство на файле так, чтобы ключевое слово Пересмотра было правильно обработано.
svn propset svn:keywords "Revision" file.txt
Это гарантирует это каждый раз, когда Вы делаете обновление, $Rev: флаг xxx$ будет обновлен с текущим пересмотром. Вы не должны волноваться о том, как это посвящает себя репозиторию.
В основном Вы хотите вывод svnversion
команда в файле.
Такие файлы обычно не допускаются в репозиторий и автоматически создаются сценарием сборки. Я предлагаю, чтобы Вы сделали то же. Если Вы не создаете, но только к a svn up
на стороне сервера просто звоните svnversion
после svn up
или создайте сценарий оболочки, чтобы сделать оба действия.
Если необходимо сохранить его в репозитории, с другой стороны, звоня svnversion
в предварительной фиксации рычаг был бы Вашим лучшим выбором.
Это хорошо работает если не я не вношу изменений в тот файл, это не становится зафиксированным.
Если бы файл никогда не изменяется, почему Вам был бы нужен он для фиксирования каждый раз?
[РЕДАКТИРОВАНИЕ] @Sean = я понимаю то, что он пытается сделать, но если файл никогда не станет обновленным через рычаг или некоторый другой процесс и поэтому никогда не изменится затем, то SVN никогда не будет брать его.
@gatekiller: кажется, что TortoiseSVN действительно поддерживает Клиентские Рычаги.
Файл числа пересмотра мог быть изменен сценарием, который развертывает Ваш веб-сайт с SVN на веб-сервер?
Не уверенный в в Windows, но использовании сценария удара, я сделал бы что-то как..
$ version=$(svnversion)
$ svn export . /tmp/staging/
Export complete.
$ echo "Revision: ${version}" > /tmp/staging/version.txt
Затем /tmp/staging/version.txt
содержал бы "Пересмотр: 1 дюйм (или независимо от того, что самое большое количество пересмотра).
Вы могли, конечно, заменить некоторый идентификатор в файле, как $Rev$
(вместо создания version.txt
согласно примеру выше)
Я предлагаю изменить подход, фиксируя файл каждый раз средства неявно хранение глобального числа пересмотра в том файле. Там пользователю, возможно, понадобятся другое ключевое слово, GlobalKey, неотъемлемость которого объяснена здесь, я на самом деле не использовал упомянутый svnversion однако, это может привести Вас к решению.
В зависимости от Вашего клиента некоторые из них предлагают рычаг перед фиксацией, что можно реализовать что-то, что просто "касается" файла и отмечает его, как изменено. Если бы Ваше использование чего-то как Visual Studio, Вы могли бы создать задачу сборки сообщения, которая "коснулась" бы файла, но необходимо будет удостовериться, что Вы делаете сборку прежде, чем фиксировать изменения.
@gradonmantank: Поскольку он хочет, чтобы тот файл был обновлен с последним числом пересмотра. Вы читали его вопрос полностью?
Рычаг перед фиксацией мог бы работать.
Я раньше имел ручной способ сделать это. Я запустил скрипт, который будет использовать sed для замены комментария текущей меткой времени в моем файле $Rev$. Тем путем содержание файла изменилось бы, и Подверсия будет фиксировать его.
То, что я не сделал, должно было взять это к следующему шагу: использование репозитория Подверсии сцепляется для автоматизации процесса. Проблема, я не уверен, разрешают ли Вам изменить содержание файла в рычагах. Документация, кажется, предполагает, что Вы не можете.
Вместо этого я предполагаю, что Вам было бы нужно немного сценария, который Вы выполните вместо svn commit
управляйте, чтобы первые обновления метка времени и затем выполнили нормальную фиксацию.
Comitting файл не принес бы Вам пользы. Файл не фиксируется с полной версией внутри, это заменяется просто ключевым словом. При рассмотрении файла в репозитории, Вы будете видеть это.
По сути, необходимо вынудить файл быть обновленным в некотором роде вместо этого.
Если Вы находитесь на платформе Windows, можно использовать инструмент SubWCRev, распределенный с TortoiseSVN. Документация здесь.
Можно использовать svn pre-commit-hooks, чтобы сделать это.
Общее представление, которое я имею в виду, создают тот, что, прежде чем фиксация поместит новое число пересмотра в файл (получите его с помощью svnlook), или, возможно, измените поддельное свойство на файле (это должно измениться, или SVN проигнорирует его).
Для получения дополнительной информации о pre-commit-hooks я нашел эту страницу полезной.
Я думаю лучший подход к обеспечению, что существует файл в Вашем веб-приложении, которое имеет число пересмотра SVN, не должен иметь файла, который Вы фиксируете, а скорее извлечь его как часть Вашего сценария сборки.
При использовании знатока можно сделать это с maven-buildnumber-plugin.