Fossil SCM
Bugfix. When setting up or extended the changeset graph a changeset's successor may lay outside of the set of changesets under consideration, i.e. without a node in the graph. Ignore these. This did not (or only rarely) happen before the bugfix to the successor computation of changesets in project::rev (list instead of single).
Commit
de64c94f548995fe1a9cec764a97cc5c4abcc39a
Parent
2516f4a56d8381a…
1 file changed
+9
-3
| --- tools/cvs2fossil/lib/c2f_pbreakrcycle.tcl | ||
| +++ tools/cvs2fossil/lib/c2f_pbreakrcycle.tcl | ||
| @@ -99,10 +99,13 @@ | ||
| 99 | 99 | |
| 100 | 100 | state transaction { |
| 101 | 101 | foreach cset [project::rev all] { |
| 102 | 102 | if {[$cset bysymbol]} continue |
| 103 | 103 | foreach succ [$cset successors] { |
| 104 | + # Changesets may have dependencies outside of the | |
| 105 | + # chosen set. These are ignored | |
| 106 | + if {![dg node exists $succ]} continue | |
| 104 | 107 | dg arc insert $cset $succ |
| 105 | 108 | } |
| 106 | 109 | } |
| 107 | 110 | } |
| 108 | 111 | |
| @@ -284,17 +287,20 @@ | ||
| 284 | 287 | # the fragments generated for it. |
| 285 | 288 | |
| 286 | 289 | $dg node delete $bestnode |
| 287 | 290 | |
| 288 | 291 | foreach cset $newcsets { |
| 289 | - dg node insert $cset | |
| 290 | - dg node set $cset timerange [$cset timerange] | |
| 292 | + $dg node insert $cset | |
| 293 | + $dg node set $cset timerange [$cset timerange] | |
| 291 | 294 | } |
| 292 | 295 | |
| 293 | 296 | foreach cset $newcsets { |
| 294 | 297 | foreach succ [$cset successors] { |
| 295 | - dg arc insert $cset $succ | |
| 298 | + # Changesets may have dependencies outside of the | |
| 299 | + # chosen set. These are ignored | |
| 300 | + if {![dg node exists $succ]} continue | |
| 301 | + $dg arc insert $cset $succ | |
| 296 | 302 | } |
| 297 | 303 | } |
| 298 | 304 | return |
| 299 | 305 | } |
| 300 | 306 | |
| 301 | 307 |
| --- tools/cvs2fossil/lib/c2f_pbreakrcycle.tcl | |
| +++ tools/cvs2fossil/lib/c2f_pbreakrcycle.tcl | |
| @@ -99,10 +99,13 @@ | |
| 99 | |
| 100 | state transaction { |
| 101 | foreach cset [project::rev all] { |
| 102 | if {[$cset bysymbol]} continue |
| 103 | foreach succ [$cset successors] { |
| 104 | dg arc insert $cset $succ |
| 105 | } |
| 106 | } |
| 107 | } |
| 108 | |
| @@ -284,17 +287,20 @@ | |
| 284 | # the fragments generated for it. |
| 285 | |
| 286 | $dg node delete $bestnode |
| 287 | |
| 288 | foreach cset $newcsets { |
| 289 | dg node insert $cset |
| 290 | dg node set $cset timerange [$cset timerange] |
| 291 | } |
| 292 | |
| 293 | foreach cset $newcsets { |
| 294 | foreach succ [$cset successors] { |
| 295 | dg arc insert $cset $succ |
| 296 | } |
| 297 | } |
| 298 | return |
| 299 | } |
| 300 | |
| 301 |
| --- tools/cvs2fossil/lib/c2f_pbreakrcycle.tcl | |
| +++ tools/cvs2fossil/lib/c2f_pbreakrcycle.tcl | |
| @@ -99,10 +99,13 @@ | |
| 99 | |
| 100 | state transaction { |
| 101 | foreach cset [project::rev all] { |
| 102 | if {[$cset bysymbol]} continue |
| 103 | foreach succ [$cset successors] { |
| 104 | # Changesets may have dependencies outside of the |
| 105 | # chosen set. These are ignored |
| 106 | if {![dg node exists $succ]} continue |
| 107 | dg arc insert $cset $succ |
| 108 | } |
| 109 | } |
| 110 | } |
| 111 | |
| @@ -284,17 +287,20 @@ | |
| 287 | # the fragments generated for it. |
| 288 | |
| 289 | $dg node delete $bestnode |
| 290 | |
| 291 | foreach cset $newcsets { |
| 292 | $dg node insert $cset |
| 293 | $dg node set $cset timerange [$cset timerange] |
| 294 | } |
| 295 | |
| 296 | foreach cset $newcsets { |
| 297 | foreach succ [$cset successors] { |
| 298 | # Changesets may have dependencies outside of the |
| 299 | # chosen set. These are ignored |
| 300 | if {![dg node exists $succ]} continue |
| 301 | $dg arc insert $cset $succ |
| 302 | } |
| 303 | } |
| 304 | return |
| 305 | } |
| 306 | |
| 307 |