ViewCVS (Subversion)

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

概要

このページでは、ViewCVSを導入して、Subversionのリポジトリ(Subversion Repository(ViewCVS))をブラウザから閲覧する方法についてメモしています。ViewVCではすこし設定方法が変更されているようです。

インストール

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

  • 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://terai.xrea.jp/data/subversion/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