Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Доступ к номеру версии SVN
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Управление проектами
Trizna
Как можно автоматически включить в исходные коды номер текущей версии из SVN?
Т.е. хотелось бы иметь возможность однозначно определять какая версия прошивки зашита в чип и по максимуму исключить из этого процесса человеческий фактор.
FormatCft
Цитата(Trizna @ Mar 12 2009, 11:22) *
Как можно автоматически включить в исходные коды номер текущей версии из SVN?
Т.е. хотелось бы иметь возможность однозначно определять какая версия прошивки зашита в чип и по максимуму исключить из этого процесса человеческий фактор.


В папке .svn есть файлик entries. Посмотрите его.
Rst7
Допустим, есть файл revision.c, в котором мы хотим получить ревизию
Код
__flash char SVN_Revision[] = "342";


Делаем файл revision.tmpl
Код
__flash char SVN_Revision[] = "$WCREV$";


И в мейкфайле (или еще где) до компиляции делаем
Код
SubWCRev.exe $PROJ_DIR$ $PROJ_DIR$\revision.tmpl $PROJ_DIR$\revision.c


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

SubWCRev.exe есть в комплекте черепахи.
HARMHARM
Есть еще такая штука, как SvnRev.
При запуске проходится по исходникам (не лезет в репозиторий), берет из них версию ревизии и пишет в svnrev.h.
Плюсы - скорость. Минусы - нужно произвести commit перед билдом, нужны тэги $Id $ или $Revision $ в файлах.
Сергей Борщ
В FAQ по subversion есть ответ именно на этот вопрос: http://subversion.tigris.org/faq.html#vers...value-in-source
scifi
Цитата(Сергей Борщ @ Mar 13 2009, 01:23) *
В FAQ по subversion есть ответ именно на этот вопрос: http://subversion.tigris.org/faq.html#vers...value-in-source

Полностью согласен. Там же упоминается, что под Windows есть TortoiseSVN, а там есть SubWCRev.exe. Вот этим самым SubWCRev.exe я и пользуюсь, причём весьма успешно.
Rusoil
Вопрос по этой SubWCRev. Заметил, что она полностью заменяет файл, в котором надо подставить версии, на файл *.tmpl. Т.е. допустим я в файл main.c внес какие-то изменения, потом применяю утилиту SubWCRev. main.c заменяется на main.tmpl с подстановкой ревизии, а все изменения теряються.

Это так и задумано или я что-то не так сделал? Не улыбается перед каждым применением создавать по новой *.tmpl.
Rst7
Цитата
или я что-то не так сделал?


Сделайте отдельный файл и подключите его к проекту. Зачем вы main насилуете? В приведенном мною примере больше в файле revision.c ничего нет smile.gif
Rusoil
Так не интересно. У меня несколько библиотек в виде класса. В шапке краткая информация и ревизия с датой. Когда что-то добавляю часто забываю поменять дату и ревизию, думал эта утилита выручит.

Попробую еще SvnRev..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.