History for tools/cvs2fossil/lib/pkgIndex.tcl

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

History for tools/cvs2fossil/lib/pkgIndex.tcl

[b810fde7] part of check-in [31b15fcf] Split the current import pass into three, for files, changesets, and finalization (fossil rebuild). (check-in: [31b15fcf] user: aku branch: trunk, size: 4908)
[73c4287b] part of check-in [8287044e] Created a memory tracking subsystem to investigate memory consumption of the system in general, and pass InitCsets in particular. getmemory series is a postprocessor pulling the data out of the log and into a tables gnuplot is able to handle. (check-in: [8287044e] user: aku branch: trunk, size: 4671)
[8e64440f] part of check-in [d011e0b0] Added classes to track the state of a workspace, and of the whole revision import. (check-in: [d011e0b0] user: aku branch: trunk, size: 4568)
[a73808ac] part of check-in [aa04ac9d] Extended the collection of revisions for a file with a separate blob store to manage the text ranges of revisions and their dependencies separate from the revisions. This will be used later (upcoming) to properly expand a file even if revisions were removed as irrelevant during the collection and filter passes. (check-in: [aa04ac9d] user: aku branch: trunk, size: 4346)
[bb5f385c] part of check-in [97e0e9dd] Removed two unused classes. (check-in: [97e0e9dd] user: aku branch: trunk, size: 4233)
[fde79c66] part of check-in [d9fc75e5] Created new pass for the import of files and changesets. Uses the new file method and fossil accessor class to handle the file import. Changeset -> manifest conversion is _not_ covered yet. (check-in: [d9fc75e5] user: aku branch: trunk, size: 4455)
[c5fb9bac] part of check-in [b6bf21e2] Added helper class managing access to fossil repositories. Already has a basic method to import and delta-compress a series of files. Used 'test' commands of fossil to get the necessary low-level access. (check-in: [b6bf21e2] user: aku branch: trunk, size: 4344)
[0a082ba7] part of check-in [e7013137] Put the graph traversal core of the cycle breaker core into a separate class, for use in other parts of the system. TODO: Rewrite the cycle breaker core in terms of this class. (check-in: [e7013137] user: aku branch: trunk, size: 4234)
[bba80efc] part of check-in [00bf8c19] The performance was still not satisfying, even with faster recomputing of successors. Doing it multiple times (Building the graph in each breaker and sort passes) eats time. Caching in memory blows the memory. Chosen solution: Cache this information in the database.

Created a new pass 'CsetDeps' which is run between 'InitCsets' and 'BreakRevCsetCycles' (i.e. changeset creation and first breaker pass). It computes the changeset dependencies from the file-level dependencies once and saves the result in the state, in the new table 'cssuccessor'. Now the breaker and sort passes can get the information quickly, with virtually no effort. The dependencies are recomputed incrementally when a changeset is split by one of the breaker passes, for its fragments and its predecessors.

The loop check is now trivial, and integrated into the successor computation, with the heavy lifting for the detailed analysis and reporting moved down into the type-dependent SQL queries. The relevant new method is 'loops'. Now that the loop check is incremental the pass based checks have been removed from the integrity module, and the option '--loopcheck' has been eliminated. For paranoia the graph setup and modification code got its loop check reinstated as an assert, redusing the changeset report code.

Renumbered the breaker and sort passes. A number of places, like graph setup and traversal, loading of changesets, etc. got feedback indicators to show their progress.

The selection of revision and symbol changesets for the associated breaker passes was a bit on the slow side. We now keep changeset lists sorted by type (during loading or general construction) and access them directly. (check-in: [00bf8c19] user: aku branch: trunk, size: 4124)

[d37efe5d] part of check-in [66c85b4d] Investigation of changeset order differences between running passes 1 to 6 and pass 6 alone show why the topological sort passes are separate in cvs2svn. The breaking of cycles can change the order of things due to different timeranges and dependencies of the broken changesets. Created two new passes for the sorting. The break passes 7 and 8 are now passes 8 and 9, and the new sort passes are 7 and 10. (check-in: [66c85b4d] user: aku branch: trunk, size: 4011)
[48c25458] part of check-in [7f15be90] Added the ability to export the changeset graphs processed by the passes 6 to 8 using GraphViz's dot-format. This is activated by using the switch '--dots'. Bugfixes in the cycle breaker. First corrected variable names, I forgot to use the standard 'myXXX' format for the typevariables. Second, fixed a bug uncovered by looking at the exported graphs, which caused the system to loose arcs, possibly breaking cycles without actually breaking them, leaving them in the dependencies. (check-in: [7f15be90] user: aku branch: trunk, size: 3785)
[326b42f7] part of check-in [e7c805f1] Added skeleton of pass 8, the final pass for the breaking of dependency cycles. This pass will handle the remaining cycles crossing revision and symbol changesets. (check-in: [e7c805f1] user: aku branch: trunk, size: 3682)
[e9e0ed3b] part of check-in [770a9b57] Completed pass 7, breaking dependency cycles over symbol changesets. Moved the bulk of the cycle breaker code into its own class as it was common to the passes 6 and 7, and updated the two passes accordingly. Added code to load the changeset counter from the state to start properly. (check-in: [770a9b57] user: aku branch: trunk, size: 3566)
[f2f4cb7b] part of check-in [258366a3] Added skeleton files for pass 7, the breaking of dependency cycles over symbol-based changesets. (check-in: [258366a3] user: aku branch: trunk, size: 3450)
[a937f1cd] part of check-in [94c39d63] Completed pass 6, wrote the code performing the breaking of cycles. Done by analysing each triple of changesets in the cycle at the file dependency level to see which revisions can be sorted apart. Added some additional utility routines. Extended the changeset class with the accessors required by the cycle breaker. (check-in: [94c39d63] user: aku branch: trunk, size: 3334)
[dbfdadaf] part of check-in [2a01d504] Started on pass 6, breaking cycles between revision based changesets. Added skeleton files. (check-in: [2a01d504] user: aku branch: trunk, size: 3222)
[183f520c] part of check-in [54d1e353] Started on pass 5, computing the initial approximate set of project level revisions, aka 'ChangeSets'. Skeleton of the pass added. (check-in: [54d1e353] user: aku branch: trunk, size: 3054)
[9cd7a5dc] part of check-in [131f0518] Moved the paranoid integrity checks of pass 2 into a separate package for use by other passes, and changed pass 4 to also run these checks, albeit in a (slightly) relaxed form. See the comments at the point of call for the reason. This completes pass 4. (check-in: [131f0518] user: aku branch: trunk, size: 2942)
[d11a0332] part of check-in [11e5d7ce] Started on pass 4, 'FilterSymbols'. Skeleton. (check-in: [11e5d7ce] user: aku branch: trunk, size: 2831)
[1cffea0d] part of check-in [6d4eb247] Skeleton for pass 3 added, collating the symbols. (check-in: [6d4eb247] user: aku branch: trunk, size: 2719)
[94c8694e] part of check-in [99e165d5] Created a separate common class for the id databases used by the repository, and updated the repository code to use it. (check-in: [99e165d5] user: aku branch: trunk, size: 2609)
[4291c23a] part of check-in [84de38d7] Added a lot of skeleton files for the revision and symbol data structures, for both project and file level. (check-in: [84de38d7] user: aku branch: trunk, size: 2510)
[94d43620] part of check-in [8a93ffa9] Fleshed out pass II, added skeleton of rcs archive class, started integration of rcs parser. (check-in: [8a93ffa9] user: aku branch: trunk, size: 1626)
[96ca91f4] part of check-in [860f533e] Bringing back in the old parser for rcs archives. (check-in: [860f533e] user: aku branch: trunk, size: 1522)
[da1f72a6] part of check-in [fdbc01df] Added pass II (collection of revision and symbols), basic skeleton and state definitions, and integrated into the pass manager. (check-in: [fdbc01df] user: aku branch: trunk, size: 1417)
[f6ad9cb7] part of check-in [eb656de7] Added the basic parts of the state manager and integrated it with option processor and pass manager. (check-in: [eb656de7] user: aku branch: trunk, size: 1299)
[e327e448] part of check-in [52f22540] Continued work on pass I. Filled in the repository management, and basic implementation of project objects. Missing are persistence and the foundation for that (cache database). (check-in: [52f22540] user: aku branch: trunk, size: 1195)
[2c710991] part of check-in [47740cc1] Added stub for repository management, added most of pass I, collecting archives in the repository. (check-in: [47740cc1] user: aku branch: trunk, size: 989)
[d90ebe99] part of check-in [59115153] Added the pass management, integrated with application and option processor. (check-in: [59115153] user: aku branch: trunk, size: 744)
[6725ddc0] part of check-in [d57b7b4a] Re-added the user feedback and error reporting utilities, with modifications, and completed the handling of the informational options. (check-in: [d57b7b4a] user: aku branch: trunk, size: 647)
[5b7b4433] part of check-in [2a98ac44] Third attempt at getting a cvs importer which can handle branches. Using cvs2svn code and design notes as a guide. (check-in: [2a98ac44] user: aku branch: trunk, size: 459) Added