| | @@ -153,11 +153,11 @@ |
| 153 | 153 | set dg [struct::graph dg] |
| 154 | 154 | |
| 155 | 155 | foreach cset $changesets { |
| 156 | 156 | $dg node insert $cset |
| 157 | 157 | $dg node set $cset timerange [$cset timerange] |
| 158 | | - $dg node set $cset label [ID $cset] |
| 158 | + $dg node set $cset label [$cset str] |
| 159 | 159 | $dg node set $cset __id__ [$cset id] |
| 160 | 160 | } |
| 161 | 161 | |
| 162 | 162 | # 2. Find for all relevant changeset their revisions and their |
| 163 | 163 | # dependencies. Map the latter back to changesets and |
| | @@ -182,17 +182,17 @@ |
| 182 | 182 | # breaking the relevant changesets apart. So having |
| 183 | 183 | # one indicates big trouble in pass 5. We report them |
| 184 | 184 | # and dump internal structures to make it easier to |
| 185 | 185 | # trace the links causing the problem. |
| 186 | 186 | if {$succ eq $cset} { |
| 187 | | - trouble fatal "Self-referencing changeset <[$cset id]>" |
| 188 | | - log write 2 cyclebreaker "LOOP changeset <[$cset id]> __________________" |
| 187 | + trouble fatal "Self-referencing changeset [$cset str]" |
| 188 | + log write 2 cyclebreaker "LOOP changeset [$cset str] __________________" |
| 189 | 189 | array set nmap [$cset nextmap] |
| 190 | 190 | foreach r [lsort -dict [array names nmap]] { |
| 191 | 191 | foreach succrev $nmap($r) { |
| 192 | 192 | log write 2 cyclebreaker \ |
| 193 | | - "LOOP * rev <$r> --> rev <$succrev> --> cs [join [struct::list map [project::rev ofrev $succrev] [myproc ID]] { }]" |
| 193 | + "LOOP * rev <$r> --> rev <$succrev> --> cs [project::rev strlist [project::rev ofrev $succrev]]" |
| 194 | 194 | } |
| 195 | 195 | } |
| 196 | 196 | } |
| 197 | 197 | } |
| 198 | 198 | } |
| | @@ -262,11 +262,11 @@ |
| 262 | 262 | log write 10 cyclebreaker \ |
| 263 | 263 | "Pending: [struct::list map $mybottom [myproc FormatPendingItem]]" |
| 264 | 264 | return |
| 265 | 265 | } |
| 266 | 266 | |
| 267 | | - proc FormatPendingItem {item} { lreplace $item 0 0 <[[lindex $item 0] id]> } |
| 267 | + proc FormatPendingItem {item} { lreplace $item 0 0 [[lindex $item 0] str] } |
| 268 | 268 | |
| 269 | 269 | proc FindCycle {dg} { |
| 270 | 270 | # This procedure is run if and only the graph is not empty and |
| 271 | 271 | # all nodes have predecessors. This means that each node is |
| 272 | 272 | # either part of a cycle or (indirectly) depending on a node |
| | @@ -298,20 +298,18 @@ |
| 298 | 298 | } |
| 299 | 299 | |
| 300 | 300 | return [struct::list reverse [lrange $path $seen($start) end]] |
| 301 | 301 | } |
| 302 | 302 | |
| 303 | | - proc ID {cset} { return "<[$cset id]>" } |
| 304 | | - |
| 305 | 303 | proc BreakCycle {dg cycle} { |
| 306 | 304 | # The cycle we have gotten is broken by breaking apart one or |
| 307 | 305 | # more of the changesets in the cycle. This causes us to |
| 308 | 306 | # create one or more changesets which are to be committed, |
| 309 | 307 | # added to the graph, etc. pp. |
| 310 | 308 | |
| 311 | 309 | # NOTE/TODO. Move this map operation to project::rev, as typemethod. |
| 312 | | - set cprint [join [struct::list map $cycle [myproc ID]] { }] |
| 310 | + set cprint [project::rev strlist $cycle] |
| 313 | 311 | |
| 314 | 312 | lappend cycle [lindex $cycle 0] [lindex $cycle 1] |
| 315 | 313 | set bestlink {} |
| 316 | 314 | set bestnode {} |
| 317 | 315 | |
| | @@ -336,11 +334,11 @@ |
| 336 | 334 | } else { |
| 337 | 335 | $link destroy |
| 338 | 336 | } |
| 339 | 337 | } |
| 340 | 338 | |
| 341 | | - log write 5 cyclebreaker "Breaking cycle ($cprint) by splitting changeset <[$bestnode id]>" |
| 339 | + log write 5 cyclebreaker "Breaking cycle ($cprint) by splitting changeset [$bestnode str]" |
| 342 | 340 | set ID [$bestnode id] |
| 343 | 341 | Mark $dg -${ID}-before |
| 344 | 342 | |
| 345 | 343 | set newcsets [$bestlink break] |
| 346 | 344 | $bestlink destroy |
| | @@ -388,11 +386,11 @@ |
| 388 | 386 | $dg node delete $n |
| 389 | 387 | |
| 390 | 388 | foreach cset $replacements { |
| 391 | 389 | $dg node insert $cset |
| 392 | 390 | $dg node set $cset timerange [$cset timerange] |
| 393 | | - $dg node set $cset label [ID $cset] |
| 391 | + $dg node set $cset label [$cset str] |
| 394 | 392 | $dg node set $cset __id__ [$cset id] |
| 395 | 393 | } |
| 396 | 394 | |
| 397 | 395 | foreach cset $replacements { |
| 398 | 396 | foreach succ [$cset successors] { |
| | @@ -399,11 +397,11 @@ |
| 399 | 397 | # The new changesets may have dependencies outside of |
| 400 | 398 | # the chosen set. These are ignored |
| 401 | 399 | if {![$dg node exists $succ]} continue |
| 402 | 400 | $dg arc insert $cset $succ |
| 403 | 401 | if {$succ eq $cset} { |
| 404 | | - trouble internal "Self-referencing changeset <[$cset id]>" |
| 402 | + trouble internal "Self-referencing changeset [$cset str]" |
| 405 | 403 | } |
| 406 | 404 | } |
| 407 | 405 | } |
| 408 | 406 | foreach cset $pre { |
| 409 | 407 | foreach succ [$cset successors] { |
| 410 | 408 | |