Diff
Not logged in

Differences From:

File tools/lib/cvs.tcl part of check-in [d4aa7da67d] - Continuing namespace changes, rcs parser. Basic structure is now ok IMHO. by aku on 2007-09-13 06:24:31. [view]

To:

File tools/lib/cvs.tcl part of check-in [cdf5e6d8b7] - Encapsulated access to the fossil and cvs applications in their own packages. by aku on 2007-09-13 06:59:24. [view]

@@ -7,14 +7,16 @@
 package require Tcl 8.4
 package require fileutil        ; # Tcllib (traverse directory hierarchy)
 package require vc::rcs::parser ; # Handling the RCS archive files.
 package require vc::tools::log  ; # User feedback
+package require vc::cvs::cmd    ; # Access to cvs application.
 package require struct::tree
 
 namespace eval ::vc::cvs::ws {
     vc::tools::log::system cvs
     namespace import ::vc::tools::log::write
     namespace import ::vc::rcs::parser::process
+    namespace import ::vc::cvs::cmd::dova
 }
 
 # -----------------------------------------------------------------------------
 # API
@@ -258,9 +260,8 @@
 }
 
 proc ::vc::cvs::ws::wssetup {c} {
     variable csets
-    variable cvs
     variable base
 
     # pwd = workspace
 
@@ -300,9 +301,9 @@
 	    # Added or modified, put the requested version of the file
 	    # into the workspace.
 
 	    if {[catch {
-		exec $cvs -d $base co -r $r $f
+		dova -d $base co -r $r $f
 	    } msg]} {
 		if {[string match {*invalid change text*} $msg]} {
 		    # The archive of the file is corrupted and the
 		    # chosen version not accessible due to that. We
@@ -324,13 +325,11 @@
     return [list $u $cm $s]
 }
 
 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       {}
 }