#python #windows #git #batch-file
#python #Windows #git #пакетный файл
Вопрос:
Я хотел бы автоматизировать настройку python-scaffold на основе git для Windows, и с этой целью я хотел бы создать пакет, который выполняет что-то вроде следующих строк (я выделю то, чего мне не хватает):
@ clean untracked files, I know may be dangerous ...
git clean -fd
git checkout master
@ check whether the last commit is tagged i.e. nothing to do:
git log -1 > % ??? get the last commit, load the tag name into a variable
@ and check whether it's tagged e.g. commit 2acaa06fb1b5aa8e804dc37ca2fc53d6c4369b6a (HEAD -> master, tag: v1.2.9, origin/master)
@ we see that this one is tagged so we skip the next step
@ at this point %LAST_TAG% should equal 1.2.9
if empty %LAST_TAG%:
@ find the last tag from git log
git log > % ??? get the last tag into %LAST_TAG%
@ increment it, e.g. should be v1.2.10 how to do this in batch?
NEXT_TAG = increment(%LAST_TAG%)
git tag -a %NEXT_TAG% -m "Maintenance release, automated increment"
@ push the next tag to origin
git push origin --tags
@create the released binary artifact
git checkout -b %NEXT_TAG% %NEXT_TAG%
python setup.py bdist_wheel
@ find the lastest file in folder
FOR /f %f IN ('dir /b /od dist*.whl') DO @SET NEWEST_WHL=%f
pip install dist%NEWEST_WHL%
Комментарии:
1. Мне кажется, что вы пытаетесь определить, как заполнить переменную
LAST_TAG
с именем возвращаемым значением из команды. Для этого вы используете точно такой же метод, который вы уже используете для заполненияNEWEST_WHL
. Откройте окно командной строки, введитеfor /?
, нажмите[ENTER]
клавишу и прочитайте информацию об использовании. Обратите особое внимание на использованиеDelims
,EOF
,Skip
,Tokens
, иUseBackQ
вам может понадобиться один или несколько из них, чтобы выделить нужную вам конкретную строку из возвращаемых данных.2. Является ли ваша стратегия, согласно которой все слияния в master должны увеличивать 2-е число и устанавливать 3-е число равным 0? Если да, то каков процесс, который увеличивает 3-е число?
3. @TTT Да, это незначительные приращения выпуска, поэтому будет достаточно бесконечно увеличивать только третье число, т.Е. 1 — до любых 11, 12, .., inf
4. Поскольку у вас есть python, создавайте сценарии на python (или sh, который поставляется с git). Сэкономьте себе и подписчикам нервные клетки.
5. @ddbug Хахаха: -D ты прав … Я бы хотел, но это Win env, и в момент, когда это выполняется, я не могу ничего предположить, например, установку или версию python и т. Д.. мои руки связаны.