Diff
Not logged in

Differences From:

File tools/cvs2fossil/lib/c2f_pfiltersym.tcl part of check-in [37734390ca] - Pass 4 nearly completed. Rewrite symbol mutation, completed adjustment of symbol parents, added symbol refinement (noop or not flags). Now only missing piece is replication of the pass 2 paranoia checks. Note: Checks in the adjustment of parents are a bottleneck. May need indices, or something we can do in memory. by aku on 2007-11-07 06:22:32. [view]

To:

File tools/cvs2fossil/lib/c2f_pfiltersym.tcl part of check-in [131f051880] - Moved the paranoid integrity checks of pass 2 into a separate package for use by other passes, and changed pass 4 to also run these checks, albeit in a (slightly) relaxed form. See the comments at the point of call for the reason. This completes pass 4. by aku on 2007-11-09 06:28:19. [view]

@@ -21,8 +21,9 @@
 package require snit                                  ; # OO system.
 package require vc::tools::misc                       ; # Text formatting.
 package require vc::tools::log                        ; # User feedback.
 package require vc::fossil::import::cvs::state        ; # State storage.
+package require vc::fossil::import::cvs::integrity    ; # State storage integrity checks.
 package require vc::fossil::import::cvs::project::sym ; # Project level symbols
 
 # # ## ### ##### ######## ############# #####################
 ## Register the pass with the management
@@ -80,9 +81,21 @@
 	    MutateSymbols
 	    AdjustParents
 	    RefineSymbols
 
-	    # Consider a rerun of the pass 2 paranoia checks.
+	    # Strict integrity enforces that all meta entries are in
+	    # the same LOD as the revision using them. At this point
+	    # this may not be true any longer. If a NTDB was excluded
+	    # then all revisions it shared with the trunk were moved
+	    # to the trunk LOD, however their meta entries will still
+	    # refer to the now gone LOD symbol. This is fine however,
+	    # it will not affect our ability to use the meta entries
+	    # to distinguish and group revisions into changesets. It
+	    # should be noted that we cannot simply switch the meta
+	    # entries over to the trunk either, as that may cause the
+	    # modified entries to violate the unique-ness constrain
+	    # set on that table.
+	    integrity metarelaxed
 	}
 
 	log write 1 filtersym "Filtering completed"
 	return
@@ -479,8 +492,9 @@
 namespace eval ::vc::fossil::import::cvs::pass {
     namespace export filtersym
     namespace eval filtersym {
 	namespace import ::vc::fossil::import::cvs::state
+	namespace import ::vc::fossil::import::cvs::integrity
 	namespace eval project {
 	    namespace import ::vc::fossil::import::cvs::project::sym
 	}
 	namespace import ::vc::tools::misc::nsp