make_change_log.tcl [plain text]
#!/bin/sh
exec tclsh8.3 $0 $*
set depots {//depot/code/org.antlr/dev/klaren.dev //depot/code/org.antlr/main/main }
set files { /lib/cpp/... /antlr/... }
set filespec ""
foreach depot $depots {
foreach file $files {
append filespec "$depot$file "
}
}
puts stderr "Gettting changes from: $filespec"
catch {set file [open "|p4 changes -l $filespec" r]}
set cnt 0
set changes {}
set text ""
set change_nr -1
while {![eof $file]} {
set line [gets $file]
if { [regexp -- {^Change ([0-9]+).*$} $line dummy tmp] } {
lappend changes $tmp
if { $change_nr != -1 } {
set description($change_nr) $text
}
set change_nr $tmp
set text "[string trim $line]\n"
} else {
append text " [string trim $line]\n"
}
}
set description($change_nr) $text
catch {close $file}
set sorted_changes [lsort -unique -integer -decreasing $changes]
foreach change $sorted_changes {
puts $description($change)
}