Лучший способ сохранить «жестко запрограммированный» номер версии в Git-репозитории - PullRequest
0 голосов
/ 01 июня 2018

У меня есть часть программного обеспечения (некоторые скрипты) на Github.Скажем, кто-то загружает программное обеспечение по прямой ссылке (без клонирования, я не предполагаю, что у пользователя есть Git).Как я могу добиться, чтобы при запуске скриптов отображался номер текущей версии?В случае, если кто-то действительно клонирует репозиторий, это легко, просто запустив git description.Но, как я уже сказал, я не хочу предполагать, что Git доступен.

Я нашел только следующее решение, которое довольно раздражает и плохо.Я создал пост-фиксацию и зацепку перед фиксацией, сохраняя файл version.txt в хранилище в актуальном состоянии следующим образом:

pre-commit:

#!/bin/sh

#####################################################
#hook for handling version.txt
#we get the current version number in the form x.y-h, 
#extract x.y and write the next version number
#x.(y+1) to version.txt before push
#####################################################
VER=`git describe --long`
MAIN=`echo $VER | awk -F "-" '/1/ {print $1}'`
SUB=`echo $VER | awk -F "-" '/1/ {print $2}'`
SUBNEXT=$((SUB+1))
echo $MAIN-$SUBNEXT > version.txt
git add version.txt

post-commit:

#!/bin/bash

####################
#update version.txt
####################
git rm -q version.txt
VER=`git describe --long`
echo $VER > version.txt

Раздражает то, что version.txt всегда отображается как неотслеживаемый файл в состоянии git.Какой лучший способ справиться с этим?

1 Ответ

0 голосов
/ 01 июня 2018

Способ записи версии в файл в git repo - это единственный доступный доступ пользователям, не имеющим Git (так как они не могут прочитать версию командой git).

И сделать этоболее эффективно, вы можете использовать ловушку перед нажатием вместо ловушки перед фиксацией и ловушки после фиксации .

В ловушке перед нажатием вам просто нужно обновить файл version.txtс последней версией и зафиксируйте изменения.Сценарий, как показано ниже:

#!/bin/sh

ver=$(git describe --long)
echo $ver > version.txt
git add version.txt
git commit -m 'update version.txt'
echo "update version successful"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...