Differences From:
File
tools/cvs2fossil/lib/c2f_prev.tcl
part of check-in
[c2ad73ed92]
- 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).
by
aku on
2008-02-21 05:13:14.
[view]
To:
File
tools/cvs2fossil/lib/c2f_prev.tcl
part of check-in
[efec424a19]
- Merged bugfix b3d61d7829 into the main branch for optimization of memory usage.
by
aku on
2008-02-23 06:40:48.
[view]
@@ -185,9 +185,9 @@
array set dependencies {}
$mytypeobj internalsuccessors dependencies $myitems
if {![array size dependencies]} {
- return 0
+ return {}
} ; # Nothing to break.
log write 5 csets ...[$self str].......................................................
vc::tools::mem::mark
@@ -297,8 +297,9 @@
# 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.].
@@ -311,8 +312,9 @@
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)"
@@ -336,9 +338,9 @@
set myitemmap($key) $self
log write 8 csets {MAP+ item <$key> $self = [$self str]}
}
- return 1
+ return $newcsets
}
method persist {} {
set tid $mycstype($mytype)