2a01d50430 2007-11-11 aku: ## -*- tcl -*- 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# ##################### 2a01d50430 2007-11-11 aku: ## Copyright (c) 2007 Andreas Kupries. 2a01d50430 2007-11-11 aku: # 2a01d50430 2007-11-11 aku: # This software is licensed as described in the file LICENSE, which 2a01d50430 2007-11-11 aku: # you should have received as part of this distribution. 2a01d50430 2007-11-11 aku: # 2a01d50430 2007-11-11 aku: # This software consists of voluntary contributions made by many 2a01d50430 2007-11-11 aku: # individuals. For exact contribution history, see the revision 2a01d50430 2007-11-11 aku: # history and logs, available at http://fossil-scm.hwaci.com/fossil 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# ##################### 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: ## Pass VI. This pass goes over the set of revision based changesets 2a01d50430 2007-11-11 aku: ## and breaks all dependency cycles they may be in. We need a 2a01d50430 2007-11-11 aku: ## dependency tree. 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# ##################### 2a01d50430 2007-11-11 aku: ## Requirements 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: package require Tcl 8.4 ; # Required runtime. 2a01d50430 2007-11-11 aku: package require snit ; # OO system. 2a01d50430 2007-11-11 aku: package require vc::tools::log ; # User feedback. 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# ##################### 2a01d50430 2007-11-11 aku: ## Register the pass with the management 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: vc::fossil::import::cvs::pass define \ 2a01d50430 2007-11-11 aku: BreakRevCsetCycles \ 2a01d50430 2007-11-11 aku: {Break Revision ChangeSet Dependency Cycles} \ 2a01d50430 2007-11-11 aku: ::vc::fossil::import::cvs::pass::breakrcycle 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# ##################### 2a01d50430 2007-11-11 aku: ## 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: snit::type ::vc::fossil::import::cvs::pass::breakrcycle { 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# 2a01d50430 2007-11-11 aku: ## Public API 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: typemethod setup {} { 2a01d50430 2007-11-11 aku: # Define the names and structure of the persistent state of 2a01d50430 2007-11-11 aku: # this pass. 2a01d50430 2007-11-11 aku: return 2a01d50430 2007-11-11 aku: } 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: typemethod load {} { 2a01d50430 2007-11-11 aku: # Pass manager interface. Executed to load data computed by 2a01d50430 2007-11-11 aku: # this pass into memory when this pass is skipped instead of 2a01d50430 2007-11-11 aku: # executed. 2a01d50430 2007-11-11 aku: return 2a01d50430 2007-11-11 aku: } 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: typemethod run {} { 2a01d50430 2007-11-11 aku: # Pass manager interface. Executed to perform the 2a01d50430 2007-11-11 aku: # functionality of the pass. 2a01d50430 2007-11-11 aku: return 2a01d50430 2007-11-11 aku: } 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: typemethod discard {} { 2a01d50430 2007-11-11 aku: # Pass manager interface. Executed for all passes after the 2a01d50430 2007-11-11 aku: # run passes, to remove all data of this pass from the state, 2a01d50430 2007-11-11 aku: # as being out of date. 2a01d50430 2007-11-11 aku: return 2a01d50430 2007-11-11 aku: } 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# 2a01d50430 2007-11-11 aku: ## Internal methods 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# 2a01d50430 2007-11-11 aku: ## Configuration 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: pragma -hasinstances no ; # singleton 2a01d50430 2007-11-11 aku: pragma -hastypeinfo no ; # no introspection 2a01d50430 2007-11-11 aku: pragma -hastypedestroy no ; # immortal 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# 2a01d50430 2007-11-11 aku: } 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: namespace eval ::vc::fossil::import::cvs::pass { 2a01d50430 2007-11-11 aku: namespace export initcsets 2a01d50430 2007-11-11 aku: namespace eval initcsets { 2a01d50430 2007-11-11 aku: namespace import ::vc::tools::log 2a01d50430 2007-11-11 aku: log register brkrcycle 2a01d50430 2007-11-11 aku: } 2a01d50430 2007-11-11 aku: } 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: # # ## ### ##### ######## ############# ##################### 2a01d50430 2007-11-11 aku: ## Ready 2a01d50430 2007-11-11 aku: 2a01d50430 2007-11-11 aku: package provide vc::fossil::import::cvs::pass::breakrcycle 1.0 2a01d50430 2007-11-11 aku: return