Fossil SCM
Merged bugfix [b3d61d7829] into this semi-abandoned branch just in case we will work on it again. Do it now instead of forgetting it later.
Commit
383c10f0048f1b5896dc6410cebcfeb8b525e17c
Parent
faf57d7462b47d7…
3 files changed
+4
-2
+4
-2
+4
-2
| --- tools/cvs2fossil/lib/c2f_pinitcsets.tcl | ||
| +++ tools/cvs2fossil/lib/c2f_pinitcsets.tcl | ||
| @@ -211,13 +211,14 @@ | ||
| 211 | 211 | set p [repository projectof $lastproject] |
| 212 | 212 | log write 14 initcsets meta_cset_begin |
| 213 | 213 | mem::mark |
| 214 | 214 | set cset [project::rev %AUTO% $p rev $lastmeta $revisions] |
| 215 | 215 | log write 14 initcsets meta_cset_done |
| 216 | - $cset breakinternaldependencies nx | |
| 216 | + set spawned [$cset breakinternaldependencies nx] | |
| 217 | 217 | $cset persist |
| 218 | 218 | $cset destroy |
| 219 | + foreach cset $spawned { $cset persist ; $cset destroy } | |
| 219 | 220 | mem::mark |
| 220 | 221 | set revisions {} |
| 221 | 222 | } |
| 222 | 223 | set lastmeta $mid |
| 223 | 224 | set lastproject $pid |
| @@ -230,13 +231,14 @@ | ||
| 230 | 231 | set p [repository projectof $lastproject] |
| 231 | 232 | log write 14 initcsets meta_cset_begin |
| 232 | 233 | mem::mark |
| 233 | 234 | set cset [project::rev %AUTO% $p rev $lastmeta $revisions] |
| 234 | 235 | log write 14 initcsets meta_cset_done |
| 235 | - $cset breakinternaldependencies nx | |
| 236 | + set spawned [$cset breakinternaldependencies nx] | |
| 236 | 237 | $cset persist |
| 237 | 238 | $cset destroy |
| 239 | + foreach cset $spawned { $cset persist ; $cset destroy } | |
| 238 | 240 | mem::mark |
| 239 | 241 | } |
| 240 | 242 | |
| 241 | 243 | log write 14 initcsets meta_done |
| 242 | 244 | mem::mark |
| 243 | 245 |
| --- tools/cvs2fossil/lib/c2f_pinitcsets.tcl | |
| +++ tools/cvs2fossil/lib/c2f_pinitcsets.tcl | |
| @@ -211,13 +211,14 @@ | |
| 211 | set p [repository projectof $lastproject] |
| 212 | log write 14 initcsets meta_cset_begin |
| 213 | mem::mark |
| 214 | set cset [project::rev %AUTO% $p rev $lastmeta $revisions] |
| 215 | log write 14 initcsets meta_cset_done |
| 216 | $cset breakinternaldependencies nx |
| 217 | $cset persist |
| 218 | $cset destroy |
| 219 | mem::mark |
| 220 | set revisions {} |
| 221 | } |
| 222 | set lastmeta $mid |
| 223 | set lastproject $pid |
| @@ -230,13 +231,14 @@ | |
| 230 | set p [repository projectof $lastproject] |
| 231 | log write 14 initcsets meta_cset_begin |
| 232 | mem::mark |
| 233 | set cset [project::rev %AUTO% $p rev $lastmeta $revisions] |
| 234 | log write 14 initcsets meta_cset_done |
| 235 | $cset breakinternaldependencies nx |
| 236 | $cset persist |
| 237 | $cset destroy |
| 238 | mem::mark |
| 239 | } |
| 240 | |
| 241 | log write 14 initcsets meta_done |
| 242 | mem::mark |
| 243 |
| --- tools/cvs2fossil/lib/c2f_pinitcsets.tcl | |
| +++ tools/cvs2fossil/lib/c2f_pinitcsets.tcl | |
| @@ -211,13 +211,14 @@ | |
| 211 | set p [repository projectof $lastproject] |
| 212 | log write 14 initcsets meta_cset_begin |
| 213 | mem::mark |
| 214 | set cset [project::rev %AUTO% $p rev $lastmeta $revisions] |
| 215 | log write 14 initcsets meta_cset_done |
| 216 | set spawned [$cset breakinternaldependencies nx] |
| 217 | $cset persist |
| 218 | $cset destroy |
| 219 | foreach cset $spawned { $cset persist ; $cset destroy } |
| 220 | mem::mark |
| 221 | set revisions {} |
| 222 | } |
| 223 | set lastmeta $mid |
| 224 | set lastproject $pid |
| @@ -230,13 +231,14 @@ | |
| 231 | set p [repository projectof $lastproject] |
| 232 | log write 14 initcsets meta_cset_begin |
| 233 | mem::mark |
| 234 | set cset [project::rev %AUTO% $p rev $lastmeta $revisions] |
| 235 | log write 14 initcsets meta_cset_done |
| 236 | set spawned [$cset breakinternaldependencies nx] |
| 237 | $cset persist |
| 238 | $cset destroy |
| 239 | foreach cset $spawned { $cset persist ; $cset destroy } |
| 240 | mem::mark |
| 241 | } |
| 242 | |
| 243 | log write 14 initcsets meta_done |
| 244 | mem::mark |
| 245 |
| --- tools/cvs2fossil/lib/c2f_prev.tcl | ||
| +++ tools/cvs2fossil/lib/c2f_prev.tcl | ||
| @@ -198,11 +198,11 @@ | ||
| 198 | 198 | # the state, and limited to successors within the changeset. |
| 199 | 199 | |
| 200 | 200 | array set dependencies {} |
| 201 | 201 | $mytypeobj internalsuccessors dependencies $myitems |
| 202 | 202 | if {![array size dependencies]} { |
| 203 | - return 0 | |
| 203 | + return {} | |
| 204 | 204 | } ; # Nothing to break. |
| 205 | 205 | |
| 206 | 206 | log write 5 csets ...[$self str]....................................................... |
| 207 | 207 | vc::tools::mem::mark |
| 208 | 208 | |
| @@ -304,10 +304,11 @@ | ||
| 304 | 304 | |
| 305 | 305 | # Create changesets for the fragments, reusing the current one |
| 306 | 306 | # for the first fragment. We sort them in order to allow |
| 307 | 307 | # checking for gaps and nice messages. |
| 308 | 308 | |
| 309 | + set newcsets {} | |
| 309 | 310 | set fragments [lsort -index 0 -integer $fragments] |
| 310 | 311 | |
| 311 | 312 | #puts \t.[join [PRs $fragments] .\n\t.]. |
| 312 | 313 | |
| 313 | 314 | Border [lindex $fragments 0] firsts firste |
| @@ -318,10 +319,11 @@ | ||
| 318 | 319 | foreach fragment [lrange $fragments 1 end] { |
| 319 | 320 | Border $fragment s e |
| 320 | 321 | integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap} |
| 321 | 322 | |
| 322 | 323 | set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]] |
| 324 | + lappend newcsets $new | |
| 323 | 325 | incr counter |
| 324 | 326 | |
| 325 | 327 | log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)" |
| 326 | 328 | |
| 327 | 329 | set laste $e |
| @@ -343,11 +345,11 @@ | ||
| 343 | 345 | set key [list $mytype $iid] |
| 344 | 346 | #set myitemmap($key) $self |
| 345 | 347 | log write 8 csets {MAP+ item <$key> $self = [$self str]} |
| 346 | 348 | } |
| 347 | 349 | |
| 348 | - return 1 | |
| 350 | + return $newcsets | |
| 349 | 351 | } |
| 350 | 352 | |
| 351 | 353 | method persist {} { |
| 352 | 354 | set tid $mycstype($mytype) |
| 353 | 355 | set pid [$myproject id] |
| 354 | 356 |
| --- tools/cvs2fossil/lib/c2f_prev.tcl | |
| +++ tools/cvs2fossil/lib/c2f_prev.tcl | |
| @@ -198,11 +198,11 @@ | |
| 198 | # the state, and limited to successors within the changeset. |
| 199 | |
| 200 | array set dependencies {} |
| 201 | $mytypeobj internalsuccessors dependencies $myitems |
| 202 | if {![array size dependencies]} { |
| 203 | return 0 |
| 204 | } ; # Nothing to break. |
| 205 | |
| 206 | log write 5 csets ...[$self str]....................................................... |
| 207 | vc::tools::mem::mark |
| 208 | |
| @@ -304,10 +304,11 @@ | |
| 304 | |
| 305 | # Create changesets for the fragments, reusing the current one |
| 306 | # for the first fragment. We sort them in order to allow |
| 307 | # checking for gaps and nice messages. |
| 308 | |
| 309 | set fragments [lsort -index 0 -integer $fragments] |
| 310 | |
| 311 | #puts \t.[join [PRs $fragments] .\n\t.]. |
| 312 | |
| 313 | Border [lindex $fragments 0] firsts firste |
| @@ -318,10 +319,11 @@ | |
| 318 | foreach fragment [lrange $fragments 1 end] { |
| 319 | Border $fragment s e |
| 320 | integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap} |
| 321 | |
| 322 | set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]] |
| 323 | incr counter |
| 324 | |
| 325 | log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)" |
| 326 | |
| 327 | set laste $e |
| @@ -343,11 +345,11 @@ | |
| 343 | set key [list $mytype $iid] |
| 344 | #set myitemmap($key) $self |
| 345 | log write 8 csets {MAP+ item <$key> $self = [$self str]} |
| 346 | } |
| 347 | |
| 348 | return 1 |
| 349 | } |
| 350 | |
| 351 | method persist {} { |
| 352 | set tid $mycstype($mytype) |
| 353 | set pid [$myproject id] |
| 354 |
| --- tools/cvs2fossil/lib/c2f_prev.tcl | |
| +++ tools/cvs2fossil/lib/c2f_prev.tcl | |
| @@ -198,11 +198,11 @@ | |
| 198 | # the state, and limited to successors within the changeset. |
| 199 | |
| 200 | array set dependencies {} |
| 201 | $mytypeobj internalsuccessors dependencies $myitems |
| 202 | if {![array size dependencies]} { |
| 203 | return {} |
| 204 | } ; # Nothing to break. |
| 205 | |
| 206 | log write 5 csets ...[$self str]....................................................... |
| 207 | vc::tools::mem::mark |
| 208 | |
| @@ -304,10 +304,11 @@ | |
| 304 | |
| 305 | # Create changesets for the fragments, reusing the current one |
| 306 | # for the first fragment. We sort them in order to allow |
| 307 | # checking for gaps and nice messages. |
| 308 | |
| 309 | set newcsets {} |
| 310 | set fragments [lsort -index 0 -integer $fragments] |
| 311 | |
| 312 | #puts \t.[join [PRs $fragments] .\n\t.]. |
| 313 | |
| 314 | Border [lindex $fragments 0] firsts firste |
| @@ -318,10 +319,11 @@ | |
| 319 | foreach fragment [lrange $fragments 1 end] { |
| 320 | Border $fragment s e |
| 321 | integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap} |
| 322 | |
| 323 | set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]] |
| 324 | lappend newcsets $new |
| 325 | incr counter |
| 326 | |
| 327 | log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)" |
| 328 | |
| 329 | set laste $e |
| @@ -343,11 +345,11 @@ | |
| 345 | set key [list $mytype $iid] |
| 346 | #set myitemmap($key) $self |
| 347 | log write 8 csets {MAP+ item <$key> $self = [$self str]} |
| 348 | } |
| 349 | |
| 350 | return $newcsets |
| 351 | } |
| 352 | |
| 353 | method persist {} { |
| 354 | set tid $mycstype($mytype) |
| 355 | set pid [$myproject id] |
| 356 |
| --- tools/cvs2fossil/lib/c2f_prev.tcl | ||
| +++ tools/cvs2fossil/lib/c2f_prev.tcl | ||
| @@ -198,11 +198,11 @@ | ||
| 198 | 198 | # the state, and limited to successors within the changeset. |
| 199 | 199 | |
| 200 | 200 | array set dependencies {} |
| 201 | 201 | $mytypeobj internalsuccessors dependencies $myitems |
| 202 | 202 | if {![array size dependencies]} { |
| 203 | - return 0 | |
| 203 | + return {} | |
| 204 | 204 | } ; # Nothing to break. |
| 205 | 205 | |
| 206 | 206 | log write 5 csets ...[$self str]....................................................... |
| 207 | 207 | vc::tools::mem::mark |
| 208 | 208 | |
| @@ -304,10 +304,11 @@ | ||
| 304 | 304 | |
| 305 | 305 | # Create changesets for the fragments, reusing the current one |
| 306 | 306 | # for the first fragment. We sort them in order to allow |
| 307 | 307 | # checking for gaps and nice messages. |
| 308 | 308 | |
| 309 | + set newcsets {} | |
| 309 | 310 | set fragments [lsort -index 0 -integer $fragments] |
| 310 | 311 | |
| 311 | 312 | #puts \t.[join [PRs $fragments] .\n\t.]. |
| 312 | 313 | |
| 313 | 314 | Border [lindex $fragments 0] firsts firste |
| @@ -318,10 +319,11 @@ | ||
| 318 | 319 | foreach fragment [lrange $fragments 1 end] { |
| 319 | 320 | Border $fragment s e |
| 320 | 321 | integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap} |
| 321 | 322 | |
| 322 | 323 | set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]] |
| 324 | + lappend newcsets $new | |
| 323 | 325 | incr counter |
| 324 | 326 | |
| 325 | 327 | log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)" |
| 326 | 328 | |
| 327 | 329 | set laste $e |
| @@ -343,11 +345,11 @@ | ||
| 343 | 345 | set key [list $mytype $iid] |
| 344 | 346 | #set myitemmap($key) $self |
| 345 | 347 | log write 8 csets {MAP+ item <$key> $self = [$self str]} |
| 346 | 348 | } |
| 347 | 349 | |
| 348 | - return 1 | |
| 350 | + return $newcsets | |
| 349 | 351 | } |
| 350 | 352 | |
| 351 | 353 | method persist {} { |
| 352 | 354 | set tid $mycstype($mytype) |
| 353 | 355 | set pid [$myproject id] |
| 354 | 356 |
| --- tools/cvs2fossil/lib/c2f_prev.tcl | |
| +++ tools/cvs2fossil/lib/c2f_prev.tcl | |
| @@ -198,11 +198,11 @@ | |
| 198 | # the state, and limited to successors within the changeset. |
| 199 | |
| 200 | array set dependencies {} |
| 201 | $mytypeobj internalsuccessors dependencies $myitems |
| 202 | if {![array size dependencies]} { |
| 203 | return 0 |
| 204 | } ; # Nothing to break. |
| 205 | |
| 206 | log write 5 csets ...[$self str]....................................................... |
| 207 | vc::tools::mem::mark |
| 208 | |
| @@ -304,10 +304,11 @@ | |
| 304 | |
| 305 | # Create changesets for the fragments, reusing the current one |
| 306 | # for the first fragment. We sort them in order to allow |
| 307 | # checking for gaps and nice messages. |
| 308 | |
| 309 | set fragments [lsort -index 0 -integer $fragments] |
| 310 | |
| 311 | #puts \t.[join [PRs $fragments] .\n\t.]. |
| 312 | |
| 313 | Border [lindex $fragments 0] firsts firste |
| @@ -318,10 +319,11 @@ | |
| 318 | foreach fragment [lrange $fragments 1 end] { |
| 319 | Border $fragment s e |
| 320 | integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap} |
| 321 | |
| 322 | set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]] |
| 323 | incr counter |
| 324 | |
| 325 | log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)" |
| 326 | |
| 327 | set laste $e |
| @@ -343,11 +345,11 @@ | |
| 343 | set key [list $mytype $iid] |
| 344 | #set myitemmap($key) $self |
| 345 | log write 8 csets {MAP+ item <$key> $self = [$self str]} |
| 346 | } |
| 347 | |
| 348 | return 1 |
| 349 | } |
| 350 | |
| 351 | method persist {} { |
| 352 | set tid $mycstype($mytype) |
| 353 | set pid [$myproject id] |
| 354 |
| --- tools/cvs2fossil/lib/c2f_prev.tcl | |
| +++ tools/cvs2fossil/lib/c2f_prev.tcl | |
| @@ -198,11 +198,11 @@ | |
| 198 | # the state, and limited to successors within the changeset. |
| 199 | |
| 200 | array set dependencies {} |
| 201 | $mytypeobj internalsuccessors dependencies $myitems |
| 202 | if {![array size dependencies]} { |
| 203 | return {} |
| 204 | } ; # Nothing to break. |
| 205 | |
| 206 | log write 5 csets ...[$self str]....................................................... |
| 207 | vc::tools::mem::mark |
| 208 | |
| @@ -304,10 +304,11 @@ | |
| 304 | |
| 305 | # Create changesets for the fragments, reusing the current one |
| 306 | # for the first fragment. We sort them in order to allow |
| 307 | # checking for gaps and nice messages. |
| 308 | |
| 309 | set newcsets {} |
| 310 | set fragments [lsort -index 0 -integer $fragments] |
| 311 | |
| 312 | #puts \t.[join [PRs $fragments] .\n\t.]. |
| 313 | |
| 314 | Border [lindex $fragments 0] firsts firste |
| @@ -318,10 +319,11 @@ | |
| 319 | foreach fragment [lrange $fragments 1 end] { |
| 320 | Border $fragment s e |
| 321 | integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap} |
| 322 | |
| 323 | set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]] |
| 324 | lappend newcsets $new |
| 325 | incr counter |
| 326 | |
| 327 | log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)" |
| 328 | |
| 329 | set laste $e |
| @@ -343,11 +345,11 @@ | |
| 345 | set key [list $mytype $iid] |
| 346 | #set myitemmap($key) $self |
| 347 | log write 8 csets {MAP+ item <$key> $self = [$self str]} |
| 348 | } |
| 349 | |
| 350 | return $newcsets |
| 351 | } |
| 352 | |
| 353 | method persist {} { |
| 354 | set tid $mycstype($mytype) |
| 355 | set pid [$myproject id] |
| 356 |