@@ -1,370 +1,185 @@
1 1 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#!/bin/sh
2 2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# -*- tcl -*- \
3 3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
exec tclsh "$0" ${1+"$@"}
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# -----------------------------------------------------------------------------
6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Make private packages accessible.
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- lappend auto_path [file join [file dirname [info script]] lib]
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- package require rcsparser
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- package require fileutil
11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # -----------------------------------------------------------------------------
13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Repository management (CVS)
14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- namespace eval ::cvs {
16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable base ; set base {} ; # Repository toplevel directory.
17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable npaths ; array set npaths {} ; # path -> actual path mapping.
18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable rpaths ; array set rpaths {} ; # path -> rcs file mapping.
19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable cmsg ; array set cmsg {} ; # Cache of commit messages.
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::cvs::hextime {hex} {
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set t 0
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach d [string map {
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- a 10 b 11 c 12 d 13 e 14 f 15
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- A 10 B 11 C 12 D 13 E 14 F 15
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } [split $hex {}]] {
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set t [expr {($t << 4) + $d}];#horner
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return $t
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::cvs::at {path} {
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable base $path
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::cvs::cmsg {path rev} {
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable cmsg
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set key [list $path $rev]
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {![info exists cmsg($key)]} {
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set rcs [cvs::rcsfile $path]
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #puts stderr "scan $path => $rcs"
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- array set p [::rcsparser::process $rcs]
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach {r msg} $p(commit) {
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set cmsg([list $path $r]) $msg
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {![info exists cmsg($key)]} {
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return -code error "Bogus revision $rev of file $path"
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return $cmsg($key)
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::cvs::norm {path} {
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable npaths
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {![info exists npaths($path)]} {
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set npaths($path) [NormFile $path]
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return $npaths($path)
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::cvs::NormFile {path} {
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable base
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f $base/$path,v
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[::file exists $f]} {return $path}
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set hd [::file dirname $path]
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set tl [::file tail $path]
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f $base/$hd/Attic/$tl,v
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[::file exists $f]} {return $path}
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Bad. The dir can be truncated, i.e. it may not be an exact
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # subdirectory of base, but deeper inside, with parents between it
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # and base left out. Example (from the tcllib history file):
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # M3f1d1245|afaupell|<remote>|ipentry|1.2|ChangeLog
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # The correct path is 'tklib/modules/ipentry'.
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # This we have to resolve too.
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # normalize dance - old fileutil, modern fileutil (cvs head) doesn't do that.
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set bx [file normalize $base]
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach c [fileutil::findByPattern $bx -glob $hd] {
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set cx [fileutil::stripPath $bx $c]
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set c $base/$cx
94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f $c/$tl,v
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[::file exists $f]} {return $cx/$tl}
97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f $c/Attic/$tl,v
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[::file exists $f]} {return $cx/$tl}
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts stderr <$f>
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return -code error "Unable to locate actual file for $path"
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::cvs::rcsfile {path} {
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable rpaths
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {![info exists rpaths($path)]} {
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set rpaths($path) [RcsFile $path]
109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return $rpaths($path)
111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::cvs::RcsFile {path} {
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable base
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f $base/$path,v
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[::file exists $f]} {return $f}
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set hd [::file dirname $path]
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set tl [::file tail $path]
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f $base/$hd/Attic/$tl,v
123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[::file exists $f]} {return $f}
124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # We do not have truncated directories here, assuming that only
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # norm paths are fed into this command.
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if 0 {
129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Bad. The dir can be truncated, i.e. it may not be an exact
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # subdirectory of base, but deeper inside, with parents
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # between it and base left out. Example (from the tcllib
132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # history file):
133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # M3f1d1245|afaupell|<remote>|ipentry|1.2|ChangeLog The
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # correct path is 'tklib/modules/ipentry'. This we have to
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # resolve too.
137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # normalize dance - old fileutil, modern fileutil (cvs head)
139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # doesn't do that.
140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set bx [file normalize $base]
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach c [fileutil::findByPattern $bx -glob $hd] {
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set c $base/[fileutil::stripPath $bx $c]
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f $c/$tl,v
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[::file exists $f]} {return $f}
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f $c/Attic/$tl,v
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[::file exists $f]} {return $f}
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts stderr <$f>
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return -code error "Unable to locate rcs file for $path"
153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc ::cvs::history {} {
156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- variable base
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return $base/CVSROOT/history
158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # -----------------------------------------------------------------------------
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # -----------------------------------------------------------------------------
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cvs::at [lindex $argv 0]
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #puts [::cvs::norm ipentry/ChangeLog]
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #exit
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #changeset state
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- global cs csf
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- array set cs {
172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- start {} end {} cm {}
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- usr {} dt {}
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- array set csf {}
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc rh {} {
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- global argv cs csf repo
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set f [open [cvs::history] r]
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while {[gets $f line] >= 0} {
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Decode line
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach {op usr _ dir rev file} [split [string trim $line] |] break
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set ts [cvs::hextime [string range $op 1 end]]
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set op [string index $op 0]
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Filter out irrelevant parts
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$op eq "O"} continue ; # checkout
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$op eq "F"} continue ; # release
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$op eq "T"} continue ; # rtag
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$op eq "W"} continue ; # delete on update
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$op eq "U"} continue ; # update
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$op eq "P"} continue ; # update by patch
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if {$op eq "G"} continue ; # merge on update - FUTURE - identifies mergepoints.
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$op eq "C"} continue ; # conflict on update - s.a.
197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$op eq "E"} continue ; # export
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # left types
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # M: commit
200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # A: addition
201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # R: removal
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set df $dir/$file
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[newcs $op $usr $ts $rev df cause]} {
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # NOTE 1: ChangeSets containing CVSROOT => remove such files.
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # NOTE 2: Empty changesets, ignore.
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #commit
210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- csstats
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$cause eq "cmsg"} {
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set msg
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set msg ""
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$cs(end) ne ""} {
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts =============================/$cause\ delta\ [expr {$ts - $cs(end)}]
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts =============================/$cause
222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- csclear
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Note: newcs normalizes df, in case the log information is
227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # bogus. So the df here may be different from before newcs
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- csadd $op $usr $ts $rev $df
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # apply modification to workspace
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc newcs {op usr ts rev dfv rv} {
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- global cs csf
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- upvar 1 $rv reason $dfv df
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Logic to detect when a new change set begins. A new change sets
238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # has started with the current entry when the entry
239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #
240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # 1. is for a different user than the last.
241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # 2. tries to add a file to the changeset which is already part of it.
242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # 3.is on the trunk, and the last on a branch, or vice versa.
243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # 4. the current entry has a different commit message than the last.
244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set df [cvs::norm $df]
246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # User changed
248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$usr ne $cs(usr)} {
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set reason user
250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1
251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # File is already in the changeset
254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[info exists csf($df)]} {
255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set reason file
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # last/current are different regarding trunk/branch
260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set depth [llength [split $rev .]]
261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {($cs(lastd) == 2) != ($depth == 2)} {
262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set reason branch
263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1
264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Commit message changed
267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {[cvs::cmsg $cs(lastf) $cs(lastr)] ne [cvs::cmsg $df $rev]} {
268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set reason cmsg
269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 1
270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # Same changeset
273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0
274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc csclear {} {
277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- global cs csf
278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- array set cs {start {} usr {} end {} dt {}}
279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- array unset csf *
280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return
281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc csadd {op usr ts rev df} {
284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- global cs csf
285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$cs(usr) eq ""} {set cs(usr) $usr}
287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$cs(start) eq ""} {
288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set cs(start) $ts
289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- } else {
290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- lappend cs(dt) [expr {$ts - $cs(end)}]
291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set cs(end) $ts
293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set csf($df) [list $op $rev]
295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set cs(lastf) $df
296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set cs(lastr) $rev
297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- set cs(lastd) [llength [split $rev .]]
298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts [list $op [clock format $ts] $usr $rev $df]
300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return
301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- proc csstats {} {
304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- global cs csf
305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$cs(start) eq ""} return
307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts "files: [array size csf]"
309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts "delta: $cs(dt)"
310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts "range: [expr {$cs(end) - $cs(start)}] seconds"
311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return
312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rh
315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- exit
317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- =========================================
319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- new fossil
320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- new fossil workspace
321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- open history
323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- foreach line {
325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ignore unwanted lines
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- accumulate changesets data
328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- new change-set => commit and continue
329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- current branch and branch of new change different ?
331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- => move fossil workspace to proper revision.
332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- apply change to workspace
334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- uncommitted
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if uncommitted => commit
338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- delete workspace
339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- copy fossil repo to destination
340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- =========================================
341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Not dealt with in outline: branches, tags, merging
343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- =========================================
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- complexities
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - apply to workspace
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - remove simple, direct translation
349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - add => requires extraction of indicated revision from ,v
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - modify => see above (without add following)
351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - ,v file => Can be the either dir/file,v, or dir/Attic/file,v
353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Both ? Priority ?
354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - How to detect changes on branches ?
356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - Have to keep knowledge of which branches went there.
358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- => save change-sets information, + uuid in fossil
359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- => need only the leaves of each branch, and of branch points.
360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- => better keep all until complete.
361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- => uuid can be gotten from 'manifest.uuid' in workspace.
362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- - keep tag information ? (symbolics)
363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- =========================================
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CVSROOT=ORIGIN
367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cvs -d ORIGIN checkout -r REV FILE
369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Extract specific revision of a specific file.
370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- -q, -Q quietness
6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Import the trunk of a CVS repository wholesale into a fossil repository.
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Limitations implicitly mentioned:
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # - No incremental import.
11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # - No import of branches.
12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # WIBNI features (beyond eliminating the limitations):
14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # - Restrict import to specific directory subtrees (SF projects use
15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # one repository for several independent modules. Examples: tcllib
16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -> tcllib, tklib, tclapps, etc.). The restriction would allow import
17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # of only a specific module.
18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # - Related to the previous, strip elements from the base path to keep
19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # it short.
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # - Export to CVS, trunk, possibly branches. I.e. extend the system to be
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # a full bridge. Either Fossil or CVS could be the master repository.
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # HACKS. I.e. I do not know if the 'fixes' I use are the correct way
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # of handling the encountered situations.
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # - File F has archives F,v and Attic/F,v. Currently I will ignore the
27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # file in the Attic.
28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Examples: sqlite/os_unix.h
29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #
30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # - A specific revision of a file F cannot be checked out (reported
31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # error is 'invalid change text'). This indicates a corrupt RCS
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # file, one or more delta are bad. We report but ignore the problem
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # in a best-effort attempt at getting as much history as possible.
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Examples: tcllib/tklib/modules/tkpiechart/pie.tcl
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -----------------------------------------------------------------------------
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Make private packages accessible.
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lappend auto_path [file join [file dirname [info script]] lib]
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -----------------------------------------------------------------------------
42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Requirements
43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ package Tcl 8.4
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ package require cvs ; # Frontend, reading from source repository
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ package require fossil ; # Backend, writing to destination repository.
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -----------------------------------------------------------------------------
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc main {} {
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ global argv tot nto cvs fossil ntrunk
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ commandline
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil::feedback Write ; # Setup progress feedback from the libraries
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::feedback Write
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::at $cvs ; # Define location of CVS repository
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::scan ; # Gather revision data from the archives
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::csets ; # Group changes into sets
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::rtree ; # Build revision tree (trunk only right now).
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set tot 0.0
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set nto 0
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info {Importing ...}
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info { Setting up cvs workspace and temporary fossil repository}
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::workspace ; # cd's to workspace
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil::new ; # Uses cwd as workspace to connect to.
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set ntrunk [cvs::ntrunk]
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::foreach_cset cset [cvs::root] {
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ import $cset
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::wsclear
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " ========= [string repeat = 61]"
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " Imported $nto [expr {($nto == 1) ? "changeset" : "changesets"}]"
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " Within [format %.2f $tot] seconds (avg [format %.2f [expr {$tot/$nto}]] seconds/changeset)"
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info { Moving to final destination}
83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil::destination $fossil
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info Ok.
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -----------------------------------------------------------------------------
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc commandline {} {
94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ global argv cvs fossil nosign log
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set nosign 0
97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while {[string match "-*" [set opt [lindex $argv 0]]]} {
98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {$opt eq "--nosign"} {
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set nosign 1
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set argv [lrange $argv 1 end]
101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ continue
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ usage
104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {[llength $argv] != 2} usage
106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach {cvs fossil} $argv break
107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {
109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ![file exists $cvs] ||
110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ![file readable $cvs] ||
111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ![file isdirectory $cvs]
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } {
113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ usage "CVS directory missing, not readable, or not a directory."
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } elseif {[file exists $fossil]} {
115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ usage "Fossil destination repository exists already."
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set log [open ${fossil}.log w]
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc usage {{text {}}} {
123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ global argv0
124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ puts stderr "Usage: $argv0 ?--nosign? cvs-repository fossil-rpeository"
125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {$text eq ""} return
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ puts stderr " $text"
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ exit
128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc import {cset} {
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ global tot nto nosign ntrunk
132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " Importing $cset [string repeat = [expr {60 - [string length $cset]}]]"
133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " At $nto/$ntrunk ([format %.2f [expr {double($nto)/$ntrunk}]]%)"
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set usec [lindex [time {
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach {uuid ad rm ch} [fossil::commit cvs2fossil $nosign \
137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ [cvs::wssetup $cset] \
138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ::cvs::wsignore] break
139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } 1] 0]
140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cvs::uuid $cset $uuid
141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set sec [expr {$usec/1e6}]
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set tot [expr {$tot + $sec}]
144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ incr nto
145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " == $uuid +${ad}-${rm}*${ch}"
147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " in $sec seconds"
148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set avg [expr {$tot/$nto}]
150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set max [expr {$ntrunk * $avg}]
151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set rem [expr {$max - $tot}]
152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " st avg [format %.2f $avg]"
154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " st run [format %7.2f $tot] sec [format %6.2f [expr {$tot/60}]] min [format %5.2f [expr {$tot/3600}]] hr"
155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " st end [format %7.2f $max] sec [format %6.2f [expr {$max/60}]] min [format %5.2f [expr {$max/3600}]] hr"
156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Write info " st rem [format %7.2f $rem] sec [format %6.2f [expr {$rem/60}]] min [format %5.2f [expr {$rem/3600}]] hr"
157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -----------------------------------------------------------------------------
161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ array set fl {
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ debug {DEBUG }
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ info { }
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ warning {Warning}
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ error {ERROR }
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc Write {l t} {
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ global fl log
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {[string index $t 0] eq "\r"} {
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ puts -nonewline stdout "\r$fl($l) [string range $t 0 end-1]"
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ } else {
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ puts stdout "$fl($l) $t"
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ puts $log "$fl($l) $t"
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ flush stdout
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # -----------------------------------------------------------------------------
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ main
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ exit
371 186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
372 187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
A DDED tools/lib/cvs.tcl
373 188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
A DDED tools/lib/fossil.tcl