Fossil SCM

Encapsulated access to the fossil and cvs applications in their own packages.

aku 2007-09-13 06:59 trunk
Commit cdf5e6d8b71fddb1a9f62451021c7f999dc686db
--- tools/lib/cvs.tcl
+++ tools/lib/cvs.tcl
@@ -6,16 +6,18 @@
66
77
package require Tcl 8.4
88
package require fileutil ; # Tcllib (traverse directory hierarchy)
99
package require vc::rcs::parser ; # Handling the RCS archive files.
1010
package require vc::tools::log ; # User feedback
11
+package require vc::cvs::cmd ; # Access to cvs application.
1112
package require struct::tree
1213
1314
namespace eval ::vc::cvs::ws {
1415
vc::tools::log::system cvs
1516
namespace import ::vc::tools::log::write
1617
namespace import ::vc::rcs::parser::process
18
+ namespace import ::vc::cvs::cmd::dova
1719
}
1820
1921
# -----------------------------------------------------------------------------
2022
# API
2123
@@ -257,11 +259,10 @@
257259
return
258260
}
259261
260262
proc ::vc::cvs::ws::wssetup {c} {
261263
variable csets
262
- variable cvs
263264
variable base
264265
265266
# pwd = workspace
266267
267268
foreach {u cm s e rd fs} $csets($c) break
@@ -299,11 +300,11 @@
299300
} else {
300301
# Added or modified, put the requested version of the file
301302
# into the workspace.
302303
303304
if {[catch {
304
- exec $cvs -d $base co -r $r $f
305
+ dova -d $base co -r $r $f
305306
} msg]} {
306307
if {[string match {*invalid change text*} $msg]} {
307308
# The archive of the file is corrupted and the
308309
# chosen version not accessible due to that. We
309310
# report the problem, but otherwise ignore it. As
@@ -323,15 +324,13 @@
323324
# Provide metadata about the changeset the backend may wish to have
324325
return [list $u $cm $s]
325326
}
326327
327328
namespace eval ::vc::cvs::ws {
328
- # CVS application
329329
# Workspace where checkouts happen
330330
# Current working directory to go back to after the import.
331331
332
- variable cvs [auto_execok cvs]
333332
variable workspace {}
334333
variable cwd {}
335334
}
336335
337336
proc ::vc::cvs::ws::foreach_cset {cv node script} {
338337
339338
ADDED tools/lib/cvs_cmd.tcl
--- tools/lib/cvs.tcl
+++ tools/lib/cvs.tcl
@@ -6,16 +6,18 @@
6
7 package require Tcl 8.4
8 package require fileutil ; # Tcllib (traverse directory hierarchy)
9 package require vc::rcs::parser ; # 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 namespace import ::vc::rcs::parser::process
 
17 }
18
19 # -----------------------------------------------------------------------------
20 # API
21
@@ -257,11 +259,10 @@
257 return
258 }
259
260 proc ::vc::cvs::ws::wssetup {c} {
261 variable csets
262 variable cvs
263 variable base
264
265 # pwd = workspace
266
267 foreach {u cm s e rd fs} $csets($c) break
@@ -299,11 +300,11 @@
299 } else {
300 # Added or modified, put the requested version of the file
301 # into the workspace.
302
303 if {[catch {
304 exec $cvs -d $base co -r $r $f
305 } msg]} {
306 if {[string match {*invalid change text*} $msg]} {
307 # The archive of the file is corrupted and the
308 # chosen version not accessible due to that. We
309 # report the problem, but otherwise ignore it. As
@@ -323,15 +324,13 @@
323 # Provide metadata about the changeset the backend may wish to have
324 return [list $u $cm $s]
325 }
326
327 namespace eval ::vc::cvs::ws {
328 # CVS application
329 # Workspace where checkouts happen
330 # Current working directory to go back to after the import.
331
332 variable cvs [auto_execok cvs]
333 variable workspace {}
334 variable cwd {}
335 }
336
337 proc ::vc::cvs::ws::foreach_cset {cv node script} {
338
339 DDED tools/lib/cvs_cmd.tcl
--- tools/lib/cvs.tcl
+++ tools/lib/cvs.tcl
@@ -6,16 +6,18 @@
6
7 package require Tcl 8.4
8 package require fileutil ; # Tcllib (traverse directory hierarchy)
9 package require vc::rcs::parser ; # Handling the RCS archive files.
10 package require vc::tools::log ; # User feedback
11 package require vc::cvs::cmd ; # Access to cvs application.
12 package require struct::tree
13
14 namespace eval ::vc::cvs::ws {
15 vc::tools::log::system cvs
16 namespace import ::vc::tools::log::write
17 namespace import ::vc::rcs::parser::process
18 namespace import ::vc::cvs::cmd::dova
19 }
20
21 # -----------------------------------------------------------------------------
22 # API
23
@@ -257,11 +259,10 @@
259 return
260 }
261
262 proc ::vc::cvs::ws::wssetup {c} {
263 variable csets
 
264 variable base
265
266 # pwd = workspace
267
268 foreach {u cm s e rd fs} $csets($c) break
@@ -299,11 +300,11 @@
300 } else {
301 # Added or modified, put the requested version of the file
302 # into the workspace.
303
304 if {[catch {
305 dova -d $base co -r $r $f
306 } msg]} {
307 if {[string match {*invalid change text*} $msg]} {
308 # The archive of the file is corrupted and the
309 # chosen version not accessible due to that. We
310 # report the problem, but otherwise ignore it. As
@@ -323,15 +324,13 @@
324 # Provide metadata about the changeset the backend may wish to have
325 return [list $u $cm $s]
326 }
327
328 namespace eval ::vc::cvs::ws {
 
329 # Workspace where checkouts happen
330 # Current working directory to go back to after the import.
331
 
332 variable workspace {}
333 variable cwd {}
334 }
335
336 proc ::vc::cvs::ws::foreach_cset {cv node script} {
337
338 DDED tools/lib/cvs_cmd.tcl
--- a/tools/lib/cvs_cmd.tcl
+++ b/tools/lib/cvs_cmd.tcl
@@ -0,0 +1,49 @@
1
+# -----------------------------------------------------------------------------
2
+# Access to the external cvs command.
3
+
4
+# -----------------------------------------------------------------------------
5
+# Requirements
6
+
7
+package require Tcl 8.4
8
+namespace eval ::vc::cvs::cmd {}
9
+
10
+# -----------------------------------------------------------------------------
11
+# API
12
+
13
+# vc::cvs::cmd::dova word... - Run a cvs command specified as var args.
14
+# vc::cvs::cmd::do words - Run a cvs command specified as a list.
15
+
16
+# -----------------------------------------------------------------------------
17
+# API Implementation
18
+
19
+proc ::vc::cvs::cmd::dova {args} {do $args}
20
+
21
+proc ::vc::cvs::cmd::do {words} {
22
+ variable cmd
23
+ if {![llength $words]} {
24
+ return -code error "Empty cvs command"
25
+ }
26
+ # 8.5: exec $cmd {*}$words
27
+ return [eval [linsert $words 0 exec $cmd]]
28
+}
29
+
30
+# -----------------------------------------------------------------------------
31
+# Internals.
32
+
33
+namespace eval ::vc::cvs::cmd {
34
+ # Locate external cvs application.
35
+ variable cmd [auto_execok cvs]
36
+
37
+ # Bail out if not found.
38
+ if {![llength $::vc::cvs::cmd::cmd]} {
39
+ return -code error "Cvs application not found."
40
+ }
41
+
42
+ namespace export do dova
43
+}
44
+
45
+# -----------------------------------------------------------------------------
46
+# Ready
47
+
48
+package provide vc::cvs::cmd 1.0
49
+return
--- a/tools/lib/cvs_cmd.tcl
+++ b/tools/lib/cvs_cmd.tcl
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/tools/lib/cvs_cmd.tcl
+++ b/tools/lib/cvs_cmd.tcl
@@ -0,0 +1,49 @@
1 # -----------------------------------------------------------------------------
2 # Access to the external cvs command.
3
4 # -----------------------------------------------------------------------------
5 # Requirements
6
7 package require Tcl 8.4
8 namespace eval ::vc::cvs::cmd {}
9
10 # -----------------------------------------------------------------------------
11 # API
12
13 # vc::cvs::cmd::dova word... - Run a cvs command specified as var args.
14 # vc::cvs::cmd::do words - Run a cvs command specified as a list.
15
16 # -----------------------------------------------------------------------------
17 # API Implementation
18
19 proc ::vc::cvs::cmd::dova {args} {do $args}
20
21 proc ::vc::cvs::cmd::do {words} {
22 variable cmd
23 if {![llength $words]} {
24 return -code error "Empty cvs command"
25 }
26 # 8.5: exec $cmd {*}$words
27 return [eval [linsert $words 0 exec $cmd]]
28 }
29
30 # -----------------------------------------------------------------------------
31 # Internals.
32
33 namespace eval ::vc::cvs::cmd {
34 # Locate external cvs application.
35 variable cmd [auto_execok cvs]
36
37 # Bail out if not found.
38 if {![llength $::vc::cvs::cmd::cmd]} {
39 return -code error "Cvs application not found."
40 }
41
42 namespace export do dova
43 }
44
45 # -----------------------------------------------------------------------------
46 # Ready
47
48 package provide vc::cvs::cmd 1.0
49 return
--- tools/lib/fossil.tcl
+++ tools/lib/fossil.tcl
@@ -3,29 +3,31 @@
33
44
# -----------------------------------------------------------------------------
55
# Requirements
66
77
package require Tcl 8.4
8
-package require vc::tools::log ; # User feedback
8
+package require vc::tools::log ; # User feedback
9
+package require vc::fossil::cmd ; # Access to fossil application.
910
1011
namespace eval ::vc::fossil::ws {
1112
vc::tools::log::system fossil
1213
namespace import ::vc::tools::log::write
14
+ namespace import ::vc::fossil::cmd::do
15
+ namespace import ::vc::fossil::cmd::dova
1316
}
1417
1518
# -----------------------------------------------------------------------------
1619
# API
1720
1821
# Define repository file, and connect to workspace in CWD.
1922
2023
proc ::vc::fossil::ws::new {} {
2124
variable fr [file normalize [fileutil::tempfile import2_fsl_rp_]]
22
- variable fossil
2325
2426
# pwd = workspace
25
- exec $fossil new $fr ; # create and
26
- exec $fossil open $fr ; # connect
27
+ dova new $fr ; # create and
28
+ dova open $fr ; # connect
2729
2830
write 0 fossil "Repository: $fr"
2931
3032
return $fr
3133
}
@@ -40,13 +42,10 @@
4042
4143
namespace eval ::vc::fossil::ws {
4244
# Repository file
4345
variable fr {}
4446
45
- # Fossil application
46
- variable fossil [auto_execok fossil]
47
-
4847
# Debug the commit command (write a Tcl script containing the
4948
# exact command used). And the file the data goes to.
5049
variable debugcommit 0
5150
variable dcfile {}
5251
}
@@ -58,11 +57,10 @@
5857
}
5958
return
6059
}
6160
6261
proc ::vc::fossil::ws::commit {break appname nosign meta ignore} {
63
- variable fossil
6462
variable lastuuid
6563
variable debugcommit
6664
variable dcfile
6765
6866
# Commit the current state of the workspace. Scan for new and
@@ -75,16 +73,16 @@
7573
7674
set added 0
7775
set removed 0
7876
set changed 0
7977
80
- foreach line [split [exec $fossil changes] \n] {
78
+ foreach line [split [dova changes] \n] {
8179
regsub {^\s*EDITED\s*} $line {} path
8280
if {[IGNORE $ignore $path]} continue
8381
8482
if {![file exists $path]} {
85
- exec $fossil rm $path
83
+ dova rm $path
8684
incr removed
8785
write 2 fossil "- $path"
8886
} else {
8987
incr changed
9088
write 2 fossil "* $path"
@@ -91,13 +89,13 @@
9189
}
9290
}
9391
9492
# Now look for unregistered added files.
9593
96
- foreach path [split [exec $fossil extra] \n] {
94
+ foreach path [split [dova extra] \n] {
9795
if {[IGNORE $ignore $path]} continue
98
- exec $fossil add $path
96
+ dova add $path
9997
incr added
10098
write 2 fossil "+ $path"
10199
}
102100
103101
# Now commit, using the provided meta data, and capture the uuid
@@ -108,25 +106,22 @@
108106
set message [join [list \
109107
"-- Originally by $user @ $tstamp" \
110108
"-- Imported by $appname" \
111109
$message] \n]
112110
113
- if {$nosign} {
114
- set cmd [list exec $fossil commit -m $message --nosign]
115
- } else {
116
- set cmd [list exec $fossil commit -m $message]
117
- }
111
+ set cmd [list commit -m $message]
112
+ if {$nosign} { lappend cmd --nosign }
118113
119114
if {$debugcommit} {
120
- fileutil::writeFile $dcfile "\#!tclsh\n$cmd\n"
115
+ fileutil::writeFile $dcfile "$cmd\n"
121116
}
122117
123118
# Stop, do not actually commit.
124119
if {$break} return
125120
126121
if {[catch {
127
- eval $cmd
122
+ do $cmd
128123
} line]} {
129124
if {![string match "*nothing has changed*" $line]} {
130125
return -code error $line
131126
}
132127
133128
134129
ADDED tools/lib/fossil_cmd.tcl
--- tools/lib/fossil.tcl
+++ tools/lib/fossil.tcl
@@ -3,29 +3,31 @@
3
4 # -----------------------------------------------------------------------------
5 # Requirements
6
7 package require Tcl 8.4
8 package require vc::tools::log ; # User feedback
 
9
10 namespace eval ::vc::fossil::ws {
11 vc::tools::log::system fossil
12 namespace import ::vc::tools::log::write
 
 
13 }
14
15 # -----------------------------------------------------------------------------
16 # API
17
18 # Define repository file, and connect to workspace in CWD.
19
20 proc ::vc::fossil::ws::new {} {
21 variable fr [file normalize [fileutil::tempfile import2_fsl_rp_]]
22 variable fossil
23
24 # pwd = workspace
25 exec $fossil new $fr ; # create and
26 exec $fossil open $fr ; # connect
27
28 write 0 fossil "Repository: $fr"
29
30 return $fr
31 }
@@ -40,13 +42,10 @@
40
41 namespace eval ::vc::fossil::ws {
42 # Repository file
43 variable fr {}
44
45 # Fossil application
46 variable fossil [auto_execok fossil]
47
48 # Debug the commit command (write a Tcl script containing the
49 # exact command used). And the file the data goes to.
50 variable debugcommit 0
51 variable dcfile {}
52 }
@@ -58,11 +57,10 @@
58 }
59 return
60 }
61
62 proc ::vc::fossil::ws::commit {break appname nosign meta ignore} {
63 variable fossil
64 variable lastuuid
65 variable debugcommit
66 variable dcfile
67
68 # Commit the current state of the workspace. Scan for new and
@@ -75,16 +73,16 @@
75
76 set added 0
77 set removed 0
78 set changed 0
79
80 foreach line [split [exec $fossil changes] \n] {
81 regsub {^\s*EDITED\s*} $line {} path
82 if {[IGNORE $ignore $path]} continue
83
84 if {![file exists $path]} {
85 exec $fossil rm $path
86 incr removed
87 write 2 fossil "- $path"
88 } else {
89 incr changed
90 write 2 fossil "* $path"
@@ -91,13 +89,13 @@
91 }
92 }
93
94 # Now look for unregistered added files.
95
96 foreach path [split [exec $fossil extra] \n] {
97 if {[IGNORE $ignore $path]} continue
98 exec $fossil add $path
99 incr added
100 write 2 fossil "+ $path"
101 }
102
103 # Now commit, using the provided meta data, and capture the uuid
@@ -108,25 +106,22 @@
108 set message [join [list \
109 "-- Originally by $user @ $tstamp" \
110 "-- Imported by $appname" \
111 $message] \n]
112
113 if {$nosign} {
114 set cmd [list exec $fossil commit -m $message --nosign]
115 } else {
116 set cmd [list exec $fossil commit -m $message]
117 }
118
119 if {$debugcommit} {
120 fileutil::writeFile $dcfile "\#!tclsh\n$cmd\n"
121 }
122
123 # Stop, do not actually commit.
124 if {$break} return
125
126 if {[catch {
127 eval $cmd
128 } line]} {
129 if {![string match "*nothing has changed*" $line]} {
130 return -code error $line
131 }
132
133
134 DDED tools/lib/fossil_cmd.tcl
--- tools/lib/fossil.tcl
+++ tools/lib/fossil.tcl
@@ -3,29 +3,31 @@
3
4 # -----------------------------------------------------------------------------
5 # Requirements
6
7 package require Tcl 8.4
8 package require vc::tools::log ; # User feedback
9 package require vc::fossil::cmd ; # Access to fossil application.
10
11 namespace eval ::vc::fossil::ws {
12 vc::tools::log::system fossil
13 namespace import ::vc::tools::log::write
14 namespace import ::vc::fossil::cmd::do
15 namespace import ::vc::fossil::cmd::dova
16 }
17
18 # -----------------------------------------------------------------------------
19 # API
20
21 # Define repository file, and connect to workspace in CWD.
22
23 proc ::vc::fossil::ws::new {} {
24 variable fr [file normalize [fileutil::tempfile import2_fsl_rp_]]
 
25
26 # pwd = workspace
27 dova new $fr ; # create and
28 dova open $fr ; # connect
29
30 write 0 fossil "Repository: $fr"
31
32 return $fr
33 }
@@ -40,13 +42,10 @@
42
43 namespace eval ::vc::fossil::ws {
44 # Repository file
45 variable fr {}
46
 
 
 
47 # Debug the commit command (write a Tcl script containing the
48 # exact command used). And the file the data goes to.
49 variable debugcommit 0
50 variable dcfile {}
51 }
@@ -58,11 +57,10 @@
57 }
58 return
59 }
60
61 proc ::vc::fossil::ws::commit {break appname nosign meta ignore} {
 
62 variable lastuuid
63 variable debugcommit
64 variable dcfile
65
66 # Commit the current state of the workspace. Scan for new and
@@ -75,16 +73,16 @@
73
74 set added 0
75 set removed 0
76 set changed 0
77
78 foreach line [split [dova changes] \n] {
79 regsub {^\s*EDITED\s*} $line {} path
80 if {[IGNORE $ignore $path]} continue
81
82 if {![file exists $path]} {
83 dova rm $path
84 incr removed
85 write 2 fossil "- $path"
86 } else {
87 incr changed
88 write 2 fossil "* $path"
@@ -91,13 +89,13 @@
89 }
90 }
91
92 # Now look for unregistered added files.
93
94 foreach path [split [dova extra] \n] {
95 if {[IGNORE $ignore $path]} continue
96 dova add $path
97 incr added
98 write 2 fossil "+ $path"
99 }
100
101 # Now commit, using the provided meta data, and capture the uuid
@@ -108,25 +106,22 @@
106 set message [join [list \
107 "-- Originally by $user @ $tstamp" \
108 "-- Imported by $appname" \
109 $message] \n]
110
111 set cmd [list commit -m $message]
112 if {$nosign} { lappend cmd --nosign }
 
 
 
113
114 if {$debugcommit} {
115 fileutil::writeFile $dcfile "$cmd\n"
116 }
117
118 # Stop, do not actually commit.
119 if {$break} return
120
121 if {[catch {
122 do $cmd
123 } line]} {
124 if {![string match "*nothing has changed*" $line]} {
125 return -code error $line
126 }
127
128
129 DDED tools/lib/fossil_cmd.tcl
--- a/tools/lib/fossil_cmd.tcl
+++ b/tools/lib/fossil_cmd.tcl
@@ -0,0 +1,49 @@
1
+# -----------------------------------------------------------------------------
2
+# Access to the external fossil command.
3
+
4
+# -----------------------------------------------------------------------------
5
+# Requirements
6
+
7
+package require Tcl 8.4
8
+namespace eval ::vc::fossil::cmd {}
9
+
10
+# -----------------------------------------------------------------------------
11
+# API
12
+
13
+# vc::fossil::cmd::dova word... - Run a fossil command specified as var args
14
+# vc::fossil::cmd::do words - Run a fossil command specified in a list.
15
+
16
+# -----------------------------------------------------------------------------
17
+# API Implementation
18
+
19
+proc ::vc::fossil::cmd::dova {args} {do $args}
20
+
21
+proc ::vc::fossil::cmd::do {words} {
22
+ variable cmd
23
+ if {![llength $words]} {
24
+ return -code error "Empty fossil command"
25
+ }
26
+ # 8.5: exec $cmd {*}$words
27
+ return [eval [linsert $words 0 exec $cmd]]
28
+}
29
+
30
+# -----------------------------------------------------------------------------
31
+# Internals.
32
+
33
+namespace eval ::vc::fossil::cmd {
34
+ # Locate external fossil application.
35
+ variable cmd [auto_execok fossil]
36
+
37
+ # Bail out if not found.
38
+ if {![llength $::vc::fossil::cmd::cmd]} {
39
+ return -code error "Fossil application not found."
40
+ }
41
+
42
+ namespace export do dova
43
+}
44
+
45
+# -----------------------------------------------------------------------------
46
+# Ready
47
+
48
+package provide vc::fossil::cmd 1.0
49
+return
--- a/tools/lib/fossil_cmd.tcl
+++ b/tools/lib/fossil_cmd.tcl
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/tools/lib/fossil_cmd.tcl
+++ b/tools/lib/fossil_cmd.tcl
@@ -0,0 +1,49 @@
1 # -----------------------------------------------------------------------------
2 # Access to the external fossil command.
3
4 # -----------------------------------------------------------------------------
5 # Requirements
6
7 package require Tcl 8.4
8 namespace eval ::vc::fossil::cmd {}
9
10 # -----------------------------------------------------------------------------
11 # API
12
13 # vc::fossil::cmd::dova word... - Run a fossil command specified as var args
14 # vc::fossil::cmd::do words - Run a fossil command specified in a list.
15
16 # -----------------------------------------------------------------------------
17 # API Implementation
18
19 proc ::vc::fossil::cmd::dova {args} {do $args}
20
21 proc ::vc::fossil::cmd::do {words} {
22 variable cmd
23 if {![llength $words]} {
24 return -code error "Empty fossil command"
25 }
26 # 8.5: exec $cmd {*}$words
27 return [eval [linsert $words 0 exec $cmd]]
28 }
29
30 # -----------------------------------------------------------------------------
31 # Internals.
32
33 namespace eval ::vc::fossil::cmd {
34 # Locate external fossil application.
35 variable cmd [auto_execok fossil]
36
37 # Bail out if not found.
38 if {![llength $::vc::fossil::cmd::cmd]} {
39 return -code error "Fossil application not found."
40 }
41
42 namespace export do dova
43 }
44
45 # -----------------------------------------------------------------------------
46 # Ready
47
48 package provide vc::fossil::cmd 1.0
49 return
--- tools/lib/pkgIndex.tcl
+++ tools/lib/pkgIndex.tcl
@@ -1,6 +1,8 @@
11
if {![package vsatisfies [package require Tcl] 8.4]} return
22
package ifneeded vc::rcs::parser 1.0 [list source [file join $dir rcsparser.tcl]]
3
+package ifneeded vc::cvs::cmd 1.0 [list source [file join $dir cvs_cmd.tcl]]
34
package ifneeded vc::cvs::ws 1.0 [list source [file join $dir cvs.tcl]]
5
+package ifneeded vc::fossil::cmd 1.0 [list source [file join $dir fossil_cmd.tcl]]
46
package ifneeded vc::fossil::ws 1.0 [list source [file join $dir fossil.tcl]]
57
package ifneeded vc::fossil::import::cvs 1.0 [list source [file join $dir importcvs.tcl]]
68
package ifneeded vc::tools::log 1.0 [list source [file join $dir log.tcl]]
79
--- tools/lib/pkgIndex.tcl
+++ tools/lib/pkgIndex.tcl
@@ -1,6 +1,8 @@
1 if {![package vsatisfies [package require Tcl] 8.4]} return
2 package ifneeded vc::rcs::parser 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
--- tools/lib/pkgIndex.tcl
+++ tools/lib/pkgIndex.tcl
@@ -1,6 +1,8 @@
1 if {![package vsatisfies [package require Tcl] 8.4]} return
2 package ifneeded vc::rcs::parser 1.0 [list source [file join $dir rcsparser.tcl]]
3 package ifneeded vc::cvs::cmd 1.0 [list source [file join $dir cvs_cmd.tcl]]
4 package ifneeded vc::cvs::ws 1.0 [list source [file join $dir cvs.tcl]]
5 package ifneeded vc::fossil::cmd 1.0 [list source [file join $dir fossil_cmd.tcl]]
6 package ifneeded vc::fossil::ws 1.0 [list source [file join $dir fossil.tcl]]
7 package ifneeded vc::fossil::import::cvs 1.0 [list source [file join $dir importcvs.tcl]]
8 package ifneeded vc::tools::log 1.0 [list source [file join $dir log.tcl]]
9

Keyboard Shortcuts

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