ソースコードの全リビジョンを簡単に確認できるViewVCPrograming Bible

大規模な開発プロジェクトに携わるプログラマーにとって、バージョン管理システムによるソースコード管理は必須だ。Webブラウザベースの便利なコードビューアであるViewVCを使えば、ソースコードの参照やハイライト表示をスムーズに実現できる。

» 2008年12月10日 01時30分 公開
[David Pendell,SourceForge.JP Magazine]
SourceForge.JP Magazine

 大規模な開発プロジェクトに携わるプログラマーにとって、バージョン管理システムによるソースコード管理は必須だ。しかし、大規模プロジェクトのファイル操作をバージョン管理プログラムのコマンドラインインタフェースで行うのは煩雑だ。それに、コマンドラインでは、ファイルやリビジョン間の差分の強調表示や色分け表示はできない。

 そんなときに役立つのが、Webブラウザベースの便利なコードビューアであるViewVCだ。CVSまたはSubversionで管理するソースコードツリーを参照して、変更内容を確認したり、ファイルレベルや行レベルでリビジョンを比較したりできる。ほかにもさまざまな機能があり、ファイルのチェックアウトやコミット以外であればほとんどの操作を行える。

 ViewVCは、Ubuntu、Gentoo、Fedoraなどのディストリビューションでは、リポジトリからインストールできる。パッケージが用意されていないディストリビューションの場合は、ソースコードのダウンロードも可能だ。ViewVCを使用するには、Apache2SubversionまたはCVS、lib-apache2-mod-python、GNU diffMySQLのインストールも必要になる。さらに、CVSを使用する場合は、CvsGraphも必要だ。

 Ubuntuの場合、ViewVCのインストール先は/usr/lib/viewvc/で、メインの実行ファイルは/usr/lib/cgi-bin /にある。ApacheにViewVCを認識させるために、/etc/apache2/httpd.confに次の行を追加する必要がある。

ScriptAlias /viewvc/ /usr/lib/cgi-bin/


 また、/etc/viewvc/viewvc.confに編集を加え、後記の太字の部分の情報を追加する必要がある。

svn_roots = svnroot: /path/to/svn/repository #for Subversion

cvs_roots = cvs: /home/cvsroot #for CVS


address = < a href="mailto:youremail@yourservice.com" > youremail at yourservice dot com < /a >


 前記の行中の「svnroot:」と「cvs:」は、ViewVC内でのリポジトリ名を表す。任意の名前で問題ない。また、SubversionとCVSのどちらか一方のみを使うのであれば、不要な方の行を「#」でコメントアウトしておくこと。

 最後に、「sudo /etc/init.d/apache2 restart」を実行してApacheを再起動する。これでソースコードを参照する準備が整った。なお、以下の記事中では、用語の違いを考慮して、表記を簡潔にするために、CVSのタグ/ブランチをリビジョンと表現している。

リポジトリの参照

ViewVCのスクリーンショット ViewVCのスクリーンショット

 上で設定したリポジトリを参照するには、Webブラウザを開き、「http://localhost/viewvc/viewvc.cgi」と入力する。まずは、非常に簡潔なページが開き、cvsとsvnrootのいずれかのリンクが示される。目的のサービス名をクリックすると、プロジェクトの概要が表示される。リビジョン情報は、SubversionまたはCVSから取得した内容に基づいており、作成時期、作成者、最後のログエントリが表示される。

 ディレクトリがある各ページには、プロジェクト全体をダウンロードするためのリンクが表示される。また、現在のディレクトリのソースコードをダウンロードするためのリンクもある。ページ下部にはViewVCのヘルプへのリンクがある。ページ上部には、現在参照しているプロジェクトパスへのリンクと、リポジトリを切り替えるドロップダウンボックスがある。CVSで管理するリポジトリとSubversionで管理するリポジトリの切り替えも可能だ。

 プロジェクトのリンクをクリックしてみよう。リポジトリのページを開くと、使用しているバージョン管理システムのディレクトリ構造に従ってリンクが示される。例えばSubversionの場合、プロジェクトのディレクトリの前に“trunk”というディレクトリがあるのが一般的だ。プロジェクトのルートディレクトリに達すると、ファイル、ディレクトリ、リビジョン番号、作成時期、作成者、ログエントリについての情報が表示される。内容は、SubversionまたはCVSが管理しているファイルの情報に沿っている。複数のリビジョンがあるファイルをクリックすると、リビジョンのログが表示される。そこから、リビジョンの参照、ダウンロード、注釈表示、比較が可能だ。

 [view]リンクをクリックすると、指定のリビジョンのファイル全体が表示され、[download]をクリックするとダウンロードできる。[annotate]をクリックすると、ファイル全体が表示され、各リビジョンで行った変更が示される。[select for diffs]をクリックすると、選択したリビジョン番号がページ下部の最初のフィールドに反映され、ページが更新される。差分の表示方法には幾つかのオプションがある。[Colored Diff]は変更された部分のコードのみを幾つかのスタイルで表示する。[Long Colored Diff]はファイル全体を表示し、変更部分を色分け表示する。[Unidiff]は変更カ所の一覧をPatch互換の形式で表示する。[Context Diff]もPatch互換の形式だが、こちらはコンテキスト情報が示される。[Side by Side]はリビジョンを並べて表示する。

 [Colored Diff]の表示では、リビジョンで加えた変更が番号付きのリンクとともに表示され、変更を行ったユーザー名や、各リビジョンへのリンクも示される。また、上位ディレクトリへ移動する[Parent Directory]、ファイルのリビジョンログを表示する[Revision Log]、指定のリビジョンに対応するPatch形式のファイルをダウンロードする[Patch]などのリンクもある。

 ファイルのリビジョンログのページには、色付きの差分ページに直接ジャンプするためのリンクがリビジョンごとに用意されている。どのリビジョンとの差分を表示するかはリンクの部分に示されている。1つ前のリビジョンか、[select for diffs]で指定したリビジョンのどちらかだ。また、このページには、いずれかのリビジョン番号を固定するためのフィールドもある。これを指定すると、このページやプロジェクトのインデックスページなどで、指定したリビジョンまでしか表示されなくなる。特定のリビジョンをデフォルトで表示する場合などに便利だ。

 多数のリビジョンがあるプロジェクトに関与する場合、SubversionにせよCVSにせよ、コマンドラインツールでの操作は煩雑で時間もかかる。ViewVCなら、ソースコードの参照やハイライト表示をスムーズに実現できる。コマンドラインツールが不要になるわけではないが、こうしたビューアでソースコードリポジトリを参照できるのは、開発者、チームリーダー、マネジャーにとって便利だ。ソースコードの参照やリビジョン間の差分の確認を素早く簡単に行うことができる。

David Pendellは、過去23年に渡ってプログラミングおよびオーディオ/ビデオ編集などの各種コンピュータ作業に従事しており、Linuxの使用歴については、Red Hat 5.1を皮切りとして各種のディストリビューションの使用経験を有している。


プログラミングの最新動向を知りたければ「Programing Bible」にお進みください。あなたの仕事を楽にするツールを多く紹介しています。


Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ