Связывание '#define Version xx' в C с тегом версии в Git - PullRequest
0 голосов
/ 20 декабря 2018

Я уверен, что люди уже делают это, поэтому вопрос.В моем C-проекте я определяю текущую версию, используя:

#define VERSION 3.2.1

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

В Git (используя git bash) мы можем назначать теги для коммитов, позволяя ссылаться на коммиты как по их хешу, так и по этому тегу.Я мог бы просто использовать вручную:

git checkout <hash>
git tag v3.2.1

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

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

Большое спасибо.Ed

1 Ответ

0 голосов
/ 20 декабря 2018

Предположим, v.h - это имя файла заголовка с определением

#define VERSION 3.2.1

.

Из него можно извлечь значение VERSION, например, с помощью

version=$(echo VERSION |  c99 -xc -include v.h - -E|tail -n1)

, а затем сделать

git tag v$version
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...