Как я добавляю пересмотр и создаю дату к источнику?

Я имею проект GCC и хотел бы автоматически добавить, определяет для даты сборки и числа пересмотра (от мерзавца) к моим источникам. Что лучший способ состоит в том, чтобы сделать это?

Моя цель проста смочь сделать что-то вроде этого на запуске:

printf("Test app build on %s, revision %d", BUILD_DATE, REVISION)

Для создания я использую, делают с простым Makefile.inc, не autoconf или что-либо как это.

13
задан the Tin Man 8 January 2014 в 18:03
поделиться

2 ответа

В итоге я использовал простую команду, подобную этой, в моем Makefile:

echo "#define GIT_REF \"`git show-ref refs/heads/master | cut -d " " -f 1 | cut -c 31-40`\"" > git_ref.h
7
ответ дан 2 December 2019 в 01:10
поделиться

Подстановка ключевых слов RCS изначально не поддерживается Git, но может быть добавлен с помощью драйвера фильтра gitattributes : см. " Git-эквивалент расширения ключевого слова $ URL $ в Subversion".

alt text

Например (не точно относится к вашему вопросу, но иллюстрирует общий принцип):

git config filter.rcs-keyword.clean 'perl -pe "s/\\\$Date[^\\\$]*\\\$/\\\$Date\\\$/"'
git config filter.rcs-keyword.smudge 'perl -pe "s/\\\$Date[^\\\$]*\\\$/\\\$Date: `date`\\\$/"'

Вы будете основывать свой сценарий фильтрации на результате git describe --tags вызывается из вашего Makefile.

Как упоминалось в этот ответ на «Git-эквивалент расширения ключевого слова $ URL $ в Subversion», драйвер фильтра smudge / clear не является идеальным решением и добавляет любые метаданные непосредственно в данные (источник) является в целом плохой идеей (у вас есть дискуссия по этому поводу в « Каковы основные концепции прозрачного корпуса, которые должен знать каждый разработчик? »).

Тем не менее, у вас есть хороший пример такого расширения ключевых слов Git в этом ответе в разделе «Как включить строку идентификатора для репозиториев Git?».

4
ответ дан 2 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: