script to retroactively add commitids to past openbsd commits

outputter: add a history output with one line per change

+46 -6
+37
lib/outputter.rb
··· 88 88 end 89 89 end 90 90 91 + def history(fh) 92 + last = {} 93 + files = [] 94 + 95 + printlog = Proc.new { 96 + fh.puts [ 97 + Time.at(last["date"].to_i).strftime("%Y/%m/%d %H:%M:%S"), 98 + last["author"], 99 + last["commitid"], 100 + last["log"].to_s.split("\n").first, 101 + files.map{|f| f.gsub(/,v$/, "") }.join(", "), 102 + ].join("\t") 103 + } 104 + 105 + @scanner.db.execute("SELECT 106 + changesets.date, changesets.author, changesets.commitid, changesets.log, 107 + files.file 108 + FROM changesets 109 + LEFT OUTER JOIN revisions ON revisions.changeset_id = changesets.id 110 + LEFT OUTER JOIN files ON revisions.file_id = files.id 111 + ORDER BY changesets.date, files.file") do |csfile| 112 + if csfile["commitid"] == last["commitid"] 113 + files.push csfile["file"] 114 + else 115 + if files.any? 116 + printlog.call 117 + end 118 + files = [ csfile["file"] ] 119 + last = csfile 120 + end 121 + end 122 + 123 + if last.any? 124 + printlog.call 125 + end 126 + end 127 + 91 128 def dup_script(script, tree) 92 129 script.puts "#!/bin/sh -x" 93 130 script.puts "if [ \"$TMPCVSDIR\" = \"\" ]; then echo 'set $TMPCVSDIR'; " +
+9 -6
openbsd-commitid.rb
··· 1 1 #!/usr/bin/env ruby 2 2 3 - $:.push "./lib" 3 + DIR = File.dirname(__FILE__) + "/lib/" 4 4 5 - require "db" 6 - require "scanner" 7 - require "rcsfile" 8 - require "rcsrevision" 9 - require "outputter" 5 + require DIR + "db" 6 + require DIR + "scanner" 7 + require DIR + "rcsfile" 8 + require DIR + "rcsrevision" 9 + require DIR + "outputter" 10 10 11 11 CVSROOT = "/var/cvs-commitid/" 12 12 CVSTMP = "/var/cvs-tmp/" ··· 41 41 42 42 sc.outputter.changelog("cvs.openbsd.org", 43 43 f = File.open("out/Changelog-#{tree}", "w+")) 44 + f.close 45 + 46 + sc.outputter.history(f = File.open("out/history-#{tree}", "w+")) 44 47 f.close 45 48 46 49 sc.outputter.dup_script(f = File.open("out/add_commitids_to_#{tree}.sh",