реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Доступ к номеру версии SVN
Trizna
сообщение Mar 12 2009, 06:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 10-01-07
Пользователь №: 24 278



Как можно автоматически включить в исходные коды номер текущей версии из SVN?
Т.е. хотелось бы иметь возможность однозначно определять какая версия прошивки зашита в чип и по максимуму исключить из этого процесса человеческий фактор.
Go to the top of the page
 
+Quote Post
FormatCft
сообщение Mar 12 2009, 06:34
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 331
Регистрация: 22-07-08
Из: Р О С С И Я
Пользователь №: 39 145



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


В папке .svn есть файлик entries. Посмотрите его.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 12 2009, 06:42
Сообщение #3


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Mar 12 2009, 12:16
Сообщение #4


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Есть еще такая штука, как SvnRev.
При запуске проходится по исходникам (не лезет в репозиторий), берет из них версию ревизии и пишет в svnrev.h.
Плюсы - скорость. Минусы - нужно произвести commit перед билдом, нужны тэги $Id $ или $Revision $ в файлах.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 12 2009, 22:23
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 13 2009, 08:25
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Сергей Борщ @ Mar 13 2009, 01:23) *
В FAQ по subversion есть ответ именно на этот вопрос: http://subversion.tigris.org/faq.html#vers...value-in-source

Полностью согласен. Там же упоминается, что под Windows есть TortoiseSVN, а там есть SubWCRev.exe. Вот этим самым SubWCRev.exe я и пользуюсь, причём весьма успешно.
Go to the top of the page
 
+Quote Post
Rusoil
сообщение May 15 2009, 12:24
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-01-09
Пользователь №: 43 695



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

Это так и задумано или я что-то не так сделал? Не улыбается перед каждым применением создавать по новой *.tmpl.
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 15 2009, 12:31
Сообщение #8


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



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


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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Rusoil
сообщение May 15 2009, 18:46
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-01-09
Пользователь №: 43 695



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

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

Сообщение отредактировал Rusoil - May 15 2009, 18:48
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 05:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01461 секунд с 7
ELECTRONIX ©2004-2016