%PDF- %PDF-
Direktori : /proc/self/root/usr/share/doc/subversion-1.7.14/examples/ |
Current File : //proc/self/root/usr/share/doc/subversion-1.7.14/examples/svnlog2html.rb |
#!/usr/bin/env ruby # ###################################################################### # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. ###################################################################### # require "erb" require "svn/client" include ERB::Util path = File.expand_path(ARGV.shift || Dir.pwd) html = <<-HEADER <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style type="text/css"> div.entry { border: 1px solid red; border-width: 1px 0 0 1px; margin: 2em 2em 2em 3em; padding: 0 2em; } pre.message { border-left: 1px solid red; margin: 1em 2em; padding-left: 1em; } div.info { text-align: right; } span.info { border-bottom: 1px solid red; padding: 0 5px 1px 1em; } span.author { font-style: italic; } span.date { color: #999; } li.action-A { color: blue; } li.action-M { color: green; } li.action-D { color: red; text-decoration: line-through; } </style> <title>#{h path}</title> </head> <body> <h1>#{h path}</h1> HEADER ctx = Svn::Client::Context.new ctx.log(path, "HEAD", 0, 40, true, true) do |changed_paths, rev, author, date, message| html << <<-ENTRY_HEADER <div class="entry"> <h2>r#{h rev}</h2> <pre class="message">#{h message}</pre> <div class="info"> <span class="info"> by <span class="author">#{h author}</span> at <span class="date">#{date}</span> </span> </div> <div class="changed-path"> ENTRY_HEADER changed_paths.sort.each do |path, changed_path| action = changed_path.action html << <<-ENTRY_PATH <ul> <li class="action-#{h action}"> <span class="action">#{h action}</span>: <span class="changed-path">#{h path}</span> </li> </ul> ENTRY_PATH end html << <<-ENTRY_FOOTER </div> </div> ENTRY_FOOTER end html << <<-FOOTER </body> </html> FOOTER puts html