Diff
Not logged in

Differences From:

File tools/cvs2fossil/lib/c2f_cyclebreaker.tcl part of check-in [eabaea870a] - Added a number of assertions and must-not-happens with associated log output. Plus some small tweaks, and notes. by aku on 2007-11-24 04:15:46. [view]

To:

File tools/cvs2fossil/lib/c2f_cyclebreaker.tcl part of check-in [87cf609021] - Created convenience methods to create the human readable repesentation of a changeset and lists of such, and made liberal use of them. by aku on 2007-11-24 05:31:30. [view]

@@ -154,9 +154,9 @@
 
 	foreach cset $changesets {
 	    $dg node insert $cset
 	    $dg node set    $cset timerange [$cset timerange]
-	    $dg node set    $cset label     [ID $cset]
+	    $dg node set    $cset label     [$cset str]
 	    $dg node set    $cset __id__    [$cset id]
 	}
 
 	# 2. Find for all relevant changeset their revisions and their
@@ -183,15 +183,15 @@
 		# 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} {
-		    trouble fatal "Self-referencing changeset <[$cset id]>"
-		    log write 2 cyclebreaker "LOOP changeset <[$cset id]> __________________"
+		    trouble fatal "Self-referencing changeset [$cset str]"
+		    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 * rev <$r> --> rev <$succrev> --> cs [join [struct::list map [project::rev ofrev $succrev] [myproc ID]] { }]"
+				"LOOP * rev <$r> --> rev <$succrev> --> cs [project::rev strlist [project::rev ofrev $succrev]]"
 			}
 		    }
 		}
 	    }
@@ -263,9 +263,9 @@
 	    "Pending: [struct::list map $mybottom [myproc FormatPendingItem]]"
 	return
     }
 
-    proc FormatPendingItem {item} { lreplace $item 0 0 <[[lindex $item 0] id]> }
+    proc FormatPendingItem {item} { lreplace $item 0 0 [[lindex $item 0] str] }
 
     proc FindCycle {dg} {
 	# This procedure is run if and only the graph is not empty and
 	# all nodes have predecessors. This means that each node is
@@ -299,18 +299,16 @@
 
 	return [struct::list reverse [lrange $path $seen($start) end]]
     }
 
-    proc ID {cset} { return "<[$cset id]>" }
-
     proc BreakCycle {dg cycle} {
 	# The cycle we have gotten is broken by breaking apart one or
 	# more of the changesets in the cycle. This causes us to
 	# create one or more changesets which are to be committed,
 	# added to the graph, etc. pp.
 
 	# NOTE/TODO. Move this map operation to project::rev, as typemethod.
-	set cprint [join [struct::list map $cycle [myproc ID]] { }]
+	set cprint [project::rev strlist $cycle]
 
 	lappend cycle [lindex $cycle 0] [lindex $cycle 1]
 	set bestlink {}
 	set bestnode {}
@@ -337,9 +335,9 @@
 		    $link destroy
 		}
 	    }
 
-	log write 5 cyclebreaker "Breaking cycle ($cprint) by splitting changeset <[$bestnode id]>"
+	log write 5 cyclebreaker "Breaking cycle ($cprint) by splitting changeset [$bestnode str]"
 	set ID [$bestnode id]
 	Mark $dg -${ID}-before
 
 	set newcsets [$bestlink break]
@@ -389,9 +387,9 @@
 
 	foreach cset $replacements {
 	    $dg node insert $cset
 	    $dg node set    $cset timerange [$cset timerange]
-	    $dg node set    $cset label     [ID $cset]
+	    $dg node set    $cset label     [$cset str]
 	    $dg node set    $cset __id__    [$cset id]
 	}
 
 	foreach cset $replacements {
@@ -400,9 +398,9 @@
 		# the chosen set. These are ignored
 		if {![$dg node exists $succ]} continue
 		$dg arc insert $cset $succ
 		if {$succ eq $cset} {
-		    trouble internal "Self-referencing changeset <[$cset id]>"
+		    trouble internal "Self-referencing changeset [$cset str]"
 		}
 	    }
 	}
 	foreach cset $pre {