e7c805f137 2007-11-16 aku: ## -*- tcl -*- e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# ##################### e7c805f137 2007-11-16 aku: ## Copyright (c) 2007 Andreas Kupries. e7c805f137 2007-11-16 aku: # e7c805f137 2007-11-16 aku: # This software is licensed as described in the file LICENSE, which e7c805f137 2007-11-16 aku: # you should have received as part of this distribution. e7c805f137 2007-11-16 aku: # e7c805f137 2007-11-16 aku: # This software consists of voluntary contributions made by many e7c805f137 2007-11-16 aku: # individuals. For exact contribution history, see the revision e7c805f137 2007-11-16 aku: # history and logs, available at http://fossil-scm.hwaci.com/fossil e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# ##################### e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: ## Pass VIII. This is the final pass for breaking changeset dependency e7c805f137 2007-11-16 aku: ## cycles. The two previous passes broke cycles covering revision and e7c805f137 2007-11-16 aku: ## symbol changesets, respectively. This pass now breaks any remaining e7c805f137 2007-11-16 aku: ## cycles each of which has to contain at least one revision and at e7c805f137 2007-11-16 aku: ## least one symbol changeset. e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# ##################### e7c805f137 2007-11-16 aku: ## Requirements e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: package require Tcl 8.4 ; # Required runtime. e7c805f137 2007-11-16 aku: package require snit ; # OO system. e7c805f137 2007-11-16 aku: package require struct::list ; # Higher order list operations. e7c805f137 2007-11-16 aku: package require vc::tools::log ; # User feedback. e7c805f137 2007-11-16 aku: package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles. e7c805f137 2007-11-16 aku: package require vc::fossil::import::cvs::state ; # State storage. e7c805f137 2007-11-16 aku: package require vc::fossil::import::cvs::project::rev ; # Project level changesets e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# ##################### e7c805f137 2007-11-16 aku: ## Register the pass with the management e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: vc::fossil::import::cvs::pass define \ e7c805f137 2007-11-16 aku: BreakAllCsetCycles \ e7c805f137 2007-11-16 aku: {Break Remaining ChangeSet Dependency Cycles} \ e7c805f137 2007-11-16 aku: ::vc::fossil::import::cvs::pass::breakacycle e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# ##################### e7c805f137 2007-11-16 aku: ## e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: snit::type ::vc::fossil::import::cvs::pass::breakacycle { e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# e7c805f137 2007-11-16 aku: ## Public API e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: typemethod setup {} { e7c805f137 2007-11-16 aku: # Define the names and structure of the persistent state of e7c805f137 2007-11-16 aku: # this pass. e7c805f137 2007-11-16 aku: return e7c805f137 2007-11-16 aku: } e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: typemethod load {} { e7c805f137 2007-11-16 aku: # Pass manager interface. Executed to load data computed by e7c805f137 2007-11-16 aku: # this pass into memory when this pass is skipped instead of e7c805f137 2007-11-16 aku: # executed. e7c805f137 2007-11-16 aku: return e7c805f137 2007-11-16 aku: } e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: typemethod run {} { e7c805f137 2007-11-16 aku: # Pass manager interface. Executed to perform the e7c805f137 2007-11-16 aku: # functionality of the pass. 7f15be9078 2007-11-20 aku: 7f15be9078 2007-11-20 aku: set changesets [project::rev all] 2a0ec504c5 2007-11-21 aku: #cyclebreaker dot break-all-start $changesets 7f15be9078 2007-11-20 aku: e7c805f137 2007-11-16 aku: return e7c805f137 2007-11-16 aku: } e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: typemethod discard {} { e7c805f137 2007-11-16 aku: # Pass manager interface. Executed for all passes after the e7c805f137 2007-11-16 aku: # run passes, to remove all data of this pass from the state, e7c805f137 2007-11-16 aku: # as being out of date. e7c805f137 2007-11-16 aku: return e7c805f137 2007-11-16 aku: } e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# e7c805f137 2007-11-16 aku: ## Internal methods 2a0ec504c5 2007-11-21 aku: 2a0ec504c5 2007-11-21 aku: proc Changesets {} { project::rev all } e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# e7c805f137 2007-11-16 aku: ## Configuration e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: pragma -hasinstances no ; # singleton e7c805f137 2007-11-16 aku: pragma -hastypeinfo no ; # no introspection e7c805f137 2007-11-16 aku: pragma -hastypedestroy no ; # immortal e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# e7c805f137 2007-11-16 aku: } e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: namespace eval ::vc::fossil::import::cvs::pass { e7c805f137 2007-11-16 aku: namespace export breakacycle e7c805f137 2007-11-16 aku: namespace eval breakacycle { e7c805f137 2007-11-16 aku: namespace import ::vc::fossil::import::cvs::cyclebreaker e7c805f137 2007-11-16 aku: namespace import ::vc::fossil::import::cvs::state e7c805f137 2007-11-16 aku: namespace eval project { e7c805f137 2007-11-16 aku: namespace import ::vc::fossil::import::cvs::project::rev e7c805f137 2007-11-16 aku: } e7c805f137 2007-11-16 aku: namespace import ::vc::tools::log e7c805f137 2007-11-16 aku: log register breakacycle e7c805f137 2007-11-16 aku: } e7c805f137 2007-11-16 aku: } e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: # # ## ### ##### ######## ############# ##################### e7c805f137 2007-11-16 aku: ## Ready e7c805f137 2007-11-16 aku: e7c805f137 2007-11-16 aku: package provide vc::fossil::import::cvs::pass::breakacycle 1.0 e7c805f137 2007-11-16 aku: return