D 2007-12-04T21:13:35 L Import\sCVS\sRepositories P 07887bbda89f650ab1b7c76fd97bf6b33fa041eb U anonymous W 5162 Spiritual ancestor: [http://cvs2svn.tigris.org/|cvs2svn]. Similarities: * Using identical highlevel architecture (pass-based) * Using some specific algorithms (graph traversal). Differences: * Not using any of its code (Different languages for one thing, [http://www.python.org/|Python] there, [http://www.tcl.tk/|Tcl] here). * Persistent state completely different, using [http://www.sqlite.org/|sqlite] database for all things we wish to keep between passes. Status: * Pass CollAr: Collect archives - ok. * Pass CollRev: Collect revisions, tags, branches (file level) - ok. * Pass CollSym: Collate symbol (project level) from the file level data - ok. * Pass FilterSym: Filter symbols, exclude symbols and lines of development - ok. * Pass InitCsets: Create initial changesets - ok. Memory Hog, Slow commit * Pass CsetDeps: Compute changeset dependencies from revision dependencies - ok. * Pass BreakRCycle: Break cycles among revision changesets - ok. * Pass RevTopSort: Topologically sort revision changesets - ok. * Pass BreakSCycle: Break cycles among symbol changesets - ok. * Pass BreakACycle: Break cycles over all changesets - May still change the order of revision changesets over the result of pass 7. * Pass ATopSort: Should be ok. Passes to do: * Put changeset order from the top.sort passes and tree of symbols from the coll|FilterSym passes together into a tree of changesets. Note that it might not be a tree if there is an NTDB around. * Perform the actual import. Notes regarding the actual import: Miscellaneous: Z 7c6f9848ecb1ad05486dcca53df9a88b