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."
■ やること
請書- ゴミ袋
- 換金