Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merged bugfix [b3d61d7829] into the main branch for optimization of memory usage. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
efec424a194ee41528af9700549eb433 |
User & Date: | aku 2008-02-23 06:40:48.000 |
Context
2008-02-23
| ||
07:10 | Fix extraction of memory data from the log, pipe symbol is special. ... (check-in: cff01852 user: aku tags: trunk) | |
06:40 | Merged bugfix [b3d61d7829] into the main branch for optimization of memory usage. ... (check-in: efec424a user: aku tags: trunk) | |
06:33 | Fixed bug made in [f46458d5bd] which prevented the saving of the changesets generated by the breaking of the internal dependencies. ... (check-in: b3d61d78 user: aku tags: trunk) | |
2008-02-21
| ||
05:13 | Added high-level logging for memory tracing to the code breaking the preliminary changesets. First runs indicate that the DEPC array becomes so very large, caused by a high amount of indirect dependencies (several hundred). ... (check-in: c2ad73ed user: aku tags: trunk) | |
Changes
Changes to tools/cvs2fossil/lib/c2f_pinitcsets.tcl.
︙ | ︙ | |||
209 210 211 212 213 214 215 | if {[llength $revisions]} { incr n set p [repository projectof $lastproject] log write 14 initcsets meta_cset_begin mem::mark set cset [project::rev %AUTO% $p rev $lastmeta $revisions] log write 14 initcsets meta_cset_done | | > | > | 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 | if {[llength $revisions]} { incr n set p [repository projectof $lastproject] log write 14 initcsets meta_cset_begin mem::mark set cset [project::rev %AUTO% $p rev $lastmeta $revisions] log write 14 initcsets meta_cset_done set spawned [$cset breakinternaldependencies nx] $cset persist $cset destroy foreach cset $spawned { $cset persist ; $cset destroy } mem::mark set revisions {} } set lastmeta $mid set lastproject $pid } lappend revisions $rid } if {[llength $revisions]} { incr n set p [repository projectof $lastproject] log write 14 initcsets meta_cset_begin mem::mark set cset [project::rev %AUTO% $p rev $lastmeta $revisions] log write 14 initcsets meta_cset_done set spawned [$cset breakinternaldependencies nx] $cset persist $cset destroy foreach cset $spawned { $cset persist ; $cset destroy } mem::mark } log write 14 initcsets meta_done mem::mark log write 4 initcsets "Created and saved [nsp $n {revision changeset}]" |
︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_prev.tcl.
︙ | ︙ | |||
182 183 184 185 186 187 188 | # Array of dependencies (parent -> child). This is pulled from # the state, and limited to successors within the changeset. array set dependencies {} $mytypeobj internalsuccessors dependencies $myitems if {![array size dependencies]} { | | | 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | # Array of dependencies (parent -> child). This is pulled from # the state, and limited to successors within the changeset. array set dependencies {} $mytypeobj internalsuccessors dependencies $myitems if {![array size dependencies]} { return {} } ; # Nothing to break. log write 5 csets ...[$self str]....................................................... vc::tools::mem::mark # We have internal dependencies to break. We now iterate over # all positions in the list (which is chronological, at least |
︙ | ︙ | |||
294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 | log write 8 csets {MAP- item <$key> $self = [$self str]} } # Create changesets for the fragments, reusing the current one # for the first fragment. We sort them in order to allow # checking for gaps and nice messages. set fragments [lsort -index 0 -integer $fragments] #puts \t.[join [PRs $fragments] .\n\t.]. Border [lindex $fragments 0] firsts firste integrity assert {$firsts == 0} {Bad fragment start @ $firsts, gap, or before beginning of the range} set laste $firste foreach fragment [lrange $fragments 1 end] { Border $fragment s e integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap} set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]] incr counter log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)" set laste $e } | > > | 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 | log write 8 csets {MAP- item <$key> $self = [$self str]} } # Create changesets for the fragments, reusing the current one # for the first fragment. We sort them in order to allow # checking for gaps and nice messages. set newcsets {} set fragments [lsort -index 0 -integer $fragments] #puts \t.[join [PRs $fragments] .\n\t.]. Border [lindex $fragments 0] firsts firste integrity assert {$firsts == 0} {Bad fragment start @ $firsts, gap, or before beginning of the range} set laste $firste foreach fragment [lrange $fragments 1 end] { Border $fragment s e integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap} set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]] lappend newcsets $new incr counter log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)" set laste $e } |
︙ | ︙ | |||
333 334 335 336 337 338 339 | set mytitems [lrange $mytitems 0 $firste] foreach iid $myitems { set key [list $mytype $iid] set myitemmap($key) $self log write 8 csets {MAP+ item <$key> $self = [$self str]} } | | | 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 | set mytitems [lrange $mytitems 0 $firste] foreach iid $myitems { set key [list $mytype $iid] set myitemmap($key) $self log write 8 csets {MAP+ item <$key> $self = [$self str]} } return $newcsets } method persist {} { set tid $mycstype($mytype) set pid [$myproject id] set pos 0 |
︙ | ︙ |