メモの日々


2009年03月10日(火) [長年日記]

  • 色々な作業を並行して行っていて落ち着かない。

[ruby] RubyでSubversionを操作

Subversion本家でRuby用のライブラリが公開されているというので使ってみた。Windows & Apach 2.0用なら http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 に svn-win32-1.5.6_rb.zip などとして置かれていた。アーカイブ内にあるファイルをRubyから見える場所に配置して使う。gemにはなっていないみたいで不便。

ドキュメントが全然ないようで、みんな困っているみたい。おれは認証回りがうまく動かず難儀したが、色々なサイトを参考にして export を行う処理を書けたのでメモ。

#!/usr/bin/ruby
# config: utf-8

require "svn/client"

# Contextを作って操作するのが基本みたい
svn_ctx = Svn::Client::Context.new

# Contextに認証情報を設定する。
# add_simple_prompt_provider を使うとうまくいった。
# providerの使い方はよく分かっていない。
# username, passwordを設定しないとRubyがSegmentation faultになる...
svn_ctx.add_simple_prompt_provider(0) {|cred, realm, username, may_save|
  cred.username = "kenichi"
  cred.password = "password" # XXX
}

# exportを実行。戻り値でリビジョン番号を取得できた。
remote = "http://oreore/svn/src/nantoka"
local = "kantoka"
revision_number = svn_ctx.export(remote, local)

puts "Revision #{revision_number} is exported."

[book] 容疑者Xの献身 (東野圭吾)

容疑者Xの献身(東野圭吾/著) 読んだ。殺人事件に関わった数学教師にガリレオ湯川が絡んでくる話。とても読みやすく、面白かった。4点。

やること

  • 請書
  • ゴミ袋
  • 換金