Как использовать ключевое слово глобального номера версии с TortoiseSVN?

В CVS вы можете использовать в своем коде ключевые слова, которые раскрываются при извлечении файлов. Я хотел бы отобразить глобальную версию, как в CVS, с ключевым словом $GlobalRev$.

В Subversion есть команда $Rev$, но она показывает только последнюю версию, в которой был изменен файл. Я знаю, что есть команда svnversion, которая на данный момент не имеет никакой документации в 1.5 и 1.6 каждую ночь< /а>.

Мне интересно узнать, как это сделать с TortoiseSVN.


person Spoike    schedule 07.05.2009    source источник


Ответы (4)



Я не думаю, что есть возможность иметь то же самое, что и в CVS, по крайней мере, я не мог найти ничего, когда мне это было нужно.

Вместо этого я использую TortoiseSVN SubWCRev.exe, чтобы превратить файл шаблона, содержащий строку $WCREV$, в файл с текущим номером версии.

person macbirdie    schedule 07.05.2009

Мои 2 цента:

В настоящее время я работаю над веб-приложением Java. У нас есть сервер сборки (Hudson), который нет доступа к исполняемому файлу subversion из командной строки; вместо этого он поставляется с библиотекой Subversion на чистом языке Java, чтобы иметь возможность получить доступ к репозиторию, прежде чем извлекать исходные коды для создания приложения.

Теперь нам нужно, чтобы процесс сборки включал глобальный номер версии на домашнюю страницу приложения (почти так же, как это делает StackOverflow, если вы посмотрите в правый нижний угол экрана).

К сожалению, между Subversion и Ant нет хорошей интеграции. Лучший, SVNAnt больше нацелен на использование командной строки svn.exe и доставил нам немало проблем при запуске.

В итоге у меня ушло два часа на использование SVNKit, которая является чистой библиотекой Java для доступа к Subversion, чтобы настроить наш скрипт сборки, чтобы посмотреть номер версии и вставить его в наши файлы.

Лично я не понимаю, что такого сложного в создании переменной, скажем, $GlobalRev$, которую вы будете вставлять в каждый файл, точно так же, как вы делаете это с $Id$ или $Rev$.

person Leonel    schedule 10.06.2009
comment
Если вы измените только один файл, вы ДЕЙСТВИТЕЛЬНО хотите, чтобы все остальные файлы также были изменены? Даже если это исправление исправляет только опечатку в каком-то комментарии? Это безумие! Я бы никогда не хотел, чтобы эта функция была в МОЕМ svn... - person Paulius; 10.06.2009
comment
Я хочу, чтобы после коммита было изменено только несколько файлов, и это те, в которые я поместил ключевое слово $GlobalRev$ и для которых было установлено (пока несуществующее) свойство svn:global_rev. Возможность посмотреть на работающее приложение и сказать, из какой точной версии SVN оно было скомпилировано, бесценна. - person Leonel; 12.06.2009

Я понимаю замечание выше. но кажется, что globalrev может быть полезен в одном случае...

когда вы хотите, чтобы во всех запущенных исполняемых файлах была версия последней сборки.

например, если вы поместите в файл versionning.propriiety одно свойство с названием приложения, вы можете добавить номер версии.

поэтому, когда тестер или пользователь замечают проблемы, они могут сравнить номер с выпуском, чтобы не видеть, есть ли функциональность. эта переменная $GlobalRev$ будет использоваться в небольшом контексте, но может быть полезной.

С Уважением

person Community    schedule 10.07.2009