ViewCVS (Subversion)

編集者:Terai Atsuhiro
作成日:2004-02-04
更新日:2018-08-24 (金) 13:47:01

概要

このページでは、ViewCVSを導入して、Subversionのリポジトリをブラウザから閲覧する方法についてメモしています。最新版では、ViewVCに名前が変更され、標準でSubversionに対応しています。

インストール

まず、以下をインストールしておきます。

  • Apache2
  • Active Python 2.3.2
  • mod_python-3.1.2b.win32-py2.3
  • ViewCVS for Windows
  • rlog.exe,rcsdiff.exe,co.exe

これらのインストールについては、次のサイトなどで解説されているので参考にしてください。

httpd.confは、以下のようにしています。

LoadModule python_module modules/mod_python.so

ScriptAlias /viewcvs "C:/Program Files/viewcvs-1.0-dev/www/mod_python/viewcvs.py"
<location /viewcvs>
   AddHandler python-program .py
   PythonPath "[r'c:\\Program Files\\viewcvs-1.0-dev\\lib']+sys.path"
   PythonHandler apache
   PythonDebug On
   AddDefaultCharset UTF-8
</location>

viewcvs.confの編集

次に、viewcvs.conf をSubversion用に修正します。

svn_roots = svntest: c:/svn/hoge, gachk: c:/svn/gachk

または、 #リポジトリの親パス svn_parent_path = c:\svn #上記のパスにあるリポジトリのどれをデフォルトにするか default_root = hoge

cvs_rootsは念のためコメントアウトしておきます。

#cvs_roots

languages の指定方法はよくわからないので、とりあえず以下のようにしています。

languages = ja-JP

Python 2.3 bindings for Subversionのコピー

最後に、以下のフォルダをC:\Python23\Lib などにコピーします。

  • libsvn
  • svn

ここから、svn-win32-*.*.*_py.zip*1をダウンロードして解凍するか、C:\Program Files\Subversion\python にあるものを使用することができます。

確認

http://localhost/viewcvs/ にアクセスできれば成功です。まだ、diffなどが正常に動作しませんが*2、とりあえずは動いているようです。

cygwinのdiffでも正常に動作しています。

http://lh4.ggpht.com/_9Z4BYR88imo/TQr3bmZPvLI/AAAAAAAAArc/Ap68Go0MZGo/s800/viewcvs.png ←クリックすると大きな画像を見ることができます。

その他

diff

  • スタンドアロン*3では、文字化けもないし、diffも問題なく動作しているようです。ただ、どうしても CGI Mode on Apache や、Mod_Python Mode on Apache で、diffが正常に動いてくれません。何が悪いのやらさっぱりです…。
  • WebSvnでも、diffだけうまくいかないから、もしかしたらApacheの設定がまずいのかもしれません…。
  • Apacheをサービスとして起動していましたが、システム環境変数でdiffにPathを通していませんでした。

参考リンク

コメント

  • (メモ)ViewCVSを更新するときは、キャッシュ(*.pyc)を消しておく? -- terai
  • (メモ)configのlog-encodingを実験すること -- terai
  • 以下のエラーが発生してしまうのですが…-- 通りすがり
    make_obcallback: could not import mod_python.apache.\n
    Child 3996: Child process is exiting
    'import site' failed; use -v for traceback
    'import site' failed; use -v for traceback
    ImportError: No module named mod_python.apache
  • python standalone.py を起動すると http://localhost:7467/ にアクセスできますか? また、Testingを試すとどうなるでしょう? > 通りすがりさん -- terai
  • 日本語の「能」とか「ソ」が化けます。0x5cのダメ文字なのはわかってるんですが、ShiftJISから変更はできないのです。どうしたらいいですか? --
  • コミットログが化けるのでしょうか? -- terai
  • 説明不足ですみません。このページの一番最後の「確認」のところにあるように、WEBブラウザでアクセスした時に例えば「機能」というフォルダは「機能 this entry is unreadable」のように、ViewCVS側ではきちんと認識されないようなのです(元発言の通り「能」に0x5cが含まれるため)。 -- yo
  • (続き)ActivePython がShiftJISをきちんとパースしてくれない所為かと思って、PyJUG のSJIS対応版Python(Win32用)を代わりに入れてみたら、今度は ViewCVSがコンパイルエラーで動かない始末・・・。Pythonは全く馴染みがないので途方にくれております。 -- yo
  • SJIS対応版を入れたことによるエラーはWin32Extensionを入れることにより解決しました。これにより「機能」というディレクトリもViewCVSで表示はしてくれるようになりましたが、アンカーをクリックしても 404 になってしまいます。URLを見ると %8B%40%94%5C と正しくエンコードされているようなのですが・・・長々と場違いな話ですみません。 -- yo
  • いえ、SJIS対応版があるなんて全然知らなかったですし、参考になりました。 -- terai
  • IEなら「常にUTF-8としてURLを送信する」のチェックをはずしてみる、または、直接URLに、
    http://localhost/viewcvs/trunk/機能/
    http://localhost/viewcvs/trunk/%E6%A9%9F%E8%83%BD/
    みたいな感じで入力してみると、SJIS対応版の場合どうなるのでしょう?-- terai
  • diffを動かすにはOptions ExecCGIです。 -- nag
  • 情報どうもです。httpd.confにOptions ExecCGIを追加してみましたが、まだうまく動いてくれません。もう少し調べてみます。 -- terai
  • 成功したのはXP Proだったのですが、今日w2k Proで構築したらだめでした。なぜorz -- nag
  • c:\windows\tempとか作ってみると、どうなるでしょう?ってそんな訳ないですね。 -- terai
  • 今日確認したらw2kでもdiffできました。よくわかりません。 -- nag
  • ExecCGIがなくてもdiff動きました。というかちゃんと動くときと動かないときがあります。とりあえずブラウズできてログが見られれば良しとしています。 -- nag
  • ぼくもしばらくは、python standalone.pyで良しときます(^^; -- terai
  • 「機能」というディレクトリもViewCVSで表示はしてくれるようになりましたが、アンカーをクリックしても 404 になってしまいます。 -- mac
  • メモ、cvs-jp-info 638 Re: ViewCVSの日本語(特殊文字)対応 -- terai
  • ViewCVSインストールの際に参考にさせていただきました。ありがとうございます。diffですが、pathを通しておくというのはだめでしょうか?僕のところはそれで動いています(^^;; -- syo
  • pathは通してたと思うけど、なんだか思っているだけの気もしてきました(´・ω・`)。週明け確認してみます。 -- terai
  • ユーザー環境変数の方でPath通してました。システム環境変数でPathを通して再起動すると正常に動作しました。 Apacheをサービスとして動かしていたので、diffを見つけられなかったようです…orz。syoさん、ありがとうございました。 -- terai