Fossil SCM

Merged bugfix [b3d61d7829] into the main branch for optimization of memory usage.

aku 2008-02-23 06:40 trunk merge
Commit efec424a194ee41528af9700549eb4336e21eed4
--- tools/cvs2fossil/lib/c2f_pinitcsets.tcl
+++ tools/cvs2fossil/lib/c2f_pinitcsets.tcl
@@ -211,13 +211,14 @@
211211
set p [repository projectof $lastproject]
212212
log write 14 initcsets meta_cset_begin
213213
mem::mark
214214
set cset [project::rev %AUTO% $p rev $lastmeta $revisions]
215215
log write 14 initcsets meta_cset_done
216
- $cset breakinternaldependencies nx
216
+ set spawned [$cset breakinternaldependencies nx]
217217
$cset persist
218218
$cset destroy
219
+ foreach cset $spawned { $cset persist ; $cset destroy }
219220
mem::mark
220221
set revisions {}
221222
}
222223
set lastmeta $mid
223224
set lastproject $pid
@@ -230,13 +231,14 @@
230231
set p [repository projectof $lastproject]
231232
log write 14 initcsets meta_cset_begin
232233
mem::mark
233234
set cset [project::rev %AUTO% $p rev $lastmeta $revisions]
234235
log write 14 initcsets meta_cset_done
235
- $cset breakinternaldependencies nx
236
+ set spawned [$cset breakinternaldependencies nx]
236237
$cset persist
237238
$cset destroy
239
+ foreach cset $spawned { $cset persist ; $cset destroy }
238240
mem::mark
239241
}
240242
241243
log write 14 initcsets meta_done
242244
mem::mark
243245
--- 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
@@ -184,11 +184,11 @@
184184
# the state, and limited to successors within the changeset.
185185
186186
array set dependencies {}
187187
$mytypeobj internalsuccessors dependencies $myitems
188188
if {![array size dependencies]} {
189
- return 0
189
+ return {}
190190
} ; # Nothing to break.
191191
192192
log write 5 csets ...[$self str].......................................................
193193
vc::tools::mem::mark
194194
@@ -296,10 +296,11 @@
296296
297297
# Create changesets for the fragments, reusing the current one
298298
# for the first fragment. We sort them in order to allow
299299
# checking for gaps and nice messages.
300300
301
+ set newcsets {}
301302
set fragments [lsort -index 0 -integer $fragments]
302303
303304
#puts \t.[join [PRs $fragments] .\n\t.].
304305
305306
Border [lindex $fragments 0] firsts firste
@@ -310,10 +311,11 @@
310311
foreach fragment [lrange $fragments 1 end] {
311312
Border $fragment s e
312313
integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap}
313314
314315
set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]]
316
+ lappend newcsets $new
315317
incr counter
316318
317319
log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)"
318320
319321
set laste $e
@@ -335,11 +337,11 @@
335337
set key [list $mytype $iid]
336338
set myitemmap($key) $self
337339
log write 8 csets {MAP+ item <$key> $self = [$self str]}
338340
}
339341
340
- return 1
342
+ return $newcsets
341343
}
342344
343345
method persist {} {
344346
set tid $mycstype($mytype)
345347
set pid [$myproject id]
346348
--- tools/cvs2fossil/lib/c2f_prev.tcl
+++ tools/cvs2fossil/lib/c2f_prev.tcl
@@ -184,11 +184,11 @@
184 # the state, and limited to successors within the changeset.
185
186 array set dependencies {}
187 $mytypeobj internalsuccessors dependencies $myitems
188 if {![array size dependencies]} {
189 return 0
190 } ; # Nothing to break.
191
192 log write 5 csets ...[$self str].......................................................
193 vc::tools::mem::mark
194
@@ -296,10 +296,11 @@
296
297 # Create changesets for the fragments, reusing the current one
298 # for the first fragment. We sort them in order to allow
299 # checking for gaps and nice messages.
300
 
301 set fragments [lsort -index 0 -integer $fragments]
302
303 #puts \t.[join [PRs $fragments] .\n\t.].
304
305 Border [lindex $fragments 0] firsts firste
@@ -310,10 +311,11 @@
310 foreach fragment [lrange $fragments 1 end] {
311 Border $fragment s e
312 integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap}
313
314 set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]]
 
315 incr counter
316
317 log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)"
318
319 set laste $e
@@ -335,11 +337,11 @@
335 set key [list $mytype $iid]
336 set myitemmap($key) $self
337 log write 8 csets {MAP+ item <$key> $self = [$self str]}
338 }
339
340 return 1
341 }
342
343 method persist {} {
344 set tid $mycstype($mytype)
345 set pid [$myproject id]
346
--- tools/cvs2fossil/lib/c2f_prev.tcl
+++ tools/cvs2fossil/lib/c2f_prev.tcl
@@ -184,11 +184,11 @@
184 # the state, and limited to successors within the changeset.
185
186 array set dependencies {}
187 $mytypeobj internalsuccessors dependencies $myitems
188 if {![array size dependencies]} {
189 return {}
190 } ; # Nothing to break.
191
192 log write 5 csets ...[$self str].......................................................
193 vc::tools::mem::mark
194
@@ -296,10 +296,11 @@
296
297 # Create changesets for the fragments, reusing the current one
298 # for the first fragment. We sort them in order to allow
299 # checking for gaps and nice messages.
300
301 set newcsets {}
302 set fragments [lsort -index 0 -integer $fragments]
303
304 #puts \t.[join [PRs $fragments] .\n\t.].
305
306 Border [lindex $fragments 0] firsts firste
@@ -310,10 +311,11 @@
311 foreach fragment [lrange $fragments 1 end] {
312 Border $fragment s e
313 integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap}
314
315 set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]]
316 lappend newcsets $new
317 incr counter
318
319 log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)"
320
321 set laste $e
@@ -335,11 +337,11 @@
337 set key [list $mytype $iid]
338 set myitemmap($key) $self
339 log write 8 csets {MAP+ item <$key> $self = [$self str]}
340 }
341
342 return $newcsets
343 }
344
345 method persist {} {
346 set tid $mycstype($mytype)
347 set pid [$myproject id]
348
--- tools/cvs2fossil/lib/c2f_prev.tcl
+++ tools/cvs2fossil/lib/c2f_prev.tcl
@@ -184,11 +184,11 @@
184184
# the state, and limited to successors within the changeset.
185185
186186
array set dependencies {}
187187
$mytypeobj internalsuccessors dependencies $myitems
188188
if {![array size dependencies]} {
189
- return 0
189
+ return {}
190190
} ; # Nothing to break.
191191
192192
log write 5 csets ...[$self str].......................................................
193193
vc::tools::mem::mark
194194
@@ -296,10 +296,11 @@
296296
297297
# Create changesets for the fragments, reusing the current one
298298
# for the first fragment. We sort them in order to allow
299299
# checking for gaps and nice messages.
300300
301
+ set newcsets {}
301302
set fragments [lsort -index 0 -integer $fragments]
302303
303304
#puts \t.[join [PRs $fragments] .\n\t.].
304305
305306
Border [lindex $fragments 0] firsts firste
@@ -310,10 +311,11 @@
310311
foreach fragment [lrange $fragments 1 end] {
311312
Border $fragment s e
312313
integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap}
313314
314315
set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]]
316
+ lappend newcsets $new
315317
incr counter
316318
317319
log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)"
318320
319321
set laste $e
@@ -335,11 +337,11 @@
335337
set key [list $mytype $iid]
336338
set myitemmap($key) $self
337339
log write 8 csets {MAP+ item <$key> $self = [$self str]}
338340
}
339341
340
- return 1
342
+ return $newcsets
341343
}
342344
343345
method persist {} {
344346
set tid $mycstype($mytype)
345347
set pid [$myproject id]
346348
--- tools/cvs2fossil/lib/c2f_prev.tcl
+++ tools/cvs2fossil/lib/c2f_prev.tcl
@@ -184,11 +184,11 @@
184 # the state, and limited to successors within the changeset.
185
186 array set dependencies {}
187 $mytypeobj internalsuccessors dependencies $myitems
188 if {![array size dependencies]} {
189 return 0
190 } ; # Nothing to break.
191
192 log write 5 csets ...[$self str].......................................................
193 vc::tools::mem::mark
194
@@ -296,10 +296,11 @@
296
297 # Create changesets for the fragments, reusing the current one
298 # for the first fragment. We sort them in order to allow
299 # checking for gaps and nice messages.
300
 
301 set fragments [lsort -index 0 -integer $fragments]
302
303 #puts \t.[join [PRs $fragments] .\n\t.].
304
305 Border [lindex $fragments 0] firsts firste
@@ -310,10 +311,11 @@
310 foreach fragment [lrange $fragments 1 end] {
311 Border $fragment s e
312 integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap}
313
314 set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]]
 
315 incr counter
316
317 log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)"
318
319 set laste $e
@@ -335,11 +337,11 @@
335 set key [list $mytype $iid]
336 set myitemmap($key) $self
337 log write 8 csets {MAP+ item <$key> $self = [$self str]}
338 }
339
340 return 1
341 }
342
343 method persist {} {
344 set tid $mycstype($mytype)
345 set pid [$myproject id]
346
--- tools/cvs2fossil/lib/c2f_prev.tcl
+++ tools/cvs2fossil/lib/c2f_prev.tcl
@@ -184,11 +184,11 @@
184 # the state, and limited to successors within the changeset.
185
186 array set dependencies {}
187 $mytypeobj internalsuccessors dependencies $myitems
188 if {![array size dependencies]} {
189 return {}
190 } ; # Nothing to break.
191
192 log write 5 csets ...[$self str].......................................................
193 vc::tools::mem::mark
194
@@ -296,10 +296,11 @@
296
297 # Create changesets for the fragments, reusing the current one
298 # for the first fragment. We sort them in order to allow
299 # checking for gaps and nice messages.
300
301 set newcsets {}
302 set fragments [lsort -index 0 -integer $fragments]
303
304 #puts \t.[join [PRs $fragments] .\n\t.].
305
306 Border [lindex $fragments 0] firsts firste
@@ -310,10 +311,11 @@
311 foreach fragment [lrange $fragments 1 end] {
312 Border $fragment s e
313 integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap}
314
315 set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myitems $s $e]]
316 lappend newcsets $new
317 incr counter
318
319 log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)"
320
321 set laste $e
@@ -335,11 +337,11 @@
337 set key [list $mytype $iid]
338 set myitemmap($key) $self
339 log write 8 csets {MAP+ item <$key> $self = [$self str]}
340 }
341
342 return $newcsets
343 }
344
345 method persist {} {
346 set tid $mycstype($mytype)
347 set pid [$myproject id]
348

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button