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
- branch=trunk inherited from [a28c83647d]
- sym-trunk inherited from [a28c83647d]
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]]