组件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不适用于这种情况 在一个存储库中有多个工件。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何按顺序显示父节点属性值和关联的子节点属性值?   java Zip 2在Spring Webfux中的不同Mono   java Twitter oauth_签名创建   SpringBoot中未标识java自定义依赖项   如何使用Java访问netbeans中的json Post方法值   在Java中查找数字的位数之和   java Hibernate使用date where子句过滤单列数据   java Spring@ExceptionHandler未捕获AccessDeniedException   java如何知道bean是否有一些值   javavaadin谷歌描述   javafx如何修复“java未命名模块从y和z读取程序包x”   Java generictyped方法返回错误的类型   java Android从应用程序发送电子邮件崩溃电子邮件强制关闭   Java与C版本的相同算法   Java编程异常   java动态生成收据   java使用ACRCloud将音频记录保存在文件中   java在注册到web应用程序后激活帐户   Java数组删除最后存储的元素