管理員講述將WebKit項目遷移至GitHub平台上的種種益處

Jonathan Bedard 在周三的文章上寫道:6 月 23 日,WebKit 項目凍結了 Subversion 樹,並將源碼的管理與交互遷移到了 GitHub 上。之所以這麼做,是因為 WebKit 社區意識到了 git 分佈式特性的重要性 —— 不僅僅涉及多個開發人員、而是能夠讓多個組織在單個項目上輕鬆展開協作。

webkit_on_github.png

(來自:WebKit.org)

git 作者與提交者模型,很好地呈現了像 WebKit 這樣的大型軟件項目,其在代碼編寫和管理工作上到底有複雜。

得益於本地變更記錄,git 可讓項目在各分支之間的移動提交 / 撤銷都變得更加便捷。

同時 git log 將提交歷史限制到存儲庫某些部分的能力,意味着大型項目不再需要於每次提交時簽入過時的 ChangeLog 文件。

另外它在軟件工程中的普遍性,意味着 WebKit 項目的大多數新貢獻者,都會發現自己的 git-svn、更傾向於從 WebKit 項目的鏡像中着手。

所以 WebKit 決定將項目轉變為純 git 模式,並且能夠很好地配合現有工具 / 工作流程。

至於 GitHub 為何如此受青睞,Jonathan Bedard 解釋稱:

首先,WebKit 項目組對來自世界各地的開發者的貢獻和反饋都深感興趣,而 GitHub 正好擁有一個非常龐大的開發者社區 —— 尤其是 Web 開發人員。

通過與他們密切合作,WebKit 引擎可以得到充分的改進,並將這些開發人員的創作傳遞到世界各地的用戶手中。

其次,我們發現 GitHub 的 API 讓我們可以通過對現有基礎架構施加較小的修改、來構建高級的提交前後的自動化體驗。

以及提供一個現代且安全的平台,來審查並提供有關新代碼更改的反饋。

當然 git 也不是那樣完美無缺,比它的哈希不是自然排序的。

WebKit 團隊發現,輕鬆推斷存儲庫中提交順序的能力,對於我們的零容忍性能回歸策略至關重要。

於是我們在決定需要二分的工作流程中,使用了所謂的‘提交標識符’方案。

在主分支上,commit identifiers 特指提交擁有的祖數量(ancestors)計數,而分支還得結合兩者。

至於確切的提交標識符,可分別通過 git rev-list –count <ref>git rev-list –count main..<ref> 來計算。

為此,WebKit 團隊開發了一些簡單的工具來處理 commit identifiers 。

值得一提的有 Tools/Scripts/git-webkit(提供 git 與標識符兼容的命令),

以及 commits.webkit.org(用於在不同提交表示之間進行轉換的簡單 Web 服務)。

此外所有提交提交都通過 commits.webkit.org 鏈接,將標識符嵌入到各自的提交消息中。

感興趣的朋友,可移步至 GitHub wiki / Source Control 頁面以了解詳情。

(0)
上一篇 2022-09-01 20:28
下一篇 2022-09-01 21:17

相关推荐