[ITPASS2009]HikiのCGIを介さずCVSツールから編集2

[ITPASSサーバ構築ドキュメント へ戻る]

ここではユーザ側の作業を記す.

CGI を介さずに, CVS ツールからページを編集するために ユーザが必要な作業を記す. なお, 以下の作業を行う前に, 管理側において [ITPASS2009]HikiのCGIを介さずCVSツールから編集1 が 行われている必要がある.

グループ www-data への追加

CVS ユーティリティから直接ページを編集する場合, そのユーザは www-data グループに入っている必要がある.

この作業は管理者権限で行うこと.

Debian では以下のコマンドでユーザ (ここでは hogehoge さん) を www-data グループに追加できる. なお, この設定を有効にするには 一度ログアウトし, 再度ログインする必要がある.

# adduser hogehoge www-data

なお, グループから削除する際には以下の deluser コマンドを使用する.

# deluser hogehoge www-data

パスワードファイルの用意

ページの編集にユーザ認証が必要な場合, ~/.hiki-cvs-passwd に パスワードファイルを用意する.

$ vi ~/.hiki-cvs-passwd

ファイルには, 以下のようにユーザ名とパスワードを一行だけ書き込むこと.

name=xxxxxxx&password=XXXXXXXX

xxxxxxxx にはユーザ認証時のユーザ名を, XXXXXXXX にはパスワードを 書き込んでおくこと. 空白などは含まないこと.

ファイル作成後, パーミッションを設定すること.

$ chmod 600 ~/.hiki-cvs-passwd

cvsroot のチェックアウト

/home/itpass/hiki/cvsroot の hiki モジュールをチェックアウトする.

ローカルでチェックアウトする場合は, 以下のようにすると良い.

$ cvs -d /home/itpass/hiki/cvsroot/ checkout hiki

リモートからチェックアウト (ssh でアクセス) する場合には, 以下のようにすることでチェックアウトできる. 以下は, CVS リポジトリがホスト itpass.scitec.kobe-u.ac.jp 上に ある場合の例である.

$ export CVS_RSH=ssh
$ cvs -d :ext:epa.scitec.kobe-u.ac.jp:/home/itpass/hiki/cvsroot checkout hiki

編集やコミット

作成された CVS の作業用コピー内で編集とコミットを行うことで, リポジトリ内のファイルの更新と, Hiki 内のデータベースの更新が 行われる. 次項の「編集時の注意点」を読んだ後, 実際に編集を行って試してみよ.

cvs コマンドの基本操作などは 地球流体電脳倶楽部 -- CVS に関するメモ など, Web 上の情報や CVS に関する書籍などを参照せよ.

編集時の注意点

  • コミットメッセージにはユーザ名を入力

    CVS では, コミットを行う際にはそのコミットに関するメッセージを入力で きる. 空でもコミットは可能だが, 原則として 自身のユーザ名を入力する ようにせよ. cvs コマンドでコミットする場合, 以下のようにすると良い.

    $ cvs commit -m 'username' hogehoge
                     ^^^^^^^^  ^^^^^^^^ コミットするファイル
              自身のユーザ名

    理由は, 「誰がコミットしたか」を Web ページの「編集履歴」から参照で きるようにするためである. CGI は, ユーザ認証の際のユーザ名を用い, コ ミットメッセージとして登録する. CVS ユーティリティを利用する場合も それに合わせるようにすること.

  • 新規作成できない

    CVS ユーティリティからファイルの新規作成はできない. 理由は新規作成されるファイルの所有者が www-data ではなく, そのユーザのものになり, タイムスタンプの設定時にエラーが生じる ためである.

    [ITPASS2009]HikiのCGIを介さずCVSツールから編集1 の設定が正しく行われていれば, ファイルを作成しようとするとエラーが返るはずである.

  • ファイルの前後に不要な空行を入れない

    ファイルの頭や末尾に不要な空行が入っていてはならない. CGI からの編集時は自動的にファイルの頭や末尾の余計な空行は 削除されてコミットされる. CVS ユーティリティから直接 コミットする場合にはユーザがその作業を行う必要がある.

    [ITPASS2009]HikiのCGIを介さずCVSツールから編集1 の設定が正しく行われていれば, 余計な空行があるファイルをコミットしようとすると エラーが返るはずである.

  • ファイルの末尾には改行が入っていなければならない

    上記と同様な理由で, ファイルの末尾に改行が必要である.

    この場合も, [ITPASS2009]HikiのCGIを介さずCVSツールから編集1 の設定が正しく行われていれば, ファイル末尾に改行が無い場合にエラーが返るはずである.

URI エスケープされたファイル名の変換

Hiki ではタイトルが日本語のページに関しては, その文字列を URI エスケー プしたものをファイル名とする. 例えば, 「ほげほげ」というタイトルのペー ジは "%A4%DB%A4%B2%A4%DB%A4%B2%0A" というファイル名に保存されている.

従って, CVS ユーティリティを使用し, 直接ファイルを編集する際には ファイル名からは, どのファイルがどのページなのが分からない ことになる.

これでは不便なため, ファイルの実体に対し, 日本語のシンボリックを作成し ておくと良い. unescape_symlink.rb はカレントディレクトリ内の URI エスケープされたファイル名に対し, 日本 語名のシンボリックを作成するスクリプトである. 作業用コピー内で以下のよ うに使用すると良い. なお, このスクリプトの使用には Ruby が必要である.

$ ruby unescape_symlink.rb

しかし, 当然ながらコミットする際には実体の URI エスケープされた名前を 持つファイルをコミットしなければならないので注意せよ.

[ITPASSサーバ構築ドキュメント へ戻る]