manholeのおきらくごくらく日記
SPAM対策中です。コメントが反映されない方はリンク先をご覧ください。
[
Maven2
| Maven
| Axis2
| testing
]
オススメ:
xUnit Test Patterns
| JUnit Recipes
| パターン指向リファクタリング入門
| Ant第2版
2006-07-01 (土) [長年日記]
■ やっと読めた
- 木多康昭トークライブ_まとめ
- 荒木飛呂彦先生講演会レポート
- [@JOJO] サタデープログラム、荒木飛呂彦「漫画家という仕事」感想&レポートサイトリンク集(作成中)
■ ひと休み
「〜大天使」って映画になるの?
それからこれも。
http://shopping2.vcube.net/cgi-bin/Suser/detail.cgi?id=2758&type=book&searchURL=search.cgi%3Fmode%3Dtop
これだけ単行本未収録があれば、普通に5巻出せるんじゃないのかなぁ。
■ [Linux] Linux再設定中...
Canonのプリンタドライバを入れようとしたら、libpng.so.2が無いとダメ出しされる。
libpng.so.3は入っているようだ。とりあえず ln -s libpng.so.3 libpng.so.2 でごまかそうとしたが変わらず。
ちょっと古めのバージョンlibpng-1.0.20.tar.bz2を落としてきてビルドしてみたが、libpng.so.3の方ができてしまった。そっちじゃないよ。むむむ。
ドライバのリリースは2004年か...今更新バージョンが出るとも考えづらいし。
素直にWindowsで使っておくべきか〜?
追記(2006/07/02)
libpng10を入れれば良かったようだ。
# apt-get install libpng10
これで/usr/lib/libpng.so.2 (/usr/lib/libpng.so.2.1.0.18へのシンボリックリンク)が入った。
■ [svn][ruby] コミットメールを送る
ここを参考に設定。
http://yamashita.dyndns.org/blog/247
コミット時にメールを飛ばすようにするには、
- ${repo}/hooks/post-commitスクリプトを作成し、(コミット直後にSubversionにより実行される)
- post-commitスクリプトからcommit-email.rbを呼ぶ。
- 実際のメール送信処理はcommit-email.rbで行う。
- スクリプトには実行権限を付けておく。
post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
env LANG=ja_JP.eucJP ${REPOS}/hooks/commit-email.rb "$REPOS" "$REV"
commit-email.rb
#!/usr/bin/ruby -Ke
require 'net/smtp'
require 'kconv'
REPOS=ARGV[0]
REV=ARGV[1].to_i
svnauthor=%x{svnlook author #{REPOS} -r #{REV}}.chomp
svndate=%x{svnlook date #{REPOS} -r #{REV}}.chomp
svnchanged=%x{svnlook changed #{REPOS} -r #{REV}}.chomp
svnlog=%x{svnlook log #{REPOS} -r #{REV}}.chomp
svndiff=%x{svnlook diff #{REPOS} -r #{REV}}.chomp
toaddr=['manhole@xxxxx']
body = <<END_OF_BODY
Subversion committed to #{REPOS} #{REV}
┌────────────────────────────┐
│更新者 : #{svnauthor.ljust(46)}│
│更新日時: #{svndate.ljust(46)}│
└────────────────────────────┘
Log:
--------------------------------------------------------
#{svnlog}
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
#{svnchanged}
Diff:
--------------------------------------------------------
#{svndiff}
END_OF_BODY
message = <<END_OF_MESSAGE
From: Subversion Admin <manhole@xxxxx>
To: Subversion committers:;
Subject: [pj-#{REV}] commit
MIME-Version: 1.0
Content-Type: text/plain; charset = ISO-2022-JP
X-Mailer: Subversion email-send.rb
#{body.tojis}
END_OF_MESSAGE
Net::SMTP.start('localhost', 25) { |smtp|
smtp.send_mail(message, 'manhole@xxxxx', *toaddr)
}
■ [svn] コミットログを変更できるようにする
Subversionのデフォルト設定では、コミットログメッセージを変更できない。
これは、ログのようなリビジョン属性はバージョン管理されていないためのようだ。
http://subversion.bluegate.org/doc/ch05s02.html
ログメッセージを変更可能にするには、
- ${repo}/hooks/pre-revprop-changeを置く
- pre-revprop-change.tmplをリネームするだけ
だけでOK。
■ [svn][ruby] コミットログ変更時にメールを送る
コミットメール送信と同じノリです。
- ${repo}/hooks/post-revprop-changeスクリプトを作成し、
- post-revprop-changeからrevprop-change-email.rbを呼ぶ。
- 実際のメール送信処理はrevprop-change-email.rbで行う。
- スクリプトには実行権限を付けておく。
post-revprop-change
#!/bin/sh
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
env LANG=ja_JP.eucJP ${REPOS}/hooks/revprop-change-email.rb "$REPOS" "$REV" "$USER" "$PROPNAME" "$ACTION"
revprop-change-email.rb
#!/usr/bin/ruby -Ke
require 'net/smtp'
require 'kconv'
require 'uconv'
REPOS=ARGV[0]
REV=ARGV[1].to_i
USER=ARGV[2]
PROPNAME=ARGV[3]
ACTION=ARGV[4]
OLDVALUE=Uconv.u8toeuc(STDIN.read).chomp
NEWVALUE=""
if "svn:log" == PROPNAME
NEWVALUE = %x{svnlook log #{REPOS} -r #{REV}}.chomp
end
toaddr=['manhole@xxxxx']
body = <<END_OF_BODY
Subversion revprop changed to #{REPOS} #{REV}
USER=#{USER}
PROPNAME=#{PROPNAME}
ACTION=#{ACTION}
old value:
--------------------------------------------------------
#{OLDVALUE}
new value:
--------------------------------------------------------
#{NEWVALUE}
END_OF_BODY
message = <<END_OF_MESSAGE
From: Subversion Admin <manhole@xxxxx>
To: Subversion committers:;
Subject: [pj-#{REV}] revprop
MIME-Version: 1.0
Content-Type: text/plain; charset = ISO-2022-JP
X-Mailer: Subversion email-send.rb
#{body.tojis}
END_OF_MESSAGE
Net::SMTP.start('localhost', 25) { |smtp|
smtp.send_mail(message, 'manhole@xxxxx', *toaddr)
}
KconvとUconv両方使ってるあたりがイマイチな感じだ。。。

