File: make_change_log.tcl

package info (click to toggle)
antlr 2.7.7%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 9,928 kB
  • ctags: 10,225
  • sloc: java: 54,649; cs: 12,533; makefile: 8,963; cpp: 7,359; pascal: 5,273; sh: 4,337; python: 4,301; lisp: 1,969; xml: 220; lex: 192; ansic: 134
file content (57 lines) | stat: -rwxr-xr-x 1,212 bytes parent folder | download | duplicates (13)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh8.3 $0 $*

# 
# Sort the (C++) changes recorded in the repository by change number and
# print them to stdout
#
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] } {
		# append the number to the list of found changes
		lappend changes $tmp

		if { $change_nr != -1 } {
			# were already working on change..
			# so we have text to store..
			set description($change_nr) $text
		}

		# remember number...
		set change_nr $tmp
		# reinit text
		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)
}