subversion

ようやく CVSからsubversionに移行した。自分一人の環境だし、滅多にコードも書かないので何のために?というところだが、まあいろいろとファイルの管理などを。出遅れた分あちこちに情報があるので割とスムーズに移行できそうだ。 しかしいくつかの不満はある(使い手が慣れていないからかもしれないが)。ひとつは、パーミッションが保存されないこと。CVSでは作業スペースでパーミッションを変更しておいた状態で update しても(内容はupdateされても)パーミッションが変わることはなかった。subversionでは、いったんファイルを消してから新たに作ったかのように、元のパーミッション(その時点の umaskにしたがって)になってしまう。group の変更も元に戻ってしまう。webページのように、webサーバから見えるようにしてチェックしつつ作業をしている場面では面倒くさい。tarを使うときのようにパーミッションなどが保存されるといいのだが。 もうひとつの問題は日本語の文字化け。CVSより格段によくなっているけれども。 まず、ここの環境では /etc/environment で LANG=ja_JP.EUC-JP となっているしその中の自分の環境でも LANG=ja_JP.EUC-JP としている。普段使いのエディタ Emacs も (set-default-coding-systems ‘euc-japan) だ。そこで /var/lib/trac/(リポジトリ)/conf/trac.ini で
  [trac]
  default_charset = euc-jp
とした。 ファイルの中身がeuc-jpなら何の問題もないのだが、だんだんutf-8のものも出てきた。するとTracで閲覧するときに化けてしまう。これは TracJaの説明にもあるように、
Subversion リポジトリに格納しているファイルのエンコードが、ファイルごとに違う場合、 Subversion 側で各ファイルの svn:mime-types 属性にcharset を正しく設定することで解消します (trac-0.8.2 以降):
で解決した。phpだからといって mime-typeを application/phpとするのはやりすぎで、閲覧することを考えると text/* にしておくのが吉。text/x-php としてみた。text/plain がもっとも無難だとは思うが。 Emacsでは[[psvn.elを使う。編集中に差分を見たいとき = (差分)とすると、euc-jpのバッファにutf-8を表示しようとして文字化けしてしまう。E (Ediff)だと化けずに表示できるので、こちらで見ることにしよう。

MediaWiki

またもや随分間があいてしまった。

さて今度は訳あって某所に Wikiを導入。多言語を扱いたいという要望により MediaWiki にした。特に問題なくインストール完了。

一般公開するものではなく、閲覧もメンバに限りたいということで、LocalSettings.php に

  $wgWhitelistRead = array( "Main Page", "Special:Userlogin");
  $wgGroupPermissions['*']['read'] = false;
この2行めが必要ということに気づくまで時間がかかってしまった ((1行めは、もし日本語でインストール場合は
  $wgWhitelistRead = array ("メインページ", "特別:ユーザログイン");
として utf-8で保存する。))。

書込みももちろんメンバ限定なので

  $wgGroupPermissions['*']['createaccount']   = false;
  $wgGroupPermissions['*']['edit'] = false;

dvips

しばらく前からdvips(dvipsk-ja)が dvips: ! Couldn’t find header file 8r.enc というエラーを吐いて動かない。いろいろ探しまわって、[[http://2chlinux.dtdns.net/2ch-debian/1139890780/79.html|2ちゃんねるDebianスレ]]で、 /etc/texmf/texmf.d/70dvipsj.cnfを TEXPSHEADERS.dvips = .;$TEXMF/{dvipsj,dvips,pdftex,tex,fonts/type1,fonts/enc}// と書き直せばいいことがわかった。 と思ったら、今度は mktexpk: don’t know how to create bitmap font for rml のエラー。これまた探しまわって、 >現在testingのdvipsk-jaは/etc/texmf/dvipsj以下のmapを読まないようなので というのをやはり[[http://2chlinux.dtdns.net/2ch-debian/1139890780/105.html|2ちゃんねるDebianスレ]]に見つけた。dvipsj/ は読まないが dvips/は読むということらしい。うちには/etc/texmf/dvips/というディレクトリはなかったので、 ln -s dvipsj dvips としたらたちまち動き出した。