Subversionのログに書いてあるURLが移転とかで変わったけど全部正しいURLに差し替えたい…!とかそういうニッチなことをするの、こんな感じでどうでしょうか。
1.リポジトリをダンプして、一時リポジトリを作ってそこにインポートする
$ svnadmin dump repos/fromrepo > dump.dump $ svnadmin create repos/workrepo $ svnadmin load repos/workrepo < dump.dump
2.ログをXMLで出力し、出力されたXMLのコメントをお好みに編集する
$ svn log --xml file:///Users/ebina/work/svn_comment/repos/workrepo/ > logs.xml
3.以下のRubyスクリプトを実行
require 'rexml/document' svnpath = ARGV[0] xmlpath = ARGV[1] if svnpath == nil || xmlpath == nil puts "Usage: ruby svn_comment_import.rb [Subversion repositry] [log xml]" exit end doc = File.open(xmlpath) {|fp| REXML::Document.new fp } doc.elements['/log'].each do |l| if l.class == REXML::Element && l.name == "logentry" rev = l.attributes['revision'] msg = l.elements['msg'].text File.open('work.txt', 'w') do |f| f.puts msg end system( "svnadmin setlog --bypass-hooks #{svnpath} -r #{rev} work.txt") File.delete('work.txt') end end
$ ruby svn_comment_import.rb /Users/ebina/work/svn_comment/repos/workrepo/ logs.xml