[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サーバ構築ドキュメント へ戻る]
Keyword(s):
References:[[ITPASS2009]2009年度サーバ構築ログ] [[ITPASS2009]HikiのCGIを介さずCVSツールから編集1] [[ITPASS2010]HikiのCGIを介さずCVSツールから編集1]