tangled
alpha
login
or
join now
jcs.org
/
openbsd-commitid
0
fork
atom
script to retroactively add commitids to past openbsd commits
0
fork
atom
overview
issues
pulls
pipelines
outputter: add a history output with one line per change
jcs.org
9 years ago
a12e5f64
72e6be31
+46
-6
2 changed files
expand all
collapse all
unified
split
lib
outputter.rb
openbsd-commitid.rb
+37
lib/outputter.rb
···
88
88
end
89
89
end
90
90
91
91
+
def history(fh)
92
92
+
last = {}
93
93
+
files = []
94
94
+
95
95
+
printlog = Proc.new {
96
96
+
fh.puts [
97
97
+
Time.at(last["date"].to_i).strftime("%Y/%m/%d %H:%M:%S"),
98
98
+
last["author"],
99
99
+
last["commitid"],
100
100
+
last["log"].to_s.split("\n").first,
101
101
+
files.map{|f| f.gsub(/,v$/, "") }.join(", "),
102
102
+
].join("\t")
103
103
+
}
104
104
+
105
105
+
@scanner.db.execute("SELECT
106
106
+
changesets.date, changesets.author, changesets.commitid, changesets.log,
107
107
+
files.file
108
108
+
FROM changesets
109
109
+
LEFT OUTER JOIN revisions ON revisions.changeset_id = changesets.id
110
110
+
LEFT OUTER JOIN files ON revisions.file_id = files.id
111
111
+
ORDER BY changesets.date, files.file") do |csfile|
112
112
+
if csfile["commitid"] == last["commitid"]
113
113
+
files.push csfile["file"]
114
114
+
else
115
115
+
if files.any?
116
116
+
printlog.call
117
117
+
end
118
118
+
files = [ csfile["file"] ]
119
119
+
last = csfile
120
120
+
end
121
121
+
end
122
122
+
123
123
+
if last.any?
124
124
+
printlog.call
125
125
+
end
126
126
+
end
127
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
3
-
$:.push "./lib"
3
3
+
DIR = File.dirname(__FILE__) + "/lib/"
4
4
5
5
-
require "db"
6
6
-
require "scanner"
7
7
-
require "rcsfile"
8
8
-
require "rcsrevision"
9
9
-
require "outputter"
5
5
+
require DIR + "db"
6
6
+
require DIR + "scanner"
7
7
+
require DIR + "rcsfile"
8
8
+
require DIR + "rcsrevision"
9
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
44
+
f.close
45
45
+
46
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",