Subversion 1.5 でのマージ監査

この記事は、元の場所 http://blogs.collab.net/subversion/2007/06/merge_auditing_.html から許可を得てミラーされています。使用できないリンクは削除または更新されています。

著者: Mark Phippard

投稿 2007-06-13

先週末、Subversion マージ追跡機能の素晴らしい追加がトランクにコミットされました。  Hyrum Wright は、Google サマーオブコード プログラムに参加している学生です。 マージ追跡に「マージ監査」機能を提供することにサインアップしました。 この意味については 機能仕様 で詳細を参照できますが、本質的には svn ログと責任出力にマージ追跡情報を認識し、インテリジェンスを追加することです。  マージ追跡の計画 では、これは 1.5 以降の機能として予定されていました。 誰もがコードベースで見たいと強く望む機能です。ただし、リリースとコア機能の配布を優先する必要がありました。

いずれにしても、このケースでは、どちらも楽しむことができるようです。 すでに 完全な Subversion コミッター であるHyrum は、svn ログコマンドにこのサポートを追加することで大きな進展を遂げ、それらの変更をトランクにコミットしました。 さらに、マージ追跡早期採用プログラム用に作成したサンプルリポジトリが、この機能の不具合を解決する上で本当に役立ったことがわかりました。 Hyrum が参照できる適切に文書化されたサンプルリポジトリと一致するグラフィックがあったので、機能を改良して適切に機能させることが容易になりました。

[画像が 2023 年 3 月 19 日に欠落
元の URL http://blogs.open.collab.net/photos/uncategorized/2007/06/13/repo.gif と http://blogs.collab.net/subversion/files/2007/06/merge-auditing.gif]

上の図はサンプルリポジトリの履歴です。よく見ると、トランクへの r14 コミットは、この機能が関係する興味深い例です。 このコミットはブランチからのマージであり、このマージには別のブランチからの追加のマージも含まれています。 このコマンドを実行した場合(新しい -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 にマージされたリビジョンの情報が含まれていることに注意してください。さらに、そのリビジョンの 1 つが別のマージの結果である方法にも注意してください。CollabNet Desktop-Eclipse Edition などのグラフィカル クライアントと TortoiseSVN は、この情報を UI で本当に役立つ興味深いプレゼンテーションを作成できるはずです。

ハイルーム、これは素晴らしい仕事です。ぜひ続けてください。非難の実装がまとまるのを待ちきれません。

著者について

マーク・フィパードは、CloudForge、Subversion、Subversion Edge、Git、Desktops and Integrations を含む、CollabNet の数チームのエンジニアリング マネージャーです。

Eclipse で Subversion サポートを提供する Subclipse プロジェクトのプロジェクト オーナー。また、Subversion プロジェクトの完全なコミッターでもあります。

GitEye、Subversion Edge、CollabNet Desktops and Integrations の製品オーナー。