Fossil SCM

Due to quickly building memory pressure for large cvs repositories (thousands of revisions and symbol object) we have to save the pertinent information of a file immediately after it has been processed and then clear the memory. Inserted the basic skeleton for this into pass and file objects.

aku 2007-10-23 02:29 trunk
Commit 3a00ac5aa2b0a4b67f043f8dd30608b6211a4053
--- tools/cvs2fossil/lib/c2f_file.tcl
+++ tools/cvs2fossil/lib/c2f_file.tcl
@@ -65,10 +65,13 @@
6565
# # ## ### ##### ######## #############
6666
## Persistence (pass II)
6767
6868
method persist {} {
6969
}
70
+
71
+ method drop {} {
72
+ }
7073
7174
# # ## ### ##### ######## #############
7275
## Implement the sink
7376
7477
method begin {} {#ignore}
@@ -402,11 +405,11 @@
402405
}
403406
unset mytags($revnr)
404407
} else {
405408
set rev $myrev($revnr)
406409
foreach tag $taglist {
407
- $rev addtag $tag
410
+ $rev addtag $tag
408411
$tag settagrev $rev
409412
}
410413
}
411414
}
412415
return
413416
--- tools/cvs2fossil/lib/c2f_file.tcl
+++ tools/cvs2fossil/lib/c2f_file.tcl
@@ -65,10 +65,13 @@
65 # # ## ### ##### ######## #############
66 ## Persistence (pass II)
67
68 method persist {} {
69 }
 
 
 
70
71 # # ## ### ##### ######## #############
72 ## Implement the sink
73
74 method begin {} {#ignore}
@@ -402,11 +405,11 @@
402 }
403 unset mytags($revnr)
404 } else {
405 set rev $myrev($revnr)
406 foreach tag $taglist {
407 $rev addtag $tag
408 $tag settagrev $rev
409 }
410 }
411 }
412 return
413
--- tools/cvs2fossil/lib/c2f_file.tcl
+++ tools/cvs2fossil/lib/c2f_file.tcl
@@ -65,10 +65,13 @@
65 # # ## ### ##### ######## #############
66 ## Persistence (pass II)
67
68 method persist {} {
69 }
70
71 method drop {} {
72 }
73
74 # # ## ### ##### ######## #############
75 ## Implement the sink
76
77 method begin {} {#ignore}
@@ -402,11 +405,11 @@
405 }
406 unset mytags($revnr)
407 } else {
408 set rev $myrev($revnr)
409 foreach tag $taglist {
410 $rev addtag $tag
411 $tag settagrev $rev
412 }
413 }
414 }
415 return
416
--- tools/cvs2fossil/lib/c2f_pcollrev.tcl
+++ tools/cvs2fossil/lib/c2f_pcollrev.tcl
@@ -208,10 +208,21 @@
208208
} else {
209209
global errorInfo
210210
trouble internal $errorInfo
211211
}
212212
}
213
+
214
+ # We persist the core of the data collected about each
215
+ # file immediately after it has been parsed and
216
+ # wrangled into shape, and then drop it from
217
+ # memory. This is done to keep the memory requirements
218
+ # within limits, i.e. without doing it this way it is
219
+ # easy to blow 1G of RAM with all the objects
220
+ # (revisions and file-level symbols).
221
+
222
+ $file persist
223
+ $file drop
213224
}
214225
}
215226
216227
repository printrevstatistics
217228
repository persistrev
218229
--- tools/cvs2fossil/lib/c2f_pcollrev.tcl
+++ tools/cvs2fossil/lib/c2f_pcollrev.tcl
@@ -208,10 +208,21 @@
208 } else {
209 global errorInfo
210 trouble internal $errorInfo
211 }
212 }
 
 
 
 
 
 
 
 
 
 
 
213 }
214 }
215
216 repository printrevstatistics
217 repository persistrev
218
--- tools/cvs2fossil/lib/c2f_pcollrev.tcl
+++ tools/cvs2fossil/lib/c2f_pcollrev.tcl
@@ -208,10 +208,21 @@
208 } else {
209 global errorInfo
210 trouble internal $errorInfo
211 }
212 }
213
214 # We persist the core of the data collected about each
215 # file immediately after it has been parsed and
216 # wrangled into shape, and then drop it from
217 # memory. This is done to keep the memory requirements
218 # within limits, i.e. without doing it this way it is
219 # easy to blow 1G of RAM with all the objects
220 # (revisions and file-level symbols).
221
222 $file persist
223 $file drop
224 }
225 }
226
227 repository printrevstatistics
228 repository persistrev
229

Keyboard Shortcuts

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