Subversion 1.5 中的合併稽核

本文經原作者同意後轉載,原網址為 http://blogs.collab.net/subversion/2007/06/merge_auditing_.html。已移除或更新失效的連結。

作者:Mark Phippard

張貼 2007-06-13

上週,我們在 Subversion 合併追蹤功能中加入了一項非常棒的新功能。 Hyrum Wright 是一位參與 Google Summer of Code 計畫的學生。他已註冊提供合併追蹤的「合併稽核」功能。您可以在 功能規格 中看到這項功能的詳細資訊,但基本上,這項功能會在 svn 記錄和責難輸出中加入合併追蹤資訊的智慧和認知。在 合併追蹤規劃 中,這項功能已被列為 1.5 版之後的功能。這項功能是所有人都非常希望在程式碼庫中看到的,但我們認為發布版本和核心功能必須優先處理。

無論如何,在這個案例中,我們似乎可以 魚與熊掌兼得。Hyrum(我應該補充說明,他已經是 Subversion 的正式提交者)在將這項支援加入 svn 記錄指令方面取得了很大的進展,並已將這些變更提交至主幹。此外,事實證明,我們為合併追蹤早期採用者計畫建立的範例儲存庫確實有助於解決這項功能中的問題。由於我們有一個記錄完善的範例儲存庫,以及 Hyrum 可以參考的對應圖形,因此他可以更輕鬆地改善這項功能並讓它正常運作。

[截至 2023-03-19,圖片遺失
原始網址 http://blogs.open.collab.net/photos/uncategorized/2007/06/13/repo.gif 和 http://blogs.collab.net/subversion/files/2007/06/merge-auditing.gif]

上方的圖片是我們的範例儲存庫的歷史記錄。如果您仔細觀察,r14 commit to trunk 是這個功能發揮作用的有趣範例。這個 commit 是從一個分支合併而來的,合併也包含來自另一個分支的其他合併。如果我執行這個指令(請注意新的 -g 選項)

svn log -g -r 14 $REPOS/trunk

以下是新的輸出

------------------------------------------------------------------------r14 | merger | 2007-05-30 15:48:11 -0400 (Wed, 30 May 2007) | 3 lines

Merge branch b - product roadmap and update about page

Command executed: svn merge $REPOS/branches/b------------------------------------------------------------------------r13 | buser | 2007-05-30 15:46:48 -0400 (Wed, 30 May 2007) | 1 lineResult of a merge from: r14

Update info about our company------------------------------------------------------------------------r12 | merger | 2007-05-30 15:45:19 -0400 (Wed, 30 May 2007) | 3 linesResult of a merge from: r14

Merge branch a - product roadmap

Command executed: svn merge $REPOS/branches/a------------------------------------------------------------------------r11 | auser | 2007-05-30 15:43:00 -0400 (Wed, 30 May 2007) | 1 lineResult of a merge from: r14, r12

Add product roadmap------------------------------------------------------------------------

請注意它包含了在 r14 中合併的版本資訊,以及其中一個版本是如何成為另一個合併的結果。我們的 CollabNet Desktop – Eclipse Edition 和 TortoiseSVN 等圖形客戶端應該可以在其使用者介面中對這些資訊進行非常有用且有趣的呈現。

Hyrum,這真是太棒了。請繼續努力。我迫不及待想看到責怪實作的整合。

關於作者

Mark Phippard 是 CollabNet 多個團隊的工程經理,包括 CloudForge、Subversion、Subversion Edge、Git 以及我們的 Desktops 和 Integrations。

Subclipse 專案的專案負責人,在 Eclipse 中提供 Subversion 支援。同時也是 Subversion 專案的完整提交者。

GitEye、Subversion Edge 以及 CollabNet Desktops 和 Integrations 的產品負責人。