Differences From:
File
tools/cvs2fossil/lib/c2f_project.tcl
part of check-in
[1deb3786aa]
- Added saving of the fundamental symbol information (project level).
by
aku on
2007-10-26 05:28:24.
[view]
To:
File
tools/cvs2fossil/lib/c2f_project.tcl
part of check-in
[6f8667b03e]
- Added code creating aggregate symbol statistics. This completes pass 2 (CollRev).
by
aku on
2007-10-31 03:44:01.
[view]
@@ -20,8 +20,9 @@
package require vc::fossil::import::cvs::file ; # CVS archive file.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::project::sym ; # Per project symbols.
package require vc::fossil::import::cvs::project::trunk ; # Per project trunk, main lod
+package require vc::tools::log ; # User feedback
package require struct::list ; # Advanced list operations..
# # ## ### ##### ######## ############# #####################
##
@@ -33,8 +34,9 @@
constructor {path r} {
set mybase $path
set myrepository $r
set mytrunk [trunk %AUTO% $self]
+ set mysymbol([$mytrunk name]) $mytrunk
return
}
method base {} { return $mybase }
@@ -75,8 +77,23 @@
set mysymbol($name) \
[sym %AUTO% $name [$myrepository defsymbol $myid $name] $self]
}
return $mysymbol($name)
+ }
+
+ method purgeghostsymbols {} {
+ set changes 1
+ while {$changes} {
+ set changes 0
+ foreach {name symbol} [array get mysymbol] {
+ if {![$symbol isghost]} continue
+ log write 3 project "$mybase: Deleting ghost symbol '$name'"
+ $symbol destroy
+ unset mysymbol($name)
+ set changes 1
+ }
+ }
+ return
}
# pass I persistence
method persist {} {
@@ -178,8 +195,9 @@
namespace eval ::vc::fossil::import::cvs {
namespace export project
namespace eval project {
+ namespace import ::vc::tools::log
namespace import ::vc::fossil::import::cvs::file
namespace import ::vc::fossil::import::cvs::state
# Import not required, already a child namespace.
# namespace import ::vc::fossil::import::cvs::project::sym