Check-in [efec424a19]
Not logged in
Overview

SHA1 Hash:efec424a194ee41528af9700549eb4336e21eed4
Date: 2008-02-23 06:40:48
User: aku
Comment:Merged bugfix b3d61d7829 into the main branch for optimization of memory usage.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified tools/cvs2fossil/lib/c2f_pinitcsets.tcl from [8351f6b640] to [37791a272d].

@@ -211,13 +211,14 @@
 		    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
-		    $cset breakinternaldependencies nx
+		    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
@@ -230,13 +231,14 @@
 	    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
-	    $cset breakinternaldependencies nx
+	    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

Modified tools/cvs2fossil/lib/c2f_prev.tcl from [c3cfc3bb4a] to [e87b9beadd].

@@ -184,11 +184,11 @@
 	# the state, and limited to successors within the changeset.
 
 	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
 
@@ -296,10 +296,11 @@
 
 	# 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
@@ -310,10 +311,11 @@
 	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
@@ -335,11 +337,11 @@
 	    set key [list $mytype $iid]
 	    set myitemmap($key) $self
 	    log write 8 csets {MAP+ item <$key> $self = [$self str]}
 	}
 
-	return 1
+	return $newcsets
     }
 
     method persist {} {
 	set tid $mycstype($mytype)
 	set pid [$myproject id]