Fossil SCM
Extended checks for looped changesets.
Commit
960645443b74f566f96d8e8e307aab467362c459
Parent
61829b076bd6e1b…
1 file changed
+10
-2
| --- tools/cvs2fossil/lib/c2f_cyclebreaker.tcl | ||
| +++ tools/cvs2fossil/lib/c2f_cyclebreaker.tcl | ||
| @@ -208,19 +208,19 @@ | ||
| 208 | 208 | # breaking the relevant changesets apart. So having |
| 209 | 209 | # one indicates big trouble in pass 5. We report them |
| 210 | 210 | # and dump internal structures to make it easier to |
| 211 | 211 | # trace the links causing the problem. |
| 212 | 212 | if {$succ eq $cset} { |
| 213 | - trouble fatal "Self-referencing changeset [$cset str]" | |
| 214 | 213 | log write 2 cyclebreaker "LOOP changeset [$cset str] __________________" |
| 215 | 214 | array set nmap [$cset nextmap] |
| 216 | 215 | foreach r [lsort -dict [array names nmap]] { |
| 217 | 216 | foreach succrev $nmap($r) { |
| 218 | 217 | log write 2 cyclebreaker \ |
| 219 | - "LOOP * rev <$r> --> rev <$succrev> --> cs [project::rev str [project::rev ofitem $succrev]]" | |
| 218 | + "LOOP * <$r> --> <$succrev> --> cs [[project::rev ofitem $succrev] str]" | |
| 220 | 219 | } |
| 221 | 220 | } |
| 221 | + trouble fatal "Self-referencing changeset [$cset str]" | |
| 222 | 222 | } |
| 223 | 223 | } |
| 224 | 224 | } |
| 225 | 225 | |
| 226 | 226 | if {$log} { |
| @@ -441,10 +441,18 @@ | ||
| 441 | 441 | # The new changesets may have dependencies outside of |
| 442 | 442 | # the chosen set. These are ignored |
| 443 | 443 | if {![$dg node exists $succ]} continue |
| 444 | 444 | $dg arc insert $cset $succ |
| 445 | 445 | if {$succ eq $cset} { |
| 446 | + log write 2 cyclebreaker "LOOP changeset [$cset str] __________________" | |
| 447 | + array set nmap [$cset nextmap] | |
| 448 | + foreach r [lsort -dict [array names nmap]] { | |
| 449 | + foreach succrev $nmap($r) { | |
| 450 | + log write 2 cyclebreaker \ | |
| 451 | + "LOOP * <$r> --> <$succrev> --> cs [[project::rev ofitem $succrev] str]" | |
| 452 | + } | |
| 453 | + } | |
| 446 | 454 | trouble internal "Self-referencing changeset [$cset str]" |
| 447 | 455 | } |
| 448 | 456 | } |
| 449 | 457 | } |
| 450 | 458 | foreach cset $pre { |
| 451 | 459 |
| --- tools/cvs2fossil/lib/c2f_cyclebreaker.tcl | |
| +++ tools/cvs2fossil/lib/c2f_cyclebreaker.tcl | |
| @@ -208,19 +208,19 @@ | |
| 208 | # breaking the relevant changesets apart. So having |
| 209 | # one indicates big trouble in pass 5. We report them |
| 210 | # and dump internal structures to make it easier to |
| 211 | # trace the links causing the problem. |
| 212 | if {$succ eq $cset} { |
| 213 | trouble fatal "Self-referencing changeset [$cset str]" |
| 214 | log write 2 cyclebreaker "LOOP changeset [$cset str] __________________" |
| 215 | array set nmap [$cset nextmap] |
| 216 | foreach r [lsort -dict [array names nmap]] { |
| 217 | foreach succrev $nmap($r) { |
| 218 | log write 2 cyclebreaker \ |
| 219 | "LOOP * rev <$r> --> rev <$succrev> --> cs [project::rev str [project::rev ofitem $succrev]]" |
| 220 | } |
| 221 | } |
| 222 | } |
| 223 | } |
| 224 | } |
| 225 | |
| 226 | if {$log} { |
| @@ -441,10 +441,18 @@ | |
| 441 | # The new changesets may have dependencies outside of |
| 442 | # the chosen set. These are ignored |
| 443 | if {![$dg node exists $succ]} continue |
| 444 | $dg arc insert $cset $succ |
| 445 | if {$succ eq $cset} { |
| 446 | trouble internal "Self-referencing changeset [$cset str]" |
| 447 | } |
| 448 | } |
| 449 | } |
| 450 | foreach cset $pre { |
| 451 |
| --- tools/cvs2fossil/lib/c2f_cyclebreaker.tcl | |
| +++ tools/cvs2fossil/lib/c2f_cyclebreaker.tcl | |
| @@ -208,19 +208,19 @@ | |
| 208 | # breaking the relevant changesets apart. So having |
| 209 | # one indicates big trouble in pass 5. We report them |
| 210 | # and dump internal structures to make it easier to |
| 211 | # trace the links causing the problem. |
| 212 | if {$succ eq $cset} { |
| 213 | log write 2 cyclebreaker "LOOP changeset [$cset str] __________________" |
| 214 | array set nmap [$cset nextmap] |
| 215 | foreach r [lsort -dict [array names nmap]] { |
| 216 | foreach succrev $nmap($r) { |
| 217 | log write 2 cyclebreaker \ |
| 218 | "LOOP * <$r> --> <$succrev> --> cs [[project::rev ofitem $succrev] str]" |
| 219 | } |
| 220 | } |
| 221 | trouble fatal "Self-referencing changeset [$cset str]" |
| 222 | } |
| 223 | } |
| 224 | } |
| 225 | |
| 226 | if {$log} { |
| @@ -441,10 +441,18 @@ | |
| 441 | # The new changesets may have dependencies outside of |
| 442 | # the chosen set. These are ignored |
| 443 | if {![$dg node exists $succ]} continue |
| 444 | $dg arc insert $cset $succ |
| 445 | if {$succ eq $cset} { |
| 446 | log write 2 cyclebreaker "LOOP changeset [$cset str] __________________" |
| 447 | array set nmap [$cset nextmap] |
| 448 | foreach r [lsort -dict [array names nmap]] { |
| 449 | foreach succrev $nmap($r) { |
| 450 | log write 2 cyclebreaker \ |
| 451 | "LOOP * <$r> --> <$succrev> --> cs [[project::rev ofitem $succrev] str]" |
| 452 | } |
| 453 | } |
| 454 | trouble internal "Self-referencing changeset [$cset str]" |
| 455 | } |
| 456 | } |
| 457 | } |
| 458 | foreach cset $pre { |
| 459 |