From: Kouhei Sutou Date: 2006-02-28T21:23:14+09:00 Subject: Re: Ruby path for SVN log XML -> HTML ----Next_Part(Tue_Feb_28_21_22_58_2006_128)-- Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_Feb_28_21_22_58_2006_128)--" ----Next_Part(Tue_Feb_28_21_22_58_2006_128)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, In "Ruby path for SVN log XML -> HTML" on Mon, 27 Feb 2006 22:28:34 +0900, Bil Kleb wrote: > So what's the Ruby way to go from > > svn log --limit 40 --xml --verbose > > to HTML? Here is my answer. A sample output is here: http://pub.cozmixng.org/~kou/archives/svnlog2html-sample.html ----Next_Part(Tue_Feb_28_21_22_58_2006_128)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="svnlog2html.rb" #!/usr/bin/env ruby require "erb" require "svn/client" include ERB::Util path = File.expand_path(ARGV.shift || $PWD) html = <<-HEADER #{h path}

#{h path}

HEADER ctx = Svn::Client::Context.new ctx.log(path, "HEAD", 0, 40, true, true) do |changed_paths, rev, author, date, message| html << <<-ENTRY_HEADER

r#{h rev}

#{h message}
by #{h author} at #{date}
ENTRY_HEADER changed_paths.sort.each do |path, changed_path| if changed_path.is_a?(String) # known bug of Ruby bindings for 1.3.0 action = changed_path else action = changed_path.action end html << <<-ENTRY_PATH
  • #{h action}: #{h path}
ENTRY_PATH end html << <<-ENTRY_FOOTER
ENTRY_FOOTER end html << <<-FOOTER FOOTER puts html ----Next_Part(Tue_Feb_28_21_22_58_2006_128)---- ----Next_Part(Tue_Feb_28_21_22_58_2006_128)----