Fossil

Check-in [3a00ac5aa2]
Login

Check-in [3a00ac5aa2]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment: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.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 3a00ac5aa2b0a4b67f043f8dd30608b6211a4053
User & Date: aku 2007-10-23 02:29:55.000
Context
2007-10-23
03:29
Reworked object deletion to happen centrally after the file has been processed (drop). Simplified the code restructuring the revision tree as it now doesn't have to think about when and where to remove objects. ... (check-in: a766b08198 user: aku tags: trunk)
02:29
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. ... (check-in: 3a00ac5aa2 user: aku tags: trunk)
2007-10-21
07:08
Simplified the code for excluding non-trunk revisions a bit, using higher-level methods for some changes. Added missing revision destruction. ... (check-in: 436f17a5f0 user: aku tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to tools/cvs2fossil/lib/c2f_file.tcl.
63
64
65
66
67
68
69



70
71
72
73
74
75
76
    #method done {} {puts done}

    # # ## ### ##### ######## #############
    ## Persistence (pass II)

    method persist {} {
    }




    # # ## ### ##### ######## #############
    ## Implement the sink

    method begin {} {#ignore}

    method sethead {revnr} {







>
>
>







63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
    #method done {} {puts done}

    # # ## ### ##### ######## #############
    ## Persistence (pass II)

    method persist {} {
    }

    method drop {} {
    }

    # # ## ### ##### ######## #############
    ## Implement the sink

    method begin {} {#ignore}

    method sethead {revnr} {
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
		    log write 1 file "    [$tag name]"
		    $tag destroy
		}
		unset mytags($revnr)
	    } else {
		set rev $myrev($revnr)
		foreach tag $taglist {
		    $rev addtag $tag
		    $tag settagrev $rev
		}
	    }
	}
	return
    }








|







403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
		    log write 1 file "    [$tag name]"
		    $tag destroy
		}
		unset mytags($revnr)
	    } else {
		set rev $myrev($revnr)
		foreach tag $taglist {
		    $rev addtag    $tag
		    $tag settagrev $rev
		}
	    }
	}
	return
    }

Changes to tools/cvs2fossil/lib/c2f_pcollrev.tcl.
206
207
208
209
210
211
212











213
214
215
216
217
218
219
		    if {$errorCode eq "vc::rcs::parser"} {
			trouble fatal "$path is not a valid RCS archive ($msg)"
		    } else {
			global errorInfo
			trouble internal $errorInfo
		    }
		}











	    }
	}

	repository printrevstatistics
	repository persistrev

	log write 1 collrev "Scan completed"







>
>
>
>
>
>
>
>
>
>
>







206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
		    if {$errorCode eq "vc::rcs::parser"} {
			trouble fatal "$path is not a valid RCS archive ($msg)"
		    } else {
			global errorInfo
			trouble internal $errorInfo
		    }
		}

		# We persist the core of the data collected about each
		# file immediately after it has been parsed and
		# wrangled into shape, and then drop it from
		# memory. This is done to keep the memory requirements
		# within limits, i.e. without doing it this way it is
		# easy to blow 1G of RAM with all the objects
		# (revisions and file-level symbols).

		$file persist
		$file drop
	    }
	}

	repository printrevstatistics
	repository persistrev

	log write 1 collrev "Scan completed"