D 2008-03-14T21:07:40 L Import\sCVS\sRepositories P f2c05a6ad279c0cb0c7249b9ff0cea12d9153bf6 U aku W 5644 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 | Description | Notes |
---|---|---|
CollectAr | Collect archives | Ok |
CollectRev | Collect revisions, tags, branches (file level) | Ok |
CollateSymbols | Collate symbol (project level) from the file level data | Ok |
FilterSymbols | Filter symbols, exclude symbols and lines of development | Ok |
InitCsets | Create initial changesets | Ok. |
CsetDeps | Compute changeset dependencies from revision dependencies | Ok |
BreakRevCsetCycles | Break cycles among revision changesets | Ok |
RevTopologicalSort | Topologically sort revision changesets | Ok |
BreakSymCsetCycles | Break cycles among symbol changesets | Ok |
BreakAllCsetCycles | Break cycles over all changesets | Ok. (Accepting that it may still change the order of revision changesets over the result of pass 7). |
AllTopologicallSort | Topologically sort all changesets | Ok |
ImportFiles | Import files | Ok. |
ImportCSets | Import changesets | Ok. |
ImportFinal | Import finalization (fossil rebuild) | Ok. |
fossil import-files SPECFILEwhich imports and deltifies files as blob per the SPECFILE, returning on stdout the associated of paths and internal ids. Example SPECFILE:
F path1 D path2 path1 ...The 'F' card tells it to import 'path1' as is. The 'D' card then tells it to import 'path2' as is and then deltify 'path1' in terms of 'path2'. And so on.
fossil import-manifest user timestamp MESSAGEFILE FILEFILE parent...The 'messagefile' contains the log message, the 'filefile' lists the revisions in the manifest by id, and with path in the workspace. The parents are the ids of the parent manifests. The result of the command is the id of the new manifest.