54d1e3537e 2007-11-10 aku: ## -*- tcl -*- 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# ##################### 66235f2430 2008-02-06 aku: ## Copyright (c) 2007-2008 Andreas Kupries. 54d1e3537e 2007-11-10 aku: # 54d1e3537e 2007-11-10 aku: # This software is licensed as described in the file LICENSE, which 54d1e3537e 2007-11-10 aku: # you should have received as part of this distribution. 54d1e3537e 2007-11-10 aku: # 54d1e3537e 2007-11-10 aku: # This software consists of voluntary contributions made by many 54d1e3537e 2007-11-10 aku: # individuals. For exact contribution history, see the revision 54d1e3537e 2007-11-10 aku: # history and logs, available at http://fossil-scm.hwaci.com/fossil 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# ##################### 54d1e3537e 2007-11-10 aku: 5f7acef887 2007-11-10 aku: ## Pass V. This pass creates the initial set of project level 5f7acef887 2007-11-10 aku: ## revisions, aka changesets. Later passes will refine them, puts them 5f7acef887 2007-11-10 aku: ## into proper order, set their dependencies, etc. 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# ##################### 54d1e3537e 2007-11-10 aku: ## Requirements 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: package require Tcl 8.4 ; # Required runtime. 54d1e3537e 2007-11-10 aku: package require snit ; # OO system. 54d1e3537e 2007-11-10 aku: package require vc::tools::misc ; # Text formatting. 54d1e3537e 2007-11-10 aku: package require vc::tools::log ; # User feedback. 27ed4f7dc3 2008-02-16 aku: package require vc::tools::mem ; # Memory tracking. 5f7acef887 2007-11-10 aku: package require vc::fossil::import::cvs::repository ; # Repository management. 54d1e3537e 2007-11-10 aku: package require vc::fossil::import::cvs::state ; # State storage. bf83201c7f 2007-11-27 aku: package require vc::fossil::import::cvs::integrity ; # State integrity checks. 5f7acef887 2007-11-10 aku: package require vc::fossil::import::cvs::project::rev ; # Project level changesets 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# ##################### 54d1e3537e 2007-11-10 aku: ## Register the pass with the management 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: vc::fossil::import::cvs::pass define \ 54d1e3537e 2007-11-10 aku: InitCsets \ 54d1e3537e 2007-11-10 aku: {Initialize ChangeSets} \ 54d1e3537e 2007-11-10 aku: ::vc::fossil::import::cvs::pass::initcsets 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# ##################### 54d1e3537e 2007-11-10 aku: ## 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: snit::type ::vc::fossil::import::cvs::pass::initcsets { 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# 54d1e3537e 2007-11-10 aku: ## Public API 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: typemethod setup {} { 54d1e3537e 2007-11-10 aku: # Define the names and structure of the persistent state of 54d1e3537e 2007-11-10 aku: # this pass. 5f7acef887 2007-11-10 aku: e288af3995 2007-12-02 aku: state use project e288af3995 2007-12-02 aku: state use file e288af3995 2007-12-02 aku: state use revision e288af3995 2007-12-02 aku: state use revisionbranchchildren e288af3995 2007-12-02 aku: state use branch e288af3995 2007-12-02 aku: state use tag e288af3995 2007-12-02 aku: state use symbol e288af3995 2007-12-02 aku: state use meta 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: # Data per changeset, namely the project it belongs to, how it 5f7acef887 2007-11-10 aku: # was induced (revision or symbol), plus reference to the 5f7acef887 2007-11-10 aku: # primary entry causing it (meta entry or symbol). An adjunct 5f7acef887 2007-11-10 aku: # table translates the type id's into human readable labels. 5f7acef887 2007-11-10 aku: e288af3995 2007-12-02 aku: state extend changeset { 5f7acef887 2007-11-10 aku: cid INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 5f7acef887 2007-11-10 aku: pid INTEGER NOT NULL REFERENCES project, 5f7acef887 2007-11-10 aku: type INTEGER NOT NULL REFERENCES cstype, 5f7acef887 2007-11-10 aku: src INTEGER NOT NULL -- REFERENCES meta|symbol (type dependent) 5f7acef887 2007-11-10 aku: } e288af3995 2007-12-02 aku: state extend cstype { 5f7acef887 2007-11-10 aku: tid INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 5f7acef887 2007-11-10 aku: name TEXT NOT NULL, 5f7acef887 2007-11-10 aku: UNIQUE (name) 5f7acef887 2007-11-10 aku: } 215d2f1ad9 2007-11-29 aku: # Note: Keep the labels used here in sync with the names for 215d2f1ad9 2007-11-29 aku: # singleton helper classes for 'project::rev'. They are 215d2f1ad9 2007-11-29 aku: # the valid type names for changesets and also hardwired 215d2f1ad9 2007-11-29 aku: # in some code. 5f7acef887 2007-11-10 aku: state run { 5f7acef887 2007-11-10 aku: INSERT INTO cstype VALUES (0,'rev'); 215d2f1ad9 2007-11-29 aku: INSERT INTO cstype VALUES (1,'sym::tag'); 215d2f1ad9 2007-11-29 aku: INSERT INTO cstype VALUES (2,'sym::branch'); 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: 215d2f1ad9 2007-11-29 aku: # Map from changesets to the (file level) revisions, tags, or 215d2f1ad9 2007-11-29 aku: # branches they contain. The pos'ition provides an order of 215d2f1ad9 2007-11-29 aku: # the items within a changeset. They are unique within the 215d2f1ad9 2007-11-29 aku: # changeset. The items are in principle unique, if we were 215d2f1ad9 2007-11-29 aku: # looking only at relevant changesets. However as they come 215d2f1ad9 2007-11-29 aku: # from disparate sources the same id may have different 215d2f1ad9 2007-11-29 aku: # meaning, be in different changesets and so is formally not 215d2f1ad9 2007-11-29 aku: # unique. So we can only say that it is unique within the 215d2f1ad9 2007-11-29 aku: # changeset. The integrity module has stronger checks. 215d2f1ad9 2007-11-29 aku: e288af3995 2007-12-02 aku: state extend csitem { 5f7acef887 2007-11-10 aku: cid INTEGER NOT NULL REFERENCES changeset, 5f7acef887 2007-11-10 aku: pos INTEGER NOT NULL, 80b1e8936f 2007-11-29 aku: iid INTEGER NOT NULL, -- REFERENCES revision|tag|branch 5f7acef887 2007-11-10 aku: UNIQUE (cid, pos), 80b1e8936f 2007-11-29 aku: UNIQUE (cid, iid) 9c57055025 2007-12-02 aku: } { iid } 9c57055025 2007-12-02 aku: # Index on: iid (successor/predecessor retrieval) 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: project::rev getcstypes 54d1e3537e 2007-11-10 aku: return 54d1e3537e 2007-11-10 aku: } 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: typemethod load {} { 54d1e3537e 2007-11-10 aku: # Pass manager interface. Executed to load data computed by 54d1e3537e 2007-11-10 aku: # this pass into memory when this pass is skipped instead of 54d1e3537e 2007-11-10 aku: # executed. 24c0b662de 2007-11-13 aku: e288af3995 2007-12-02 aku: state use changeset e288af3995 2007-12-02 aku: state use csitem e288af3995 2007-12-02 aku: state use cstype e288af3995 2007-12-02 aku: 49dd66f64f 2008-01-30 aku: # Need the types first, the constructor used inside of the 49dd66f64f 2008-01-30 aku: # 'load' below uses them to assert the correctness of type 49dd66f64f 2008-01-30 aku: # names. 5f7acef887 2007-11-10 aku: project::rev getcstypes 9e1b461b2f 2008-01-30 aku: project::rev load ::vc::fossil::import::cvs::repository 65be27aa69 2007-11-22 aku: project::rev loadcounter 54d1e3537e 2007-11-10 aku: return 54d1e3537e 2007-11-10 aku: } 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: typemethod run {} { 54d1e3537e 2007-11-10 aku: # Pass manager interface. Executed to perform the 54d1e3537e 2007-11-10 aku: # functionality of the pass. 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: state transaction { f46458d5bd 2008-02-17 aku: CreateRevisionChangesets ; # Group file revisions into f46458d5bd 2008-02-17 aku: # preliminary csets and split f46458d5bd 2008-02-17 aku: # them based on internal f46458d5bd 2008-02-17 aku: # conflicts. f46458d5bd 2008-02-17 aku: CreateSymbolChangesets ; # Create csets for tags and f46458d5bd 2008-02-17 aku: # branches. 5f7acef887 2007-11-10 aku: } 8c6488ded2 2007-11-27 aku: 8c6488ded2 2007-11-27 aku: repository printcsetstatistics 8c6488ded2 2007-11-27 aku: integrity changesets f46458d5bd 2008-02-17 aku: f46458d5bd 2008-02-17 aku: # Load the changesets for use by the next passes. f46458d5bd 2008-02-17 aku: project::rev load ::vc::fossil::import::cvs::repository f46458d5bd 2008-02-17 aku: project::rev loadcounter 54d1e3537e 2007-11-10 aku: return 54d1e3537e 2007-11-10 aku: } 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: typemethod discard {} { 54d1e3537e 2007-11-10 aku: # Pass manager interface. Executed for all passes after the 54d1e3537e 2007-11-10 aku: # run passes, to remove all data of this pass from the state, 54d1e3537e 2007-11-10 aku: # as being out of date. 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: state discard changeset 5f7acef887 2007-11-10 aku: state discard cstype 80b1e8936f 2007-11-29 aku: state discard csitem 54d1e3537e 2007-11-10 aku: return 54d1e3537e 2007-11-10 aku: } 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# 54d1e3537e 2007-11-10 aku: ## Internal methods 54d1e3537e 2007-11-10 aku: 24c0b662de 2007-11-13 aku: proc CreateRevisionChangesets {} { 5f7acef887 2007-11-10 aku: log write 3 initcsets {Create changesets based on revisions} 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: # To get the initial of changesets we first group all file 5f7acef887 2007-11-10 aku: # level revisions using the same meta data entry together. As 5f7acef887 2007-11-10 aku: # the meta data encodes not only author and log message, but 5f7acef887 2007-11-10 aku: # also line of development and project we can be sure that 5f7acef887 2007-11-10 aku: # revisions in different project and lines of development are 5f7acef887 2007-11-10 aku: # not grouped together. In contrast to cvs2svn we do __not__ 5f7acef887 2007-11-10 aku: # use distance in time between revisions to break them 5f7acef887 2007-11-10 aku: # apart. We have seen CVS repositories (from SF) where a 5f7acef887 2007-11-10 aku: # single commit contained revisions several hours apart, 5f7acef887 2007-11-10 aku: # likely due to trouble on the server hosting the repository. 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: # We order the revisions here by time, this will help the 5f7acef887 2007-11-10 aku: # later passes (avoids joins later to get at the ordering 5f7acef887 2007-11-10 aku: # info). 5f7acef887 2007-11-10 aku: f46458d5bd 2008-02-17 aku: # The changesets made from these groups are immediately f46458d5bd 2008-02-17 aku: # inspected for internal conflicts and any such are broken by f46458d5bd 2008-02-17 aku: # splitting the problematic changeset into multiple f46458d5bd 2008-02-17 aku: # fragments. The results are changesets which have no internal f46458d5bd 2008-02-17 aku: # dependencies, only external ones. f46458d5bd 2008-02-17 aku: f46458d5bd 2008-02-17 aku: set n 0 f46458d5bd 2008-02-17 aku: set nx 0 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: set lastmeta {} 5f7acef887 2007-11-10 aku: set lastproject {} 5f7acef887 2007-11-10 aku: set revisions {} 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: # Note: We could have written this loop to create the csets 5f7acef887 2007-11-10 aku: # early, extending them with all their revisions. This 5f7acef887 2007-11-10 aku: # however would mean lots of (slow) method invokations 5f7acef887 2007-11-10 aku: # on the csets. Doing it like this, late creation, means 5f7acef887 2007-11-10 aku: # less such calls. None, but the creation itself. 5f7acef887 2007-11-10 aku: 27ed4f7dc3 2008-02-16 aku: log write 14 initcsets meta_begin 27ed4f7dc3 2008-02-16 aku: mem::mark 5f7acef887 2007-11-10 aku: foreach {mid rid pid} [state run { 5f7acef887 2007-11-10 aku: SELECT M.mid, R.rid, M.pid 5f7acef887 2007-11-10 aku: FROM revision R, meta M -- R ==> M, using PK index of M. 5f7acef887 2007-11-10 aku: WHERE R.mid = M.mid 5f7acef887 2007-11-10 aku: ORDER BY M.mid, R.date 5f7acef887 2007-11-10 aku: }] { 27ed4f7dc3 2008-02-16 aku: log write 14 initcsets meta_next 27ed4f7dc3 2008-02-16 aku: 5f7acef887 2007-11-10 aku: if {$lastmeta != $mid} { 5f7acef887 2007-11-10 aku: if {[llength $revisions]} { 5f7acef887 2007-11-10 aku: incr n 5f7acef887 2007-11-10 aku: set p [repository projectof $lastproject] 27ed4f7dc3 2008-02-16 aku: log write 14 initcsets meta_cset_begin 27ed4f7dc3 2008-02-16 aku: mem::mark f46458d5bd 2008-02-17 aku: set cset [project::rev %AUTO% $p rev $lastmeta $revisions] 27ed4f7dc3 2008-02-16 aku: log write 14 initcsets meta_cset_done b3d61d7829 2008-02-23 aku: set spawned [$cset breakinternaldependencies nx] f46458d5bd 2008-02-17 aku: $cset persist f46458d5bd 2008-02-17 aku: $cset destroy b3d61d7829 2008-02-23 aku: foreach cset $spawned { $cset persist ; $cset destroy } 27ed4f7dc3 2008-02-16 aku: mem::mark 5f7acef887 2007-11-10 aku: set revisions {} 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: set lastmeta $mid 5f7acef887 2007-11-10 aku: set lastproject $pid 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: lappend revisions $rid 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: if {[llength $revisions]} { 5f7acef887 2007-11-10 aku: incr n 5f7acef887 2007-11-10 aku: set p [repository projectof $lastproject] 27ed4f7dc3 2008-02-16 aku: log write 14 initcsets meta_cset_begin 27ed4f7dc3 2008-02-16 aku: mem::mark f46458d5bd 2008-02-17 aku: set cset [project::rev %AUTO% $p rev $lastmeta $revisions] 27ed4f7dc3 2008-02-16 aku: log write 14 initcsets meta_cset_done b3d61d7829 2008-02-23 aku: set spawned [$cset breakinternaldependencies nx] f46458d5bd 2008-02-17 aku: $cset persist f46458d5bd 2008-02-17 aku: $cset destroy b3d61d7829 2008-02-23 aku: foreach cset $spawned { $cset persist ; $cset destroy } 27ed4f7dc3 2008-02-16 aku: mem::mark 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: 27ed4f7dc3 2008-02-16 aku: log write 14 initcsets meta_done 27ed4f7dc3 2008-02-16 aku: mem::mark 27ed4f7dc3 2008-02-16 aku: f46458d5bd 2008-02-17 aku: log write 4 initcsets "Created and saved [nsp $n {revision changeset}]" f46458d5bd 2008-02-17 aku: log write 4 initcsets "Created and saved [nsp $nx {additional revision changeset}]" f46458d5bd 2008-02-17 aku: f46458d5bd 2008-02-17 aku: mem::mark f46458d5bd 2008-02-17 aku: log write 4 initcsets Ok. 5f7acef887 2007-11-10 aku: return 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: 24c0b662de 2007-11-13 aku: proc CreateSymbolChangesets {} { 5f7acef887 2007-11-10 aku: log write 3 initcsets {Create changesets based on symbols} 27ed4f7dc3 2008-02-16 aku: mem::mark 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: # Tags and branches induce changesets as well, containing the 5f7acef887 2007-11-10 aku: # revisions they are attached to (tags), or spawned from 5f7acef887 2007-11-10 aku: # (branches). 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: set n 0 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: # First process the tags, then the branches. We know that 5f7acef887 2007-11-10 aku: # their ids do not overlap with each other. 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: set lastsymbol {} 5f7acef887 2007-11-10 aku: set lastproject {} 27f093d23c 2007-11-29 aku: set tags {} 5f7acef887 2007-11-10 aku: 27f093d23c 2007-11-29 aku: foreach {sid tid pid} [state run { 215d2f1ad9 2007-11-29 aku: SELECT S.sid, T.tid, S.pid 215d2f1ad9 2007-11-29 aku: FROM tag T, symbol S -- T ==> R/S, using PK indices of R, S. 215d2f1ad9 2007-11-29 aku: WHERE T.sid = S.sid 215d2f1ad9 2007-11-29 aku: ORDER BY S.sid, T.tid 5f7acef887 2007-11-10 aku: }] { 5f7acef887 2007-11-10 aku: if {$lastsymbol != $sid} { 27f093d23c 2007-11-29 aku: if {[llength $tags]} { 5f7acef887 2007-11-10 aku: incr n 5f7acef887 2007-11-10 aku: set p [repository projectof $lastproject] f46458d5bd 2008-02-17 aku: set cset [project::rev %AUTO% $p sym::tag $lastsymbol $tags] 27f093d23c 2007-11-29 aku: set tags {} f46458d5bd 2008-02-17 aku: $cset persist f46458d5bd 2008-02-17 aku: $cset destroy 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: set lastsymbol $sid 5f7acef887 2007-11-10 aku: set lastproject $pid 5f7acef887 2007-11-10 aku: } 27f093d23c 2007-11-29 aku: lappend tags $tid 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: 27f093d23c 2007-11-29 aku: if {[llength $tags]} { 5f7acef887 2007-11-10 aku: incr n 5f7acef887 2007-11-10 aku: set p [repository projectof $lastproject] f46458d5bd 2008-02-17 aku: set cset [project::rev %AUTO% $p sym::tag $lastsymbol $tags] f46458d5bd 2008-02-17 aku: $cset persist f46458d5bd 2008-02-17 aku: $cset destroy 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: 5f7acef887 2007-11-10 aku: set lastsymbol {} 5f7acef887 2007-11-10 aku: set lasproject {} 27f093d23c 2007-11-29 aku: set branches {} 5f7acef887 2007-11-10 aku: 27f093d23c 2007-11-29 aku: foreach {sid bid pid} [state run { 215d2f1ad9 2007-11-29 aku: SELECT S.sid, B.bid, S.pid 215d2f1ad9 2007-11-29 aku: FROM branch B, symbol S -- B ==> R/S, using PK indices of R, S. 215d2f1ad9 2007-11-29 aku: WHERE B.sid = S.sid 215d2f1ad9 2007-11-29 aku: ORDER BY S.sid, B.bid 5f7acef887 2007-11-10 aku: }] { 5f7acef887 2007-11-10 aku: if {$lastsymbol != $sid} { 27f093d23c 2007-11-29 aku: if {[llength $branches]} { 5f7acef887 2007-11-10 aku: incr n 5f7acef887 2007-11-10 aku: set p [repository projectof $lastproject] f46458d5bd 2008-02-17 aku: set cset [project::rev %AUTO% $p sym::branch $lastsymbol $branches] 27f093d23c 2007-11-29 aku: set branches {} f46458d5bd 2008-02-17 aku: $cset persist f46458d5bd 2008-02-17 aku: $cset destroy 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: set lastsymbol $sid 5f7acef887 2007-11-10 aku: set lastproject $pid 5f7acef887 2007-11-10 aku: } 27f093d23c 2007-11-29 aku: lappend branches $bid 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: 27f093d23c 2007-11-29 aku: if {[llength $branches]} { 5f7acef887 2007-11-10 aku: incr n 5f7acef887 2007-11-10 aku: set p [repository projectof $lastproject] f46458d5bd 2008-02-17 aku: set cset [project::rev %AUTO% $p sym::branch $lastsymbol $branches] f46458d5bd 2008-02-17 aku: $cset persist f46458d5bd 2008-02-17 aku: $cset destroy 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: f46458d5bd 2008-02-17 aku: log write 4 initcsets "Created and saved [nsp $n {symbol changeset}]" f46458d5bd 2008-02-17 aku: mem::mark 5f7acef887 2007-11-10 aku: return 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# 54d1e3537e 2007-11-10 aku: ## Configuration 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: pragma -hasinstances no ; # singleton 54d1e3537e 2007-11-10 aku: pragma -hastypeinfo no ; # no introspection 54d1e3537e 2007-11-10 aku: pragma -hastypedestroy no ; # immortal 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# 54d1e3537e 2007-11-10 aku: } 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: namespace eval ::vc::fossil::import::cvs::pass { 54d1e3537e 2007-11-10 aku: namespace export initcsets 54d1e3537e 2007-11-10 aku: namespace eval initcsets { 5f7acef887 2007-11-10 aku: namespace import ::vc::fossil::import::cvs::repository 54d1e3537e 2007-11-10 aku: namespace import ::vc::fossil::import::cvs::state bf83201c7f 2007-11-27 aku: namespace import ::vc::fossil::import::cvs::integrity 5f7acef887 2007-11-10 aku: namespace eval project { 5f7acef887 2007-11-10 aku: namespace import ::vc::fossil::import::cvs::project::rev 27ed4f7dc3 2008-02-16 aku: } 27ed4f7dc3 2008-02-16 aku: namespace eval mem { 27ed4f7dc3 2008-02-16 aku: namespace import ::vc::tools::mem::mark 5f7acef887 2007-11-10 aku: } 5f7acef887 2007-11-10 aku: namespace import ::vc::tools::misc::* 54d1e3537e 2007-11-10 aku: namespace import ::vc::tools::log 54d1e3537e 2007-11-10 aku: log register initcsets 54d1e3537e 2007-11-10 aku: } 54d1e3537e 2007-11-10 aku: } 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: # # ## ### ##### ######## ############# ##################### 54d1e3537e 2007-11-10 aku: ## Ready 54d1e3537e 2007-11-10 aku: 54d1e3537e 2007-11-10 aku: package provide vc::fossil::import::cvs::pass::initcsets 1.0 54d1e3537e 2007-11-10 aku: return