Diff
Not logged in

Differences From:

File tools/cvs2fossil/lib/c2f_cyclebreaker.tcl part of check-in [960645443b] - Extended checks for looped changesets. by aku on 2007-11-29 09:13:07. [view]

To:

File tools/cvs2fossil/lib/c2f_cyclebreaker.tcl part of check-in [b42cff97e3] - Replaced the checks for self-referential changesets in the cycle breaker with a scheme in the changeset class doing checks when splitting a changeset, which is also called by the general changeset integrity code, after each pass. Extended log output at high verbosity levels. Thorough checking of the fragments a changeset is to be split into. by aku on 2007-11-30 03:57:19. [view]

@@ -198,29 +198,8 @@
 		# Changesets may have dependencies outside of the
 		# chosen set. These are ignored
 		if {![$dg node exists $succ]} continue
 		$dg arc insert $cset $succ
-
-		# Check for changesets referencing themselves. Such a
-		# loop shows that the changeset in question has
-		# internal dependencies. Something which is supposed
-		# to be not possible, as pass 5 (InitCsets) takes care
-		# to transform internal into external dependencies by
-		# breaking the relevant changesets apart. So having
-		# one indicates big trouble in pass 5. We report them
-		# and dump internal structures to make it easier to
-		# trace the links causing the problem.
-		if {$succ eq $cset} {
-		    log write 2 cyclebreaker "LOOP changeset [$cset str] __________________"
-		    array set nmap [$cset nextmap]
-		    foreach r [lsort -dict [array names nmap]] {
-			foreach succrev $nmap($r) {
-			    log write 2 cyclebreaker \
-				"LOOP * <$r> --> <$succrev> --> cs [[project::rev ofitem $succrev] str]"
-			}
-		    }
-		    trouble fatal "Self-referencing changeset [$cset str]"
-		}
 	    }
 	}
 
 	if {$log} {
@@ -233,11 +212,8 @@
 	if {$log} { Mark $dg -start }
 	MarkWatch $dg
 	PreHook   $dg
 	MarkWatch $dg
-
-	# This kills the application if loops (see above) were found.
-	trouble abort?
 	return  $dg
     }
 
     # Instead of searching the whole graph for the degree-0 nodes in
@@ -441,19 +417,8 @@
 		# The new changesets may have dependencies outside of
 		# the chosen set. These are ignored
 		if {![$dg node exists $succ]} continue
 		$dg arc insert $cset $succ
-		if {$succ eq $cset} {
-		    log write 2 cyclebreaker "LOOP changeset [$cset str] __________________"
-		    array set nmap [$cset nextmap]
-		    foreach r [lsort -dict [array names nmap]] {
-			foreach succrev $nmap($r) {
-			    log write 2 cyclebreaker \
-				"LOOP * <$r> --> <$succrev> --> cs [[project::rev ofitem $succrev] str]"
-			}
-		    }
-		    trouble internal "Self-referencing changeset [$cset str]"
-		}
 	    }
 	}
 	foreach cset $pre {
 	    foreach succ [$cset successors] {