Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 将分支合并到主机时,自动增加主机上的补丁版本_Git_Bitbucket_Version - Fatal编程技术网

Git 将分支合并到主机时,自动增加主机上的补丁版本

Git 将分支合并到主机时,自动增加主机上的补丁版本,git,bitbucket,version,Git,Bitbucket,Version,给定: Bitbucket repo和两名开发人员Steve和Bob,他们分别从事feature/alpha和feature/beta两个分支的工作。在主分支和功能分支上,我们有一个版本为8.3.0的属性文件 如何…… 确保Bob或Steve将其pull请求合并到主机后,主机上的补丁版本会增加?即: Steve首先完成了他的feature/alpha,他的pull请求被批准,当他将其合并到master时,master上的版本变成了8.3.1。在鲍勃做了同样的事情之后-8.3.2 寻找不那么痛

给定: Bitbucket repo和两名开发人员Steve和Bob,他们分别从事feature/alpha和feature/beta两个分支的工作。在主分支和功能分支上,我们有一个版本为8.3.0的属性文件

如何…… 确保Bob或Steve将其pull请求合并到主机后,主机上的补丁版本会增加?即:

  • Steve首先完成了他的feature/alpha,他的pull请求被批准,当他将其合并到master时,master上的版本变成了8.3.1。在鲍勃做了同样的事情之后-8.3.2
寻找不那么痛苦的解决方案。提前谢谢

更新2020-12-07:

姆内斯托洛夫的回答经过一些修改,得到了预期的结果。不同之处在于我无权在服务器上添加预合并挂钩。如果有人在为同一个问题纠结-这里有一个骇人的回复:

  • 创建一个预推钩子并将增量逻辑放在那里
  • 为git钩子使用一个现有的maven插件,并将创建的钩子作为repo的一部分
通过这种方式,您将确保您的增量脚本在您的队友推动时随时运行,而无需请求devops帮助:)

一种方法是创建一个钩子并将其放置在bitbucket服务器上

钩子可以测试很多事情,比如检查要合并的分支,但是它也可以创建或附加指定版本的文件。基本上,它可以简单到:

假设您的
version.txt
如下所示:

version = 8.3.0
然后你可以做如下的事情:

#/垃圾箱/垃圾箱
#
#一个示例钩子脚本,用于验证将要提交的内容。
#由没有参数的“git merge”调用。钩子应该
#向发出相应消息后,以非零状态退出
#如果要停止合并提交,则使用stderr。
#
#要启用此挂钩,请将此文件重命名为“预合并提交”。
回显“缓冲服务版本”
旧版本=$(cat VERSION.txt | grep-o“=.*”| tr-d'='))
NEW|NUM=$($(echo$OLD|VERSION | grep-o“\.[0-9]*$”| tr-d“)+1))
LAST_NUM=$(echo$OLD_VERSION | grep-o\.[0-9]*$“| tr-d”。)
新版本=$(回显$OLD版本| tr$LAST_NUM$NEW_NUM)
#如果需要,可进行更多转换以提升版本
#更多代码
# ...
sed-i的/\(^version=\)./\1'$NEW\u version'/'~/service/version/file/txt
当然,我只是在猜测它可能是什么,以及它如何能够被自动化,以碰撞您拥有的sub版本。但它绝对可以自动化,并且可以计算出如何增加一个数字,不管它是什么


注意:这个钩子不接受任何参数,所以不能向它传递版本号。

NEW\u version=$(echo$OLD\u version…typo:)糟糕透了。固定的!“…并将其放在您的bitbucket服务器上”。等待你能做到吗?你有没有在bitbucket服务器上安装过自定义git钩子(除了它通过GUI支持的3个之外)?它按你想要的方式工作了吗?这可能会改变游戏规则。