File History

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

History of tools/cvs2fossil/lib/c2f_prtopsort.tcl

Get the line of development for changesets directly from the items and their lod references. The in-memory data from the meta table is out-of-date since the adjustment of parents in pass 'FilterSymbols'. Print the LOD information when sorting the changesets. file: [dbb40b42] check-in: [0d13da30] user: aku branch: trunk, size: 4688
Fluff: Renamed state methods use/reading/writing to usedb/use/extend for clarity. Updated all callers. Extended state module with code to dump the SQL statements it receives to a file for analysis. Extended the 'use' declarations of several passes. file: [bc1fe016] check-in: [e288af39] user: aku branch: trunk, size: 4674
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. file: [108eb140] check-in: [00bf8c19] user: aku branch: trunk, size: 4632
Renamed state table 'csrevision' to 'csitem' to reflect the new internals of changesets. Updated all places where it is used. file: [b280cf33] check-in: [80b1e893] user: aku branch: trunk, size: 4665
Updated to extended changeset string, and added tabular formatting. Further tweaked output, putting timestamp adjust messages on the same line as the changeset itself. file: [ef7809d0] check-in: [1c39e576] user: aku branch: trunk, size: 4669
Code cleanup. Removed trailing whitespace across the board. file: [0540393d] check-in: [b679ca33] user: aku branch: trunk, size: 4668
Tweaked log output of the topological sorter (revisions) to be tabular (aligned columns), added information (time ranges). file: [8a68348b] check-in: [bcc630d3] user: aku branch: trunk, size: 4669
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. file: [96780b3d] check-in: [66c85b4d] user: aku branch: trunk, size: 4214 Added