Как вы отслеживаете количество сборок вашей библиотеки, когда несколько авторов используют контроль версий?

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

Мое текущее решение

У меня есть простой код, который принимает файл в качестве параметра, открывает его, увеличивает число внутри и перезаписывает его. Этот код компилируется, во-первых, когдаmake называется.

Незамедлительно после,./increase_build build.txt называется, который увеличивает количество раз, которое я позвонилmake построить библиотеку.

Затем код компилируется и создается файл lib (сar cq ...). После того,./increase_build libbuild.txt называется, который увеличивает количество успешных сборок. Наконец тесты построены.

Этот это пример одного из моих Makefiles.

Почему я обеспокоен

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

Однако однажды я тестировал ветвление и слияние (я использую git для себя и svn на работе), поэтому я добавил одну функцию в ветку и что-то изменил в master, и я слил две. Теперь файлы подсчета сборок имеют разные значения.

Проблема

Проблема, скажем, во время ветвления, счетчик сборок равен 100. Затем я записываю что-то в ветвь, и счетчик сборок достигает 110. Я пишу что-то в основной ветке, и счетчик сборок достигает 120. Когда я объединяю во-вторых, я вижу, что один - 110, а один - 120 (кстати, это конфликт). Правильным решением было бы установить сборку на 130.

Тем не менее, я не могу (читай, я не хочу) вернуться к коммиту, где ветвь взлетела, и найти, что это было 100, поэтому я вычисляю 100+ (110-100) + (120-100) = 130! Я хочу, чтобы это было автоматически

Вопрос

Ну, вопрос очевиден: как мне это сделать? Как мне отслеживать количество сборок (не коммитов!), Когда я работаю с контролем версий? Мне не нужен ответ, основанный на функции контроля версий, потому что проблема возникает заново, если я меняю систему контроля версий.

Я мог бы добавить одну строку в файле подсчета сборок для каждой сборки, что-то, скажем, с данными и временем. Тогда номер сборки будет количеством строк в файлах счетчиков сборок. Кроме того, если я не получу две сборки на двух ветвях, которые были выполнены ТОЧНО в то же время, то объединение файлов будет просто объединением двух.

Интересно, есть ли лучшие решения для этого? Является ли то, что я хочу (количество сборок), даже стоит усилий?

Постскриптум Если вам интересно, почему я делаю это как с количеством сборок, так и с количеством успешных сборок, это просто что-то личное. Мне нравится видеть, сколько я получаю для восстановления за небольшие опечатки и ошибки, которые я делаю, когда кодирую.

Редактировать: Я программирую на C и C ++, поэтому решение в любом из них работает для меня.

Ответы на вопрос(4)

Ваш ответ на вопрос