Если я правильно понимаю вашу работу «врезаться версию» правильно, то вы имеете в виду увеличивая номер версии в произвольном количестве файлов после того, как вы начали выпуск с git flow release start x.x.x
, где версия также представлена в теге git.
Поскольку первоначальный git-поток из Driessen был отменен, неофициальным преемником, похоже, является Peter van der Does gitflow-avh
(https://github.com/petervanderdoes/gitflow-avh/), который содержит большое количество крючков потока git. Для получения полного списка см. https://github.com/petervanderdoes/gitflow-avh/tree/develop/hooks.
Я сделал версию натыкаясь на post-flow-release-start
с этой небольшой скрипт:
VERSION=$1
# Get rid of version prefix
STRIPPED_VERSION=`echo $VERSION | cut -d'v' -f 2`
sed -i '' -E "s/^([ |#|[:alpha:]]*)\[.*\]$/\1[$STRIPPED_VERSION]/1" ./README.md
sed -i '' -E "s/^([\t| ]*\"version\":)\".*\"/\1\"$STRIPPED_VERSION\"/1" ./package.json
git commit -a -m "version $STRIPPED_VERSION"
exit 0
Это немного жесткая, потому что два файла зашиты (README.md и package.json). Вы можете выполнить поиск старой версии из последнего тега, а затем повторить ее для всех сконфигурированных файлов в цикле.
Предостережения:
Для OSX требуется суффикс для sed -i
, однако вы можете использовать пустые кавычки.Кроме того, расширенный параметр регулярного выражения для sed
назван по-разному в Linux.
Это отличный маленький инструмент. Спасибо – Alex
'bumpversion', похоже, был оставлен оригинальным разработчиком, но есть [fork] (https://github.com/c4urself/bump2version), который более активно поддерживается и добавляет некоторые функции, такие как анотированные теги. – ostrokach