组件git存储库的语义版本标记支持
git-release-tag的Python项目详细描述
git释放标记
对git存储库中组件的语义版本控制支持。在
随着持续集成和持续交付的出现,对源代码存储库的每一次提交都会交付 软件的新版本。git源代码存储库系统使用一个40个字符长的修订号,它 非常准确地指向源代码的特定版本。然而,这些修订号很难阅读 对人类来说。这个工具允许你结合两个世界的优点:人类可读的版本号 能够唯一地标识源代码的特定提交。在
我怎么用这个?在
首先,按如下所示初始化发布配置:
git-release-tag initialize --initial-release 1.0.0 --tag-prefix v . >>INFO: commit changes to .release in . >>INFO: release 1.0.0 of . tagged by v1.0.0
这将向存储库添加一个名为.release
的文件。它包含组件的发布和标记
然后贴上标签。在
现在可以显示源代码的当前版本:
^{pr2}$如果您的工作区中有未完成的更改,则版本会附加git修订号的前8位数字,并且 ^{cd2}:
git-release-tag show
>> 1.0.0-81aca04e-dirty
如果将更改提交到存储库,则版本只显示表示组件的新版本的提交
git-release-tag show
>> 1.0.0-63a8d99
颠簸版本
如果要将最新提交作为新版本发布,请键入:
git-release-tag bump --level patch
>> INFO: commit changes to .release in .
>> INFO: release 1.0.1 of . tagged by v1.0.1
如果自上次版本以来没有任何更改。不改变任何东西:
git-release-tag bump --level patch
>>INFO: . has no changes since 1.1.1.
单个存储库中的多个组件
如果在一个存储库中有多个组件,请按如下方式初始化存储库:
git-release-tag initialize --initial-release 1.0.0 ui backend . >> INFO: commit changes to .release in ui >> INFO: release 1.0.0 of ui tagged by ui-1.0.0 >> INFO: commit changes to .release in backend >> INFO: release 1.0.0 of backend tagged by backend-1.0.0 >> INFO: commit changes to .release in . >> INFO: release 1.0.0 of . tagged by api-1.0.0
如果要发布组件的新版本,请键入:
git-release-tag bump --recursive --level patch . >> INFO: commit changes to .release in ./ui >> INFO: release 1.0.1 of ./ui tagged by ui-1.0.1 >> INFO: ./backend has no changes since 1.0.0. >> INFO: commit changes to .release in . >> INFO: release 1.0.1 of . tagged by api-1.0.1
如您所见,ui现在的版本是1.0.1,后端版本没有变化,应用程序已经升级到1.0.1 同样,因为用户界面的改变。在
正在验证配置
由于标记不是提交的一部分,有时会有人忘记将标记与 承诺。要验证发布配置的完整性,请键入:
git-release-tag validate --recursive . >> INFO: ok
如果配置:
- 引用不在存储库中的标记。在
- 对不同的组件使用相同的标记。在
在应用程序中包括当前版本
要在源代码中包含版本,可以向配置中添加pre-tag命令。这个 是在提交更改之前执行的命令。在
git-release-tag initialize \ --initial-release 1.0.0 \ --tag-prefix v \ --pre-tag-command 'sed -i "" -e "s/version=.*/version=\"@@RELEASE@@\",/g" setup.py'\ . >> INFO: commit changes to .release, setup.py in . >> INFO: release 1.0.0 of . tagged by v1.0.0
内容设置.py现在反映了发布的版本并包含在提交中:
grep version= setup.py >> version="1.0.0",
安装实用程序
要安装该实用程序,请键入:
pip install git-release-tag
源于git的描述
如果对构建过程中生成的每个可交付成果使用一个git存储库,则可以使用
git-describe
。它是如何工作的?在一个特定的提交上创建一个标记,然后键入:
git tag 1.0.0 git describe --tags --dirty >> 1.0.0
如果您向存储库中添加一些内容,它将追加自标记和 修订号:
git describe --tags --dirty
>> 1.0.0-1-g6123dd2
如果临时区域中有未提交的更改,它将向其追加dirty
:
git describe --tags --dirty
>> 1.0.0-1-g6123dd2-dirty
如果提交更改并放置新标记,则会再次显示干净的标记。git-describe不适用于这种情况 在一个存储库中有多个工件。在
- 项目
标签: