Artifact 516ad355383b08d6e2203260cb9802e514cd8e44
File
tools/cvs2fossil/lib/cvs2fossil.tcl
part of check-in
[38b967dcf5]
- Merge aku's CVS import changes into the main line. Fix a small bug in diff.c.
by
drh on
2007-11-17 00:29:42.
Also file
tools/cvs2fossil/lib/cvs2fossil.tcl
part of check-in
[e7c805f137]
- Added skeleton of pass 8, the final pass for the breaking of dependency cycles. This pass will handle the remaining cycles crossing revision and symbol changesets.
by
aku on
2007-11-16 06:53:01.
## -*- tcl -*-
# # ## ### ##### ######## ############# #####################
## Copyright (c) 2007 Andreas Kupries.
#
# This software is licensed as described in the file LICENSE, which
# you should have received as part of this distribution.
#
# This software consists of voluntary contributions made by many
# individuals. For exact contribution history, see the revision
# history and logs, available at http://fossil-scm.hwaci.com/fossil
# # ## ### ##### ######## ############# #####################
## Main package of the cvs conversion/import facility. Loads the
## required pieces and controls their interaction.
# # ## ### ##### ######## ############# #####################
## Requirements
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system
# # ## ### ##### ######## ############# #####################
## Passes. The order in which the various passes are loaded is
## important. It is the same order in which they will
## register, and then be run in.
package require vc::fossil::import::cvs::pass::collar ; # Coll'ect Ar'chives.
package require vc::fossil::import::cvs::pass::collrev ; # Coll'ect Rev'isions.
package require vc::fossil::import::cvs::pass::collsym ; # Coll'ate Sym'bols
package require vc::fossil::import::cvs::pass::filtersym ; # Filter' Sym'bols
# Note: cvs2svn's SortRevisionSummaryPass and SortSymbolSummaryPass
# are not implemented by us. They are irrelevant due to our use
# of a relational database proper for the persistent state,
# allowing us to sort the data on the fly as we need it.
package require vc::fossil::import::cvs::pass::initcsets ; # Init'ialize C'hange'Sets
package require vc::fossil::import::cvs::pass::breakrcycle ; # Break' R'evision Cycle's
# Note: cvs2svn's RevisionTopologicalSortPass is not a separate pass,
# but was subsumed by the previous pass, by immediately saving
# the order of consumed graph nodes to 'csorder'.
package require vc::fossil::import::cvs::pass::breakscycle ; # Break' S'ymbol Cycle's
package require vc::fossil::import::cvs::pass::breakacycle ; # Break' A'll Cycle's
# # ## ### ##### ######## ############# #####################
## Support for passes etc.
package require vc::fossil::import::cvs::option ; # Cmd line parsing & database
package require vc::fossil::import::cvs::pass ; # Pass management
package require vc::tools::log ; # User feedback
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs {
# # ## ### ##### ######## #############
## Public API, Methods
typemethod run {arguments} {
# Run a series of passes over the cvs repository to extract,
# filter, and order its historical information. Which passes
# are actually run is determined through the specified options
# and their defaults.
option process $arguments
pass run
vc::tools::log write 0 cvs2fossil Done
return
}
# # ## ### ##### ######## #############
## Configuration
pragma -hasinstances no ; # singleton
pragma -hastypeinfo no ; # no introspection
pragma -hastypedestroy no ; # immortal
# # ## ### ##### ######## #############
}
# # ## ### ##### ######## ############# #####################
## Ready
package provide vc::fossil::import::cvs 1.0
return