我使用TeamCity和Github自动化语义版本控制,并试图找到一种对直接影响主分支的提交进行计数的方法。如何使用GitHub API(octokit)来筛选立即影响主分支的提交?
可能最好从Git-Extensions这个带注释的截图解释。我想在箭头自动计算的版本号:
我使用Ruby和octokit查询GitHub的API作为我的生成过程的一部分。主要和次要版本号是手工加时提交或合并有资格作为一个主要/次要版本,所以伪代码基本上是:
- 找到提交相应major.minor.0
- 计数每次提交因为major.minor.0改变了主分支
- 设置状态的补丁版本commits.count
我遇到的问题是,如果我只是算提交掌握,每次提交请求被接受,提交计数增加n + 1,其中n是向分支提交的数量。这会起作用,但它...不雅。是的,我了解当您接受拉取请求时,您将有效接受该分支的全部历史记录,作为“主”历史记录的一部分,但对于版本控制而言并不重要。
有没有人知道我可以通过GitHub API过滤提交,以确定提交是否直接影响主在它创建的位置,还是有一些原因,这实际上是不可能的?
谢谢!
这是一个很好的问题。不知道最好的方法是什么,也可能是某些情况下不可能做到的。例如,如果您在问题中提交的提交图表中没有任何分支引用,但是您不知道在哪里放置版本箭头,因为您不知道在主引擎上进行了哪些提交。 而且这种情况可能经常发生,因为在某人将分支合并到主人之后 - 他们可能会删除它。所以你只剩下一个带有单个分支的复杂图形(= master)。 –
所以,最后,问题是git分支只不过是指向单个提交的指针。你不知道哪些分支指向过去的某个提交。你只能告诉某个提交是否可以从某个分支(= commit)进行访问。 –