11e5d7ce42 2007-11-06 aku: ## -*- tcl -*- 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# ##################### 11e5d7ce42 2007-11-06 aku: ## Copyright (c) 2007 Andreas Kupries. 11e5d7ce42 2007-11-06 aku: # 11e5d7ce42 2007-11-06 aku: # This software is licensed as described in the file LICENSE, which 11e5d7ce42 2007-11-06 aku: # you should have received as part of this distribution. 11e5d7ce42 2007-11-06 aku: # 11e5d7ce42 2007-11-06 aku: # This software consists of voluntary contributions made by many 11e5d7ce42 2007-11-06 aku: # individuals. For exact contribution history, see the revision 11e5d7ce42 2007-11-06 aku: # history and logs, available at http://fossil-scm.hwaci.com/fossil 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# ##################### 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: ## Pass IV. Coming after the symbol collation pass this pass now 11e5d7ce42 2007-11-06 aku: ## removes all revisions and symbols referencing any of the excluded 11e5d7ce42 2007-11-06 aku: ## symbols from the persistent database. 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# ##################### 11e5d7ce42 2007-11-06 aku: ## Requirements 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: package require Tcl 8.4 ; # Required runtime. 11e5d7ce42 2007-11-06 aku: package require snit ; # OO system. 11e5d7ce42 2007-11-06 aku: package require vc::tools::log ; # User feedback. 11e5d7ce42 2007-11-06 aku: package require vc::fossil::import::cvs::state ; # State storage. 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# ##################### 11e5d7ce42 2007-11-06 aku: ## Register the pass with the management 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: vc::fossil::import::cvs::pass define \ 11e5d7ce42 2007-11-06 aku: FilterSymbols \ 11e5d7ce42 2007-11-06 aku: {Filter symbols, remove all excluded pieces} \ 11e5d7ce42 2007-11-06 aku: ::vc::fossil::import::cvs::pass::filtersym 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# ##################### 11e5d7ce42 2007-11-06 aku: ## 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: snit::type ::vc::fossil::import::cvs::pass::filtersym { 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# 11e5d7ce42 2007-11-06 aku: ## Public API 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: typemethod setup {} { 11e5d7ce42 2007-11-06 aku: # Define names and structure of the persistent state of this 11e5d7ce42 2007-11-06 aku: # pass. 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: state reading symbol 11e5d7ce42 2007-11-06 aku: state reading blocker 11e5d7ce42 2007-11-06 aku: state reading parent 11e5d7ce42 2007-11-06 aku: state reading preferedparent 11e5d7ce42 2007-11-06 aku: state reading revision 11e5d7ce42 2007-11-06 aku: state reading branch 11e5d7ce42 2007-11-06 aku: state reading tag 11e5d7ce42 2007-11-06 aku: return 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: typemethod load {} { 11e5d7ce42 2007-11-06 aku: # Pass manager interface. Executed to load data computed by 11e5d7ce42 2007-11-06 aku: # this pass into memory when this pass is skipped instead of 11e5d7ce42 2007-11-06 aku: # executed. 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # The results of this pass are fully in the persistent state, 11e5d7ce42 2007-11-06 aku: # there is nothing to load for the next one. 11e5d7ce42 2007-11-06 aku: return 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: typemethod run {} { 11e5d7ce42 2007-11-06 aku: # Pass manager interface. Executed to perform the 11e5d7ce42 2007-11-06 aku: # functionality of the pass. 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # The removal of excluded symbols and everything referencing 11e5d7ce42 2007-11-06 aku: # to them is done completely in the database. 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: state transaction { 11e5d7ce42 2007-11-06 aku: FilterExcludedSymbols 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: log write 1 filtersym "Filtering completed" 11e5d7ce42 2007-11-06 aku: return 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: typemethod discard {} { 11e5d7ce42 2007-11-06 aku: # Pass manager interface. Executed for all passes after the 11e5d7ce42 2007-11-06 aku: # run passes, to remove all data of this pass from the state, 11e5d7ce42 2007-11-06 aku: # as being out of date. 11e5d7ce42 2007-11-06 aku: return 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# 11e5d7ce42 2007-11-06 aku: ## Internal methods 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: proc FilterExcludedSymbols {} { 11e5d7ce42 2007-11-06 aku: state run { 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: return 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# 11e5d7ce42 2007-11-06 aku: ## Configuration 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: pragma -hasinstances no ; # singleton 11e5d7ce42 2007-11-06 aku: pragma -hastypeinfo no ; # no introspection 11e5d7ce42 2007-11-06 aku: pragma -hastypedestroy no ; # immortal 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: namespace eval ::vc::fossil::import::cvs::pass { 11e5d7ce42 2007-11-06 aku: namespace export filtersym 11e5d7ce42 2007-11-06 aku: namespace eval filtersym { 11e5d7ce42 2007-11-06 aku: namespace import ::vc::fossil::import::cvs::state 11e5d7ce42 2007-11-06 aku: namespace import ::vc::tools::log 11e5d7ce42 2007-11-06 aku: log register filtersym 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: } 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: # # ## ### ##### ######## ############# ##################### 11e5d7ce42 2007-11-06 aku: ## Ready 11e5d7ce42 2007-11-06 aku: 11e5d7ce42 2007-11-06 aku: package provide vc::fossil::import::cvs::pass::filtersym 1.0 11e5d7ce42 2007-11-06 aku: return