我使用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)進行訪問。 –