Перейти к содержанию
    

Доступ к номеру версии SVN

Как можно автоматически включить в исходные коды номер текущей версии из SVN?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как можно автоматически включить в исходные коды номер текущей версии из SVN?

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

 

В папке .svn есть файлик entries. Посмотрите его.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Допустим, есть файл 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 есть в комплекте черепахи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть еще такая штука, как SvnRev.

При запуске проходится по исходникам (не лезет в репозиторий), берет из них версию ревизии и пишет в svnrev.h.

Плюсы - скорость. Минусы - нужно произвести commit перед билдом, нужны тэги $Id $ или $Revision $ в файлах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В FAQ по subversion есть ответ именно на этот вопрос: http://subversion.tigris.org/faq.html#vers...value-in-source

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В FAQ по subversion есть ответ именно на этот вопрос: http://subversion.tigris.org/faq.html#vers...value-in-source

Полностью согласен. Там же упоминается, что под Windows есть TortoiseSVN, а там есть SubWCRev.exe. Вот этим самым SubWCRev.exe я и пользуюсь, причём весьма успешно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос по этой SubWCRev. Заметил, что она полностью заменяет файл, в котором надо подставить версии, на файл *.tmpl. Т.е. допустим я в файл main.c внес какие-то изменения, потом применяю утилиту SubWCRev. main.c заменяется на main.tmpl с подстановкой ревизии, а все изменения теряються.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

или я что-то не так сделал?

 

Сделайте отдельный файл и подключите его к проекту. Зачем вы main насилуете? В приведенном мною примере больше в файле revision.c ничего нет :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так не интересно. У меня несколько библиотек в виде класса. В шапке краткая информация и ревизия с датой. Когда что-то добавляю часто забываю поменять дату и ревизию, думал эта утилита выручит.

 

Попробую еще SvnRev..

Изменено пользователем Rusoil

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...