如何预挂 gitflow 修补程序完成?

How to pre-hook the gitflow hotfix finish?

我想我正在使用“https://github.com/nvie/gitflow”,如果它是 Smartgit GUI 程序中的那个。

每次我提交内容时,我都会更新 'build' 编号。示例:2.6.0-77 到 2.6.0-78

这已经实现挂钩预提交并增加内部版本号,但是如何创建挂钩来挂钩 gitflow 修补程序完成并增加修补程序版本号?示例:2.6.0-70 到 2.6.1-70

增加修补程序版本的代码已经完成。我们只需要运行: githooks/updateVersion.sh patch

然后,我们得到了2.6.0-70到2.6.1-70的项目。这段代码在这里实现:https://github.com/evandrocoan/.versioning

那里,预提交,post-commit 挂钩已实现。

如果做不到,我们可以在预提交挂钩上做吗?我们只需要知道什么时候提交普通的东西,什么时候提交 gitflow finish hotfix。

我也可以想想看commit message再判断是否 是正常提交​​(./githooks/updateVersion.sh 构建)或修补程序(./githooks/updateVersion.sh 补丁)。

我的意思是,在项目上创建一个模式,并且只在完成修补程序时使用该关键字,这将由预提交挂钩获得。类似的,总是在 'Finish hotfix'.

字样中开始完成修补程序

然后,同样可以应用于次要和主要版本,然后我们可以始终自动更新软件版本。

观察

这假设版本是“Major.Minor.Patch-Build”,其中 build 是提交计数器,每次开发分支提交都会递增。

但这是错误的分支模型,我们不能把东西提交到开发分支,我们必须创建功能分支。 我们总是增加补丁号,每个修补程序版本。但不要触摸内部版本号。 然后我们应该增加内部版本号,每个功能完成。 并在每次发布开始时增加主要或次要编号,具体取决于它是主要功能还是次要功能版本。

但这会导致一个问题。如果我们创建功能 A、B 和 C。完成功能 A,然后增加内部版本号,但是,当我们完成功能 B 或 C 时,如果会产生冲突,因为它们的内部版本号已过时。

解决方案是在每个功能完成之前集成开发,这样我们就可以在集成时获得正确的内部版本号,从而避免冲突。