IT pass HikiWiki - [ITPASS2009]HikiのCGIを介さずCVSツールから編集2 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<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 に関するメモ|URL:http://www.gfd-dennou.org/library/cc-env/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|URL:../server/hiki_cvsutil/unescape_symlink.txt>))
はカレントディレクトリ内の URI エスケープされたファイル名に対し, 日本
語名のシンボリックを作成するスクリプトである. 作業用コピー内で以下のよ
うに使用すると良い. なお, このスクリプトの使用には Ruby が必要である.
$ ruby unescape_symlink.rb
しかし, 当然ながらコミットする際には実体の URI エスケープされた名前を
持つファイルをコミットしなければならないので注意せよ.
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]
[((<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 に関するメモ|URL:http://www.gfd-dennou.org/library/cc-env/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|URL:../server/hiki_cvsutil/unescape_symlink.txt>))
はカレントディレクトリ内の URI エスケープされたファイル名に対し, 日本
語名のシンボリックを作成するスクリプトである. 作業用コピー内で以下のよ
うに使用すると良い. なお, このスクリプトの使用には Ruby が必要である.
$ ruby unescape_symlink.rb
しかし, 当然ながらコミットする際には実体の URI エスケープされた名前を
持つファイルをコミットしなければならないので注意せよ.
[((<ITPASSサーバ構築ドキュメント>)) へ戻る]