Fossil SCM

Continuing namespace changes, cvs frontend.

aku 2007-09-13 06:22 trunk
Commit 00228d154780783e7bdcdffd2e3fd971d48d3dd9
+32 -27
--- tools/lib/cvs.tcl
+++ tools/lib/cvs.tcl
@@ -8,35 +8,35 @@
88
package require fileutil ; # Tcllib (traverse directory hierarchy)
99
package require rcsparser ; # Handling the RCS archive files.
1010
package require vc::tools::log ; # User feedback
1111
package require struct::tree
1212
13
-namespace eval ::cvs {
13
+namespace eval ::vc::cvs::ws {
1414
vc::tools::log::system cvs
1515
namespace import ::vc::tools::log::write
1616
}
1717
1818
# -----------------------------------------------------------------------------
1919
# API
2020
2121
# Define repository directory.
2222
23
-proc ::cvs::at {path} {
23
+proc ::vc::cvs::ws::at {path} {
2424
variable base [file normalize $path]
2525
write 0 cvs "Base: $base"
2626
return
2727
}
2828
29
-namespace eval ::cvs {
29
+namespace eval ::vc::cvs::ws {
3030
# Toplevel repository directory
3131
variable base {}
3232
}
3333
3434
# Scan repository, collect archives, parse them, and collect revision
3535
# information (file, revision -> date, author, commit message)
3636
37
-proc ::cvs::scan {} {
37
+proc ::vc::cvs::ws::scan {} {
3838
variable base
3939
variable npaths
4040
variable rpaths
4141
variable timeline
4242
@@ -115,11 +115,11 @@
115115
116116
write 0 cvs "Processed $n [expr {($n == 1) ? "file" : "files"}]"
117117
return
118118
}
119119
120
-namespace eval ::cvs {
120
+namespace eval ::vc::cvs::ws {
121121
# Path mappings. npaths: rcs file -> user file
122122
# rpaths: user file -> rcs file, dead-status
123123
124124
variable npaths ; array set npaths {}
125125
variable rpaths ; array set rpaths {}
@@ -129,11 +129,11 @@
129129
variable timeline ; array set timeline {}
130130
}
131131
132132
# Group single changes into changesets
133133
134
-proc ::cvs::csets {} {
134
+proc ::vc::cvs::ws::csets {} {
135135
variable timeline
136136
variable csets
137137
variable ncs
138138
variable cmap
139139
@@ -171,11 +171,11 @@
171171
write 0 cvs "Found $n [expr {($n == 1) ? "changeset" : "changesets"}]"
172172
return
173173
}
174174
175175
176
-namespace eval ::cvs {
176
+namespace eval ::vc::cvs::ws {
177177
# Changeset data:
178178
# ncs: Counter-based id generation
179179
# csets: id -> (user commit start end depth (file -> (op rev)))
180180
181181
variable ncs ; set ncs 0 ; # Counter for changesets
@@ -184,18 +184,18 @@
184184
185185
# Building the revision tree from the changesets.
186186
# Limitation: Currently only trunk csets is handled.
187187
# Limitation: Dead files are not removed, i.e. no 'R' actions right now.
188188
189
-proc ::cvs::rtree {} {
189
+proc ::vc::cvs::ws::rtree {} {
190190
variable csets
191191
variable rtree {}
192192
variable ntrunk 0
193193
194194
write 0 cvs "Extracting the trunk"
195195
196
- set rtree [struct::tree ::cvs::RT]
196
+ set rtree [struct::tree ::vc::cvs::ws::RT]
197197
$rtree rename root 0 ; # Root is first changeset, always.
198198
set trunk 0
199199
set ntrunk 1 ; # Root is on the trunk.
200200
set b 0 ; # No branch csets found yet.
201201
@@ -220,19 +220,19 @@
220220
write 0 cvs "Processed $ntrunk trunk [expr {($ntrunk == 1) ? "changeset" : "changesets"}]"
221221
write 0 cvs "Ignored $b branch [expr {($b == 1) ? "changeset" : "changesets"}]"
222222
return
223223
}
224224
225
-namespace eval ::cvs {
225
+namespace eval ::vc::cvs::ws {
226226
# Tree holding trunk and branch information (struct::tree).
227227
# Node names are cset id's.
228228
229229
variable rtree {}
230230
variable ntrunk 0
231231
}
232232
233
-proc ::cvs::workspace {} {
233
+proc ::vc::cvs::ws::workspace {} {
234234
variable cwd [pwd]
235235
variable workspace [fileutil::tempfile importF_cvs_ws_]
236236
file delete $workspace
237237
file mkdir $workspace
238238
@@ -240,25 +240,25 @@
240240
241241
cd $workspace ; # Checkouts go here.
242242
return $workspace
243243
}
244244
245
-proc ::cvs::wsignore {path} {
245
+proc ::vc::cvs::ws::wsignore {path} {
246246
# Ignore CVS admin files.
247247
if {[string match */CVS/* $path]} {return 1}
248248
return 0
249249
}
250250
251
-proc ::cvs::wsclear {} {
251
+proc ::vc::cvs::ws::wsclear {} {
252252
variable cwd
253253
variable workspace
254254
cd $cwd
255255
file delete -force $workspace
256256
return
257257
}
258258
259
-proc ::cvs::wssetup {c} {
259
+proc ::vc::cvs::ws::wssetup {c} {
260260
variable csets
261261
variable cvs
262262
variable base
263263
264264
# pwd = workspace
@@ -321,21 +321,21 @@
321321
322322
# Provide metadata about the changeset the backend may wish to have
323323
return [list $u $cm $s]
324324
}
325325
326
-namespace eval ::cvs {
326
+namespace eval ::vc::cvs::ws {
327327
# CVS application
328328
# Workspace where checkouts happen
329329
# Current working directory to go back to after the import.
330330
331331
variable cvs [auto_execok cvs]
332332
variable workspace {}
333333
variable cwd {}
334334
}
335335
336
-proc ::cvs::foreach_cset {cv node script} {
336
+proc ::vc::cvs::ws::foreach_cset {cv node script} {
337337
upvar 1 $cv c
338338
variable rtree
339339
340340
set c $node
341341
while {1} {
@@ -362,34 +362,34 @@
362362
set c [lindex [$rtree children $c] 0]
363363
}
364364
return
365365
}
366366
367
-proc ::cvs::root {} {
367
+proc ::vc::cvs::ws::root {} {
368368
return 0
369369
}
370370
371
-proc ::cvs::ntrunk {} {
371
+proc ::vc::cvs::ws::ntrunk {} {
372372
variable ntrunk
373373
return $ntrunk
374374
}
375375
376
-proc ::cvs::ncsets {} {
376
+proc ::vc::cvs::ws::ncsets {} {
377377
variable ncs
378378
return $ncs
379379
}
380380
381
-proc ::cvs::uuid {c uuid} {
381
+proc ::vc::cvs::ws::uuid {c uuid} {
382382
variable rtree
383383
$rtree set $c uuid $uuid
384384
return
385385
}
386386
387387
# -----------------------------------------------------------------------------
388388
# Internal helper commands: Changeset inspection and construction.
389389
390
-proc ::cvs::CSClear {} {
390
+proc ::vc::cvs::ws::CSClear {} {
391391
upvar 1 start start end end cm cm user user files files lastd lastd
392392
393393
set start {}
394394
set end {}
395395
set cm {}
@@ -398,16 +398,16 @@
398398
array unset files *
399399
array set files {}
400400
return
401401
}
402402
403
-proc ::cvs::CSNone {} {
403
+proc ::vc::cvs::ws::CSNone {} {
404404
upvar 1 start start
405405
return [expr {$start eq ""}]
406406
}
407407
408
-proc ::cvs::CSNew {entry} {
408
+proc ::vc::cvs::ws::CSNew {entry} {
409409
upvar 1 start start end end cm cm user user files files lastd lastd reason reason
410410
411411
#puts -nonewline stdout . ; flush stdout
412412
413413
foreach {op ts a rev f ecm} $entry break
@@ -427,11 +427,11 @@
427427
428428
# Everything is good, still the same cset
429429
return 0
430430
}
431431
432
-proc ::cvs::CSSave {} {
432
+proc ::vc::cvs::ws::CSSave {} {
433433
variable cmap
434434
variable csets
435435
variable ncs
436436
upvar 1 start start end end cm cm user user files files lastd lastd
437437
@@ -447,11 +447,11 @@
447447
448448
incr ncs
449449
return
450450
}
451451
452
-proc ::cvs::CSAdd {entry} {
452
+proc ::vc::cvs::ws::CSAdd {entry} {
453453
upvar 1 start start end end cm cm user user files files lastd lastd
454454
455455
foreach {op ts a rev f ecm} $entry break
456456
457457
if {$start eq ""} {set start $ts}
@@ -461,11 +461,11 @@
461461
set files($f) [list $op $rev]
462462
set lastd [llength [split $rev .]]
463463
return
464464
}
465465
466
-proc ::cvs::CSDump {c} {
466
+proc ::vc::cvs::ws::CSDump {c} {
467467
variable csets
468468
foreach {u cm s e rd f} $csets($c) break
469469
470470
puts "$u $s"; regsub -all {.} $u { } b
471471
puts "$b $e"
@@ -473,11 +473,16 @@
473473
foreach {o r} $or break
474474
puts "$b $o $f $r"
475475
}
476476
return
477477
}
478
+
479
+namespace eval ::vc::cvs::ws {
480
+ namespace export at scan csets rtree workspace wsignore wsclear wssetup \
481
+ foreach_cset root ntrunk ncsets uuid
482
+}
478483
479484
# -----------------------------------------------------------------------------
480485
# Ready
481486
482
-package provide cvs 1.0
487
+package provide vc::cvs::ws 1.0
483488
return
484489
--- tools/lib/cvs.tcl
+++ tools/lib/cvs.tcl
@@ -8,35 +8,35 @@
8 package require fileutil ; # Tcllib (traverse directory hierarchy)
9 package require rcsparser ; # Handling the RCS archive files.
10 package require vc::tools::log ; # User feedback
11 package require struct::tree
12
13 namespace eval ::cvs {
14 vc::tools::log::system cvs
15 namespace import ::vc::tools::log::write
16 }
17
18 # -----------------------------------------------------------------------------
19 # API
20
21 # Define repository directory.
22
23 proc ::cvs::at {path} {
24 variable base [file normalize $path]
25 write 0 cvs "Base: $base"
26 return
27 }
28
29 namespace eval ::cvs {
30 # Toplevel repository directory
31 variable base {}
32 }
33
34 # Scan repository, collect archives, parse them, and collect revision
35 # information (file, revision -> date, author, commit message)
36
37 proc ::cvs::scan {} {
38 variable base
39 variable npaths
40 variable rpaths
41 variable timeline
42
@@ -115,11 +115,11 @@
115
116 write 0 cvs "Processed $n [expr {($n == 1) ? "file" : "files"}]"
117 return
118 }
119
120 namespace eval ::cvs {
121 # Path mappings. npaths: rcs file -> user file
122 # rpaths: user file -> rcs file, dead-status
123
124 variable npaths ; array set npaths {}
125 variable rpaths ; array set rpaths {}
@@ -129,11 +129,11 @@
129 variable timeline ; array set timeline {}
130 }
131
132 # Group single changes into changesets
133
134 proc ::cvs::csets {} {
135 variable timeline
136 variable csets
137 variable ncs
138 variable cmap
139
@@ -171,11 +171,11 @@
171 write 0 cvs "Found $n [expr {($n == 1) ? "changeset" : "changesets"}]"
172 return
173 }
174
175
176 namespace eval ::cvs {
177 # Changeset data:
178 # ncs: Counter-based id generation
179 # csets: id -> (user commit start end depth (file -> (op rev)))
180
181 variable ncs ; set ncs 0 ; # Counter for changesets
@@ -184,18 +184,18 @@
184
185 # Building the revision tree from the changesets.
186 # Limitation: Currently only trunk csets is handled.
187 # Limitation: Dead files are not removed, i.e. no 'R' actions right now.
188
189 proc ::cvs::rtree {} {
190 variable csets
191 variable rtree {}
192 variable ntrunk 0
193
194 write 0 cvs "Extracting the trunk"
195
196 set rtree [struct::tree ::cvs::RT]
197 $rtree rename root 0 ; # Root is first changeset, always.
198 set trunk 0
199 set ntrunk 1 ; # Root is on the trunk.
200 set b 0 ; # No branch csets found yet.
201
@@ -220,19 +220,19 @@
220 write 0 cvs "Processed $ntrunk trunk [expr {($ntrunk == 1) ? "changeset" : "changesets"}]"
221 write 0 cvs "Ignored $b branch [expr {($b == 1) ? "changeset" : "changesets"}]"
222 return
223 }
224
225 namespace eval ::cvs {
226 # Tree holding trunk and branch information (struct::tree).
227 # Node names are cset id's.
228
229 variable rtree {}
230 variable ntrunk 0
231 }
232
233 proc ::cvs::workspace {} {
234 variable cwd [pwd]
235 variable workspace [fileutil::tempfile importF_cvs_ws_]
236 file delete $workspace
237 file mkdir $workspace
238
@@ -240,25 +240,25 @@
240
241 cd $workspace ; # Checkouts go here.
242 return $workspace
243 }
244
245 proc ::cvs::wsignore {path} {
246 # Ignore CVS admin files.
247 if {[string match */CVS/* $path]} {return 1}
248 return 0
249 }
250
251 proc ::cvs::wsclear {} {
252 variable cwd
253 variable workspace
254 cd $cwd
255 file delete -force $workspace
256 return
257 }
258
259 proc ::cvs::wssetup {c} {
260 variable csets
261 variable cvs
262 variable base
263
264 # pwd = workspace
@@ -321,21 +321,21 @@
321
322 # Provide metadata about the changeset the backend may wish to have
323 return [list $u $cm $s]
324 }
325
326 namespace eval ::cvs {
327 # CVS application
328 # Workspace where checkouts happen
329 # Current working directory to go back to after the import.
330
331 variable cvs [auto_execok cvs]
332 variable workspace {}
333 variable cwd {}
334 }
335
336 proc ::cvs::foreach_cset {cv node script} {
337 upvar 1 $cv c
338 variable rtree
339
340 set c $node
341 while {1} {
@@ -362,34 +362,34 @@
362 set c [lindex [$rtree children $c] 0]
363 }
364 return
365 }
366
367 proc ::cvs::root {} {
368 return 0
369 }
370
371 proc ::cvs::ntrunk {} {
372 variable ntrunk
373 return $ntrunk
374 }
375
376 proc ::cvs::ncsets {} {
377 variable ncs
378 return $ncs
379 }
380
381 proc ::cvs::uuid {c uuid} {
382 variable rtree
383 $rtree set $c uuid $uuid
384 return
385 }
386
387 # -----------------------------------------------------------------------------
388 # Internal helper commands: Changeset inspection and construction.
389
390 proc ::cvs::CSClear {} {
391 upvar 1 start start end end cm cm user user files files lastd lastd
392
393 set start {}
394 set end {}
395 set cm {}
@@ -398,16 +398,16 @@
398 array unset files *
399 array set files {}
400 return
401 }
402
403 proc ::cvs::CSNone {} {
404 upvar 1 start start
405 return [expr {$start eq ""}]
406 }
407
408 proc ::cvs::CSNew {entry} {
409 upvar 1 start start end end cm cm user user files files lastd lastd reason reason
410
411 #puts -nonewline stdout . ; flush stdout
412
413 foreach {op ts a rev f ecm} $entry break
@@ -427,11 +427,11 @@
427
428 # Everything is good, still the same cset
429 return 0
430 }
431
432 proc ::cvs::CSSave {} {
433 variable cmap
434 variable csets
435 variable ncs
436 upvar 1 start start end end cm cm user user files files lastd lastd
437
@@ -447,11 +447,11 @@
447
448 incr ncs
449 return
450 }
451
452 proc ::cvs::CSAdd {entry} {
453 upvar 1 start start end end cm cm user user files files lastd lastd
454
455 foreach {op ts a rev f ecm} $entry break
456
457 if {$start eq ""} {set start $ts}
@@ -461,11 +461,11 @@
461 set files($f) [list $op $rev]
462 set lastd [llength [split $rev .]]
463 return
464 }
465
466 proc ::cvs::CSDump {c} {
467 variable csets
468 foreach {u cm s e rd f} $csets($c) break
469
470 puts "$u $s"; regsub -all {.} $u { } b
471 puts "$b $e"
@@ -473,11 +473,16 @@
473 foreach {o r} $or break
474 puts "$b $o $f $r"
475 }
476 return
477 }
 
 
 
 
 
478
479 # -----------------------------------------------------------------------------
480 # Ready
481
482 package provide cvs 1.0
483 return
484
--- tools/lib/cvs.tcl
+++ tools/lib/cvs.tcl
@@ -8,35 +8,35 @@
8 package require fileutil ; # Tcllib (traverse directory hierarchy)
9 package require rcsparser ; # Handling the RCS archive files.
10 package require vc::tools::log ; # User feedback
11 package require struct::tree
12
13 namespace eval ::vc::cvs::ws {
14 vc::tools::log::system cvs
15 namespace import ::vc::tools::log::write
16 }
17
18 # -----------------------------------------------------------------------------
19 # API
20
21 # Define repository directory.
22
23 proc ::vc::cvs::ws::at {path} {
24 variable base [file normalize $path]
25 write 0 cvs "Base: $base"
26 return
27 }
28
29 namespace eval ::vc::cvs::ws {
30 # Toplevel repository directory
31 variable base {}
32 }
33
34 # Scan repository, collect archives, parse them, and collect revision
35 # information (file, revision -> date, author, commit message)
36
37 proc ::vc::cvs::ws::scan {} {
38 variable base
39 variable npaths
40 variable rpaths
41 variable timeline
42
@@ -115,11 +115,11 @@
115
116 write 0 cvs "Processed $n [expr {($n == 1) ? "file" : "files"}]"
117 return
118 }
119
120 namespace eval ::vc::cvs::ws {
121 # Path mappings. npaths: rcs file -> user file
122 # rpaths: user file -> rcs file, dead-status
123
124 variable npaths ; array set npaths {}
125 variable rpaths ; array set rpaths {}
@@ -129,11 +129,11 @@
129 variable timeline ; array set timeline {}
130 }
131
132 # Group single changes into changesets
133
134 proc ::vc::cvs::ws::csets {} {
135 variable timeline
136 variable csets
137 variable ncs
138 variable cmap
139
@@ -171,11 +171,11 @@
171 write 0 cvs "Found $n [expr {($n == 1) ? "changeset" : "changesets"}]"
172 return
173 }
174
175
176 namespace eval ::vc::cvs::ws {
177 # Changeset data:
178 # ncs: Counter-based id generation
179 # csets: id -> (user commit start end depth (file -> (op rev)))
180
181 variable ncs ; set ncs 0 ; # Counter for changesets
@@ -184,18 +184,18 @@
184
185 # Building the revision tree from the changesets.
186 # Limitation: Currently only trunk csets is handled.
187 # Limitation: Dead files are not removed, i.e. no 'R' actions right now.
188
189 proc ::vc::cvs::ws::rtree {} {
190 variable csets
191 variable rtree {}
192 variable ntrunk 0
193
194 write 0 cvs "Extracting the trunk"
195
196 set rtree [struct::tree ::vc::cvs::ws::RT]
197 $rtree rename root 0 ; # Root is first changeset, always.
198 set trunk 0
199 set ntrunk 1 ; # Root is on the trunk.
200 set b 0 ; # No branch csets found yet.
201
@@ -220,19 +220,19 @@
220 write 0 cvs "Processed $ntrunk trunk [expr {($ntrunk == 1) ? "changeset" : "changesets"}]"
221 write 0 cvs "Ignored $b branch [expr {($b == 1) ? "changeset" : "changesets"}]"
222 return
223 }
224
225 namespace eval ::vc::cvs::ws {
226 # Tree holding trunk and branch information (struct::tree).
227 # Node names are cset id's.
228
229 variable rtree {}
230 variable ntrunk 0
231 }
232
233 proc ::vc::cvs::ws::workspace {} {
234 variable cwd [pwd]
235 variable workspace [fileutil::tempfile importF_cvs_ws_]
236 file delete $workspace
237 file mkdir $workspace
238
@@ -240,25 +240,25 @@
240
241 cd $workspace ; # Checkouts go here.
242 return $workspace
243 }
244
245 proc ::vc::cvs::ws::wsignore {path} {
246 # Ignore CVS admin files.
247 if {[string match */CVS/* $path]} {return 1}
248 return 0
249 }
250
251 proc ::vc::cvs::ws::wsclear {} {
252 variable cwd
253 variable workspace
254 cd $cwd
255 file delete -force $workspace
256 return
257 }
258
259 proc ::vc::cvs::ws::wssetup {c} {
260 variable csets
261 variable cvs
262 variable base
263
264 # pwd = workspace
@@ -321,21 +321,21 @@
321
322 # Provide metadata about the changeset the backend may wish to have
323 return [list $u $cm $s]
324 }
325
326 namespace eval ::vc::cvs::ws {
327 # CVS application
328 # Workspace where checkouts happen
329 # Current working directory to go back to after the import.
330
331 variable cvs [auto_execok cvs]
332 variable workspace {}
333 variable cwd {}
334 }
335
336 proc ::vc::cvs::ws::foreach_cset {cv node script} {
337 upvar 1 $cv c
338 variable rtree
339
340 set c $node
341 while {1} {
@@ -362,34 +362,34 @@
362 set c [lindex [$rtree children $c] 0]
363 }
364 return
365 }
366
367 proc ::vc::cvs::ws::root {} {
368 return 0
369 }
370
371 proc ::vc::cvs::ws::ntrunk {} {
372 variable ntrunk
373 return $ntrunk
374 }
375
376 proc ::vc::cvs::ws::ncsets {} {
377 variable ncs
378 return $ncs
379 }
380
381 proc ::vc::cvs::ws::uuid {c uuid} {
382 variable rtree
383 $rtree set $c uuid $uuid
384 return
385 }
386
387 # -----------------------------------------------------------------------------
388 # Internal helper commands: Changeset inspection and construction.
389
390 proc ::vc::cvs::ws::CSClear {} {
391 upvar 1 start start end end cm cm user user files files lastd lastd
392
393 set start {}
394 set end {}
395 set cm {}
@@ -398,16 +398,16 @@
398 array unset files *
399 array set files {}
400 return
401 }
402
403 proc ::vc::cvs::ws::CSNone {} {
404 upvar 1 start start
405 return [expr {$start eq ""}]
406 }
407
408 proc ::vc::cvs::ws::CSNew {entry} {
409 upvar 1 start start end end cm cm user user files files lastd lastd reason reason
410
411 #puts -nonewline stdout . ; flush stdout
412
413 foreach {op ts a rev f ecm} $entry break
@@ -427,11 +427,11 @@
427
428 # Everything is good, still the same cset
429 return 0
430 }
431
432 proc ::vc::cvs::ws::CSSave {} {
433 variable cmap
434 variable csets
435 variable ncs
436 upvar 1 start start end end cm cm user user files files lastd lastd
437
@@ -447,11 +447,11 @@
447
448 incr ncs
449 return
450 }
451
452 proc ::vc::cvs::ws::CSAdd {entry} {
453 upvar 1 start start end end cm cm user user files files lastd lastd
454
455 foreach {op ts a rev f ecm} $entry break
456
457 if {$start eq ""} {set start $ts}
@@ -461,11 +461,11 @@
461 set files($f) [list $op $rev]
462 set lastd [llength [split $rev .]]
463 return
464 }
465
466 proc ::vc::cvs::ws::CSDump {c} {
467 variable csets
468 foreach {u cm s e rd f} $csets($c) break
469
470 puts "$u $s"; regsub -all {.} $u { } b
471 puts "$b $e"
@@ -473,11 +473,16 @@
473 foreach {o r} $or break
474 puts "$b $o $f $r"
475 }
476 return
477 }
478
479 namespace eval ::vc::cvs::ws {
480 namespace export at scan csets rtree workspace wsignore wsclear wssetup \
481 foreach_cset root ntrunk ncsets uuid
482 }
483
484 # -----------------------------------------------------------------------------
485 # Ready
486
487 package provide vc::cvs::ws 1.0
488 return
489
--- tools/lib/fossil.tcl
+++ tools/lib/fossil.tcl
@@ -151,10 +151,14 @@
151151
# Internal helper commands
152152
153153
proc ::vc::fossil::ws::IGNORE {ignore path} {
154154
return [uplevel #0 [linsert $ignore end $path]]
155155
}
156
+
157
+namespace eval ::vc::fossil::ws {
158
+ namespace export new destination debugcommit commit
159
+}
156160
157161
# -----------------------------------------------------------------------------
158162
# Ready
159163
160164
package provide vc::fossil::ws 1.0
161165
--- tools/lib/fossil.tcl
+++ tools/lib/fossil.tcl
@@ -151,10 +151,14 @@
151 # Internal helper commands
152
153 proc ::vc::fossil::ws::IGNORE {ignore path} {
154 return [uplevel #0 [linsert $ignore end $path]]
155 }
 
 
 
 
156
157 # -----------------------------------------------------------------------------
158 # Ready
159
160 package provide vc::fossil::ws 1.0
161
--- tools/lib/fossil.tcl
+++ tools/lib/fossil.tcl
@@ -151,10 +151,14 @@
151 # Internal helper commands
152
153 proc ::vc::fossil::ws::IGNORE {ignore path} {
154 return [uplevel #0 [linsert $ignore end $path]]
155 }
156
157 namespace eval ::vc::fossil::ws {
158 namespace export new destination debugcommit commit
159 }
160
161 # -----------------------------------------------------------------------------
162 # Ready
163
164 package provide vc::fossil::ws 1.0
165
--- tools/lib/importcvs.tcl
+++ tools/lib/importcvs.tcl
@@ -3,17 +3,19 @@
33
44
# -----------------------------------------------------------------------------
55
# Requirements
66
77
package require Tcl 8.4
8
-package require cvs ; # Frontend, reading from source repository
8
+package require vc::cvs::ws ; # Frontend, reading from source repository
99
package require vc::fossil::ws ; # Backend, writing to destination repository.
1010
package require vc::tools::log ; # User feedback
1111
1212
namespace eval ::vc::fossil::import::cvs {
1313
vc::tools::log::system import
1414
namespace import ::vc::tools::log::write
15
+ namespace eval cvs { namespace import ::vc::cvs::ws::* }
16
+ namespace eval fossil { namespace import ::vc::fossil::ws::* }
1517
}
1618
1719
# -----------------------------------------------------------------------------
1820
# API
1921
@@ -39,11 +41,11 @@
3941
switch -exact -- $key {
4042
-debugcommit {
4143
if {![string is boolean -strict $value]} {
4244
return -code error "Expected boolean, got \"$value\""
4345
}
44
- vc::fossil::ws::debugcommit $value
46
+ fossil::debugcommit $value
4547
}
4648
-nosign {
4749
if {![string is boolean -strict $value]} {
4850
return -code error "Expected boolean, got \"$value\""
4951
}
@@ -64,24 +66,23 @@
6466
# fossil repository at 'dst'.
6567
6668
proc ::vc::fossil::import::cvs::run {src dst} {
6769
variable stopat
6870
69
- cvs::at $src ; # Define location of CVS repository
70
-
71
- cvs::scan ; # Gather revision data from the archives
72
- cvs::csets ; # Group changes into sets
73
- cvs::rtree ; # Build revision tree (trunk only right now).
71
+ cvs::at $src ; # Define location of CVS repository
72
+ cvs::scan ; # Gather revision data from the archives
73
+ cvs::csets ; # Group changes into sets
74
+ cvs::rtree ; # Build revision tree (trunk only right now).
7475
7576
set tot 0.0
7677
set nto 0
7778
7879
write 0 import {Begin conversion}
7980
write 0 import {Setting up workspaces}
8081
81
- cvs::workspace ; # cd's to workspace
82
- vc::fossil::ws::new ; # Uses cwd as workspace to connect to.
82
+ cvs::workspace ; # cd's to workspace
83
+ fossil::new ; # Uses cwd as workspace to connect to.
8384
8485
set ntrunk [cvs::ntrunk] ; set ntfmt %[string length $ntrunk]s
8586
set nmax [cvs::ncsets] ; set nmfmt %[string length $nmax]s
8687
8788
cvs::foreach_cset cset [cvs::root] {
@@ -94,11 +95,11 @@
9495
write 0 import "Within [format %.2f $tot] seconds (avg [format %.2f [expr {$tot/$nto}]] seconds/changeset)"
9596
9697
if {$stopat == $cset} return
9798
9899
cvs::wsclear
99
- vc::fossil::ws::destination $dst
100
+ fossil::destination $dst
100101
write 0 import Ok.
101102
return
102103
}
103104
104105
# -----------------------------------------------------------------------------
@@ -127,20 +128,20 @@
127128
proc ::vc::fossil::import::cvs::OneChangeSet {cset} {
128129
variable nosign
129130
variable stopat
130131
131132
if {$stopat == $cset} {
132
- vc::fossil::ws::commit 1 cvs2fossil $nosign \
133
- [cvs::wssetup $cset] ::cvs::wsignore
133
+ fossil::commit 1 cvs2fossil $nosign \
134
+ [cvs::wssetup $cset] ::vc::cvs::ws::wsignore
134135
write 0 import Stopped.
135136
return -code break
136137
}
137138
138139
set usec [lindex [time {
139140
foreach {uuid ad rm ch} \
140
- [vc::fossil::ws::commit 0 cvs2fossil $nosign \
141
- [cvs::wssetup $cset] ::cvs::wsignore] \
141
+ [fossil::commit 0 cvs2fossil $nosign \
142
+ [cvs::wssetup $cset] ::vc::cvs::ws::wsignore] \
142143
break
143144
} 1] 0]
144145
cvs::uuid $cset $uuid
145146
146147
set sec [expr {$usec/1e6}]
147148
--- tools/lib/importcvs.tcl
+++ tools/lib/importcvs.tcl
@@ -3,17 +3,19 @@
3
4 # -----------------------------------------------------------------------------
5 # Requirements
6
7 package require Tcl 8.4
8 package require cvs ; # Frontend, reading from source repository
9 package require vc::fossil::ws ; # Backend, writing to destination repository.
10 package require vc::tools::log ; # User feedback
11
12 namespace eval ::vc::fossil::import::cvs {
13 vc::tools::log::system import
14 namespace import ::vc::tools::log::write
 
 
15 }
16
17 # -----------------------------------------------------------------------------
18 # API
19
@@ -39,11 +41,11 @@
39 switch -exact -- $key {
40 -debugcommit {
41 if {![string is boolean -strict $value]} {
42 return -code error "Expected boolean, got \"$value\""
43 }
44 vc::fossil::ws::debugcommit $value
45 }
46 -nosign {
47 if {![string is boolean -strict $value]} {
48 return -code error "Expected boolean, got \"$value\""
49 }
@@ -64,24 +66,23 @@
64 # fossil repository at 'dst'.
65
66 proc ::vc::fossil::import::cvs::run {src dst} {
67 variable stopat
68
69 cvs::at $src ; # Define location of CVS repository
70
71 cvs::scan ; # Gather revision data from the archives
72 cvs::csets ; # Group changes into sets
73 cvs::rtree ; # Build revision tree (trunk only right now).
74
75 set tot 0.0
76 set nto 0
77
78 write 0 import {Begin conversion}
79 write 0 import {Setting up workspaces}
80
81 cvs::workspace ; # cd's to workspace
82 vc::fossil::ws::new ; # Uses cwd as workspace to connect to.
83
84 set ntrunk [cvs::ntrunk] ; set ntfmt %[string length $ntrunk]s
85 set nmax [cvs::ncsets] ; set nmfmt %[string length $nmax]s
86
87 cvs::foreach_cset cset [cvs::root] {
@@ -94,11 +95,11 @@
94 write 0 import "Within [format %.2f $tot] seconds (avg [format %.2f [expr {$tot/$nto}]] seconds/changeset)"
95
96 if {$stopat == $cset} return
97
98 cvs::wsclear
99 vc::fossil::ws::destination $dst
100 write 0 import Ok.
101 return
102 }
103
104 # -----------------------------------------------------------------------------
@@ -127,20 +128,20 @@
127 proc ::vc::fossil::import::cvs::OneChangeSet {cset} {
128 variable nosign
129 variable stopat
130
131 if {$stopat == $cset} {
132 vc::fossil::ws::commit 1 cvs2fossil $nosign \
133 [cvs::wssetup $cset] ::cvs::wsignore
134 write 0 import Stopped.
135 return -code break
136 }
137
138 set usec [lindex [time {
139 foreach {uuid ad rm ch} \
140 [vc::fossil::ws::commit 0 cvs2fossil $nosign \
141 [cvs::wssetup $cset] ::cvs::wsignore] \
142 break
143 } 1] 0]
144 cvs::uuid $cset $uuid
145
146 set sec [expr {$usec/1e6}]
147
--- tools/lib/importcvs.tcl
+++ tools/lib/importcvs.tcl
@@ -3,17 +3,19 @@
3
4 # -----------------------------------------------------------------------------
5 # Requirements
6
7 package require Tcl 8.4
8 package require vc::cvs::ws ; # Frontend, reading from source repository
9 package require vc::fossil::ws ; # Backend, writing to destination repository.
10 package require vc::tools::log ; # User feedback
11
12 namespace eval ::vc::fossil::import::cvs {
13 vc::tools::log::system import
14 namespace import ::vc::tools::log::write
15 namespace eval cvs { namespace import ::vc::cvs::ws::* }
16 namespace eval fossil { namespace import ::vc::fossil::ws::* }
17 }
18
19 # -----------------------------------------------------------------------------
20 # API
21
@@ -39,11 +41,11 @@
41 switch -exact -- $key {
42 -debugcommit {
43 if {![string is boolean -strict $value]} {
44 return -code error "Expected boolean, got \"$value\""
45 }
46 fossil::debugcommit $value
47 }
48 -nosign {
49 if {![string is boolean -strict $value]} {
50 return -code error "Expected boolean, got \"$value\""
51 }
@@ -64,24 +66,23 @@
66 # fossil repository at 'dst'.
67
68 proc ::vc::fossil::import::cvs::run {src dst} {
69 variable stopat
70
71 cvs::at $src ; # Define location of CVS repository
72 cvs::scan ; # Gather revision data from the archives
73 cvs::csets ; # Group changes into sets
74 cvs::rtree ; # Build revision tree (trunk only right now).
 
75
76 set tot 0.0
77 set nto 0
78
79 write 0 import {Begin conversion}
80 write 0 import {Setting up workspaces}
81
82 cvs::workspace ; # cd's to workspace
83 fossil::new ; # Uses cwd as workspace to connect to.
84
85 set ntrunk [cvs::ntrunk] ; set ntfmt %[string length $ntrunk]s
86 set nmax [cvs::ncsets] ; set nmfmt %[string length $nmax]s
87
88 cvs::foreach_cset cset [cvs::root] {
@@ -94,11 +95,11 @@
95 write 0 import "Within [format %.2f $tot] seconds (avg [format %.2f [expr {$tot/$nto}]] seconds/changeset)"
96
97 if {$stopat == $cset} return
98
99 cvs::wsclear
100 fossil::destination $dst
101 write 0 import Ok.
102 return
103 }
104
105 # -----------------------------------------------------------------------------
@@ -127,20 +128,20 @@
128 proc ::vc::fossil::import::cvs::OneChangeSet {cset} {
129 variable nosign
130 variable stopat
131
132 if {$stopat == $cset} {
133 fossil::commit 1 cvs2fossil $nosign \
134 [cvs::wssetup $cset] ::vc::cvs::ws::wsignore
135 write 0 import Stopped.
136 return -code break
137 }
138
139 set usec [lindex [time {
140 foreach {uuid ad rm ch} \
141 [fossil::commit 0 cvs2fossil $nosign \
142 [cvs::wssetup $cset] ::vc::cvs::ws::wsignore] \
143 break
144 } 1] 0]
145 cvs::uuid $cset $uuid
146
147 set sec [expr {$usec/1e6}]
148
--- tools/lib/pkgIndex.tcl
+++ tools/lib/pkgIndex.tcl
@@ -1,6 +1,6 @@
11
if {![package vsatisfies [package require Tcl] 8.4]} return
22
package ifneeded rcsparser 1.0 [list source [file join $dir rcsparser.tcl]]
3
-package ifneeded cvs 1.0 [list source [file join $dir cvs.tcl]]
3
+package ifneeded vc::cvs::ws 1.0 [list source [file join $dir cvs.tcl]]
44
package ifneeded vc::fossil::ws 1.0 [list source [file join $dir fossil.tcl]]
55
package ifneeded vc::fossil::import::cvs 1.0 [list source [file join $dir importcvs.tcl]]
66
package ifneeded vc::tools::log 1.0 [list source [file join $dir log.tcl]]
77
--- tools/lib/pkgIndex.tcl
+++ tools/lib/pkgIndex.tcl
@@ -1,6 +1,6 @@
1 if {![package vsatisfies [package require Tcl] 8.4]} return
2 package ifneeded rcsparser 1.0 [list source [file join $dir rcsparser.tcl]]
3 package ifneeded cvs 1.0 [list source [file join $dir cvs.tcl]]
4 package ifneeded vc::fossil::ws 1.0 [list source [file join $dir fossil.tcl]]
5 package ifneeded vc::fossil::import::cvs 1.0 [list source [file join $dir importcvs.tcl]]
6 package ifneeded vc::tools::log 1.0 [list source [file join $dir log.tcl]]
7
--- tools/lib/pkgIndex.tcl
+++ tools/lib/pkgIndex.tcl
@@ -1,6 +1,6 @@
1 if {![package vsatisfies [package require Tcl] 8.4]} return
2 package ifneeded rcsparser 1.0 [list source [file join $dir rcsparser.tcl]]
3 package ifneeded vc::cvs::ws 1.0 [list source [file join $dir cvs.tcl]]
4 package ifneeded vc::fossil::ws 1.0 [list source [file join $dir fossil.tcl]]
5 package ifneeded vc::fossil::import::cvs 1.0 [list source [file join $dir importcvs.tcl]]
6 package ifneeded vc::tools::log 1.0 [list source [file join $dir log.tcl]]
7

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button