Check-in [00228d1547]
Not logged in
Overview

SHA1 Hash:00228d154780783e7bdcdffd2e3fd971d48d3dd9
Date: 2007-09-13 06:22:29
User: aku
Comment:Continuing namespace changes, cvs frontend.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified tools/lib/cvs.tcl from [e04bcf97f2] to [e0a80b9107].

@@ -8,35 +8,35 @@
 package require fileutil       ; # Tcllib (traverse directory hierarchy)
 package require rcsparser      ; # Handling the RCS archive files.
 package require vc::tools::log ; # User feedback
 package require struct::tree
 
-namespace eval ::cvs {
+namespace eval ::vc::cvs::ws {
     vc::tools::log::system cvs
     namespace import ::vc::tools::log::write
 }
 
 # -----------------------------------------------------------------------------
 # API
 
 # Define repository directory.
 
-proc ::cvs::at {path} {
+proc ::vc::cvs::ws::at {path} {
     variable base [file normalize $path]
     write 0 cvs "Base: $base"
     return
 }
 
-namespace eval ::cvs {
+namespace eval ::vc::cvs::ws {
     # Toplevel repository directory
     variable base {}
 }
 
 # Scan repository, collect archives, parse them, and collect revision
 # information (file, revision -> date, author, commit message)
 
-proc ::cvs::scan {} {
+proc ::vc::cvs::ws::scan {} {
     variable base
     variable npaths
     variable rpaths
     variable timeline
 
@@ -115,11 +115,11 @@
 
     write 0 cvs "Processed $n [expr {($n == 1) ? "file" : "files"}]"
     return
 }
 
-namespace eval ::cvs {
+namespace eval ::vc::cvs::ws {
     # Path mappings. npaths: rcs file  -> user file
     #                rpaths: user file -> rcs file, dead-status
 
     variable npaths   ; array set npaths   {}
     variable rpaths   ; array set rpaths   {}
@@ -129,11 +129,11 @@
     variable timeline ; array set timeline {}
 }
 
 # Group single changes into changesets
 
-proc ::cvs::csets {} {
+proc ::vc::cvs::ws::csets {} {
     variable timeline
     variable csets
     variable ncs
     variable cmap
 
@@ -171,11 +171,11 @@
     write 0 cvs "Found     $n [expr {($n == 1) ? "changeset" : "changesets"}]"
     return
 }
 
 
-namespace eval ::cvs {
+namespace eval ::vc::cvs::ws {
     # Changeset data:
     # ncs:   Counter-based id generation
     # csets: id -> (user commit start end depth (file -> (op rev)))
 
     variable ncs      ; set       ncs   0  ; # Counter for changesets
@@ -184,18 +184,18 @@
 
 # Building the revision tree from the changesets.
 # Limitation: Currently only trunk csets is handled.
 # Limitation: Dead files are not removed, i.e. no 'R' actions right now.
 
-proc ::cvs::rtree {} {
+proc ::vc::cvs::ws::rtree {} {
     variable csets
     variable rtree {}
     variable ntrunk 0
 
     write 0 cvs "Extracting the trunk"
 
-    set rtree [struct::tree ::cvs::RT]
+    set rtree [struct::tree ::vc::cvs::ws::RT]
     $rtree rename root 0 ; # Root is first changeset, always.
     set trunk 0
     set ntrunk 1 ; # Root is on the trunk.
     set b      0 ; # No branch csets found yet.
 
@@ -220,19 +220,19 @@
     write 0 cvs "Processed $ntrunk trunk  [expr {($ntrunk == 1) ? "changeset" : "changesets"}]"
     write 0 cvs "Ignored   $b branch [expr {($b == 1) ? "changeset" : "changesets"}]"
     return
 }
 
-namespace eval ::cvs {
+namespace eval ::vc::cvs::ws {
     # Tree holding trunk and branch information (struct::tree).
     # Node names are cset id's.
 
     variable rtree {}
     variable ntrunk 0
 }
 
-proc ::cvs::workspace {} {
+proc ::vc::cvs::ws::workspace {} {
     variable cwd [pwd]
     variable workspace [fileutil::tempfile importF_cvs_ws_]
     file delete $workspace
     file mkdir  $workspace
 
@@ -240,25 +240,25 @@
 
     cd     $workspace ; # Checkouts go here.
     return $workspace
 }
 
-proc ::cvs::wsignore {path} {
+proc ::vc::cvs::ws::wsignore {path} {
     # Ignore CVS admin files.
     if {[string match */CVS/* $path]} {return 1}
     return 0
 }
 
-proc ::cvs::wsclear {} {
+proc ::vc::cvs::ws::wsclear {} {
     variable cwd
     variable workspace
     cd $cwd
     file delete -force $workspace
     return
 }
 
-proc ::cvs::wssetup {c} {
+proc ::vc::cvs::ws::wssetup {c} {
     variable csets
     variable cvs
     variable base
 
     # pwd = workspace
@@ -321,21 +321,21 @@
 
     # Provide metadata about the changeset the backend may wish to have
     return [list $u $cm $s]
 }
 
-namespace eval ::cvs {
+namespace eval ::vc::cvs::ws {
     # CVS application
     # Workspace where checkouts happen
     # Current working directory to go back to after the import.
 
     variable cvs       [auto_execok cvs]
     variable workspace {}
     variable cwd       {}
 }
 
-proc ::cvs::foreach_cset {cv node script} {
+proc ::vc::cvs::ws::foreach_cset {cv node script} {
     upvar 1 $cv c
     variable rtree
 
     set c $node
     while {1} {
@@ -362,34 +362,34 @@
 	set c [lindex [$rtree children $c] 0]
     }
     return
 }
 
-proc ::cvs::root {} {
+proc ::vc::cvs::ws::root {} {
     return 0
 }
 
-proc ::cvs::ntrunk {} {
+proc ::vc::cvs::ws::ntrunk {} {
     variable ntrunk
     return  $ntrunk
 }
 
-proc ::cvs::ncsets {} {
+proc ::vc::cvs::ws::ncsets {} {
     variable ncs
     return  $ncs
 }
 
-proc ::cvs::uuid {c uuid} {
+proc ::vc::cvs::ws::uuid {c uuid} {
     variable rtree
     $rtree set $c uuid $uuid
     return
 }
 
 # -----------------------------------------------------------------------------
 # Internal helper commands: Changeset inspection and construction.
 
-proc ::cvs::CSClear {} {
+proc ::vc::cvs::ws::CSClear {} {
     upvar 1 start start end end cm cm user user files files lastd lastd
 
     set start {}
     set end   {}
     set cm    {}
@@ -398,16 +398,16 @@
     array unset files *
     array set files {}
     return
 }
 
-proc ::cvs::CSNone {} {
+proc ::vc::cvs::ws::CSNone {} {
     upvar 1 start start
     return [expr {$start eq ""}]
 }
 
-proc ::cvs::CSNew {entry} {
+proc ::vc::cvs::ws::CSNew {entry} {
     upvar 1 start start end end cm cm user user files files lastd lastd reason reason
 
     #puts -nonewline stdout . ; flush stdout
 
     foreach {op ts a rev f ecm} $entry break
@@ -427,11 +427,11 @@
 
     # Everything is good, still the same cset
     return 0
 }
 
-proc ::cvs::CSSave {} {
+proc ::vc::cvs::ws::CSSave {} {
     variable cmap
     variable csets
     variable ncs
     upvar 1 start start end end cm cm user user files files lastd lastd
 
@@ -447,11 +447,11 @@
 
     incr ncs
     return
 }
 
-proc ::cvs::CSAdd {entry} {
+proc ::vc::cvs::ws::CSAdd {entry} {
     upvar 1 start start end end cm cm user user files files lastd lastd
 
     foreach {op ts a rev f ecm} $entry break
 
     if {$start eq ""} {set start $ts}
@@ -461,11 +461,11 @@
     set files($f) [list $op $rev]
     set lastd     [llength [split $rev .]]
     return
 }
 
-proc ::cvs::CSDump {c} {
+proc ::vc::cvs::ws::CSDump {c} {
     variable csets
     foreach {u cm s e rd f} $csets($c) break
 
     puts "$u $s"; regsub -all {.} $u { } b
     puts "$b $e"
@@ -474,10 +474,15 @@
 	puts "$b $o $f $r"
     }
     return
 }
 
+namespace eval ::vc::cvs::ws {
+    namespace export at scan csets rtree workspace wsignore wsclear wssetup \
+	foreach_cset root ntrunk ncsets uuid
+}
+
 # -----------------------------------------------------------------------------
 # Ready
 
-package provide cvs 1.0
+package provide vc::cvs::ws 1.0
 return

Modified tools/lib/fossil.tcl from [d4147a8c46] to [e36fe509db].

@@ -150,12 +150,16 @@
 # -----------------------------------------------------------------------------
 # Internal helper commands
 
 proc ::vc::fossil::ws::IGNORE {ignore path} {
     return [uplevel #0 [linsert $ignore end $path]]
+}
+
+namespace eval ::vc::fossil::ws {
+    namespace export new destination debugcommit commit
 }
 
 # -----------------------------------------------------------------------------
 # Ready
 
 package provide vc::fossil::ws 1.0
 return

Modified tools/lib/importcvs.tcl from [e0760f3260] to [ab3e3cfde7].

@@ -3,17 +3,19 @@
 
 # -----------------------------------------------------------------------------
 # Requirements
 
 package require Tcl 8.4
-package require cvs             ; # Frontend, reading from source repository
+package require vc::cvs::ws     ; # Frontend, reading from source repository
 package require vc::fossil::ws  ; # Backend,  writing to destination repository.
 package require vc::tools::log  ; # User feedback
 
 namespace eval ::vc::fossil::import::cvs {
     vc::tools::log::system import
     namespace import ::vc::tools::log::write
+    namespace eval cvs    { namespace import ::vc::cvs::ws::* }
+    namespace eval fossil { namespace import ::vc::fossil::ws::* }
 }
 
 # -----------------------------------------------------------------------------
 # API
 
@@ -39,11 +41,11 @@
     switch -exact -- $key {
 	-debugcommit {
 	    if {![string is boolean -strict $value]} {
 		return -code error "Expected boolean, got \"$value\""
 	    }
-	    vc::fossil::ws::debugcommit $value
+	    fossil::debugcommit $value
 	}
 	-nosign {
 	    if {![string is boolean -strict $value]} {
 		return -code error "Expected boolean, got \"$value\""
 	    }
@@ -64,24 +66,23 @@
 # fossil repository at 'dst'.
 
 proc ::vc::fossil::import::cvs::run {src dst} {
     variable stopat
 
-    cvs::at       $src  ; # Define location of CVS repository
-
-    cvs::scan           ; # Gather revision data from the archives
-    cvs::csets          ; # Group changes into sets
-    cvs::rtree          ; # Build revision tree (trunk only right now).
+    cvs::at $src  ; # Define location of CVS repository
+    cvs::scan     ; # Gather revision data from the archives
+    cvs::csets    ; # Group changes into sets
+    cvs::rtree    ; # Build revision tree (trunk only right now).
 
     set tot 0.0
     set nto 0
 
     write 0 import {Begin conversion}
     write 0 import {Setting up workspaces}
 
-    cvs::workspace      ; # cd's to workspace
-    vc::fossil::ws::new ; # Uses cwd as workspace to connect to.
+    cvs::workspace ; # cd's to workspace
+    fossil::new    ; # Uses cwd as workspace to connect to.
 
     set ntrunk [cvs::ntrunk] ; set ntfmt %[string length $ntrunk]s
     set nmax   [cvs::ncsets] ; set nmfmt %[string length $nmax]s
 
     cvs::foreach_cset cset [cvs::root] {
@@ -94,11 +95,11 @@
     write 0 import "Within [format %.2f $tot] seconds (avg [format %.2f [expr {$tot/$nto}]] seconds/changeset)"
 
     if {$stopat == $cset} return
 
     cvs::wsclear
-    vc::fossil::ws::destination $dst
+    fossil::destination $dst
     write 0 import Ok.
     return
 }
 
 # -----------------------------------------------------------------------------
@@ -127,20 +128,20 @@
 proc ::vc::fossil::import::cvs::OneChangeSet {cset} {
     variable nosign
     variable stopat
 
     if {$stopat == $cset} {
-	vc::fossil::ws::commit 1 cvs2fossil $nosign \
-	    [cvs::wssetup $cset] ::cvs::wsignore
+	fossil::commit 1 cvs2fossil $nosign \
+	    [cvs::wssetup $cset] ::vc::cvs::ws::wsignore
 	write 0 import Stopped.
 	return -code break
     }
 
     set usec [lindex [time {
 	foreach {uuid ad rm ch} \
-	    [vc::fossil::ws::commit 0 cvs2fossil $nosign \
-		 [cvs::wssetup $cset] ::cvs::wsignore] \
+	    [fossil::commit 0 cvs2fossil $nosign \
+		 [cvs::wssetup $cset] ::vc::cvs::ws::wsignore] \
 	    break
     } 1] 0]
     cvs::uuid $cset $uuid
 
     set sec [expr {$usec/1e6}]

Modified tools/lib/pkgIndex.tcl from [e2affafb1d] to [19d9f5ee91].

@@ -1,6 +1,6 @@
 if {![package vsatisfies [package require Tcl] 8.4]} return
 package ifneeded rcsparser 1.0 [list source [file join $dir rcsparser.tcl]]
-package ifneeded cvs       1.0 [list source [file join $dir cvs.tcl]]
+package ifneeded vc::cvs::ws             1.0 [list source [file join $dir cvs.tcl]]
 package ifneeded vc::fossil::ws          1.0 [list source [file join $dir fossil.tcl]]
 package ifneeded vc::fossil::import::cvs 1.0 [list source [file join $dir importcvs.tcl]]
 package ifneeded vc::tools::log          1.0 [list source [file join $dir log.tcl]]