Получение версии - PullRequest
       13

Получение версии

1 голос
/ 31 марта 2009

Я единственный разработчик, использующий GIT для контроля версий встроенного программного обеспечения, написанного на C. Программное обеспечение должно знать о его версии, и в настоящее время это делается путем включения заголовочного файла с одним #define:

#define SOFTWARE_VERSION "1.021"

Этот заголовочный файл автоматически создается предварительно созданным скриптом Python, который пытается получить последний тег GIT-репозитория (я отмечаю все выпущенные версии строкой текущей версии). Это команда, которую я использую для получения строки последней версии.

git description --tag HEAD

Вся цепочка работает, как и ожидалось, но она не выглядит надежной (я ожидаю, что она сломается, поскольку хранилище становится более сложным / разветвленным). Кроме того, я думаю, что я мог упустить что-то важное, потому что должен быть более простой способ сделать это.

Может ли кто-нибудь предложить улучшения рабочего процесса или деталей реализации? (если кому-то интересно, я могу опубликовать скрипт на python, который анализирует вывод git description)

Ответы [ 2 ]

2 голосов
/ 31 марта 2009

Отделите номер версии выпуска программного обеспечения от номера версии системы CM.

Да, вам необходимо знать версию или тег в системе CM, которые соответствуют заданному номеру выпуска, но не используйте номер версии системы CM для определения номера выпуска.

С простыми VCS, такими как RCS или SCCS, и с простыми (одним файлом) программами, вы можете использовать VCS для предоставления версии программы - я делаю это сам. Но все мои сложные программы используют совершенно отдельную схему нумерации версий, полностью отделенную от номеров версий в VCS.

1 голос
/ 31 марта 2009

Как упомянуто в этом SO вопросе , git describe, вам может понадобиться указать промежуточную "версию", которая является одновременно:

  • на основе последней аппликативной версии (т. Е. 'Tag')
  • на основе внутренней фиксации (то есть sha1)
...