File History

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

History of tools/cvs2fossil/lib/c2f_integrity.tcl

Tweaked integrity output lightly. file: [cd21bd4a] check-in: [7c6df765] user: aku branch: trunk, size: 38715
Updated the copyright information of all files touched in the new year. file: [cc4461a5] check-in: [66235f24] user: aku branch: trunk, size: 38681
Added comments to the sql commands in the integrity checks. file: [ec6d8787] check-in: [727f370c] user: aku branch: trunk, size: 38676
The handling of detached lines of development (floating branches) still had some bugs regarding the linkage to their revisions, especially the first revision on such branches. Fixed the relevant places, added early integrity checks and updated the main checks to handle the situation. file: [565865cf] check-in: [c4003e7b] user: aku branch: trunk, size: 32161
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: [3028615e] check-in: [00bf8c19] user: aku branch: trunk, size: 32035
Finally committing another disabled integrity constraint for changesets, explanations in the comments. file: [3a6b9146] check-in: [fd93aa26] user: aku branch: trunk, size: 32694
Fixed typo. Grr. file: [2d6c3c60] check-in: [0a97ad38] user: aku branch: trunk, size: 31408
Fixed typo of keyword. file: [bd6c4a13] check-in: [3db03be6] user: aku branch: trunk, size: 31408
Easier name for self-referential changesets, loopcheck. Made conditional on option --loopcheck, default off, and avoided if the general checks on changesets report trouble. Reinstated the loop check in the cycle breaker core in simpler form, reusing the new command in the changeset class. file: [59163ec6] check-in: [0af7a3c8] user: aku branch: trunk, size: 31408
Replaced the checks for self-referential changesets in the cycle breaker with a scheme in the changeset class doing checks when splitting a changeset, which is also called by the general changeset integrity code, after each pass. Extended log output at high verbosity levels. Thorough checking of the fragments a changeset is to be split into. file: [ea08d302] check-in: [b42cff97] user: aku branch: trunk, size: 31017
Renamed state table 'csrevision' to 'csitem' to reflect the new internals of changesets. Updated all places where it is used. file: [6d1e0208] check-in: [80b1e893] user: aku branch: trunk, size: 30749
Added equivalent checks for the tag and branch based changesets. file: [72056a87] check-in: [4b15fa34] user: aku branch: trunk, size: 30833
Shuffled and updated the existing checks of revision changesets. file: [6b8e8254] check-in: [de10b230] user: aku branch: trunk, size: 20224
Started to adapt the integrity module. Renamed Check to CheckRev, and added analoguous commands for Tags and Branches. Added placeholders for the new integrity commands, updated main changeset integrity command. file: [0fe3d374] check-in: [7c28fe13] user: aku branch: trunk, size: 20441
Added convenience method for assertions and used it in place of the existing if/trouble internal constructions. Changed API of 'log write' so that we can defer substituation of the message to when the write actually happen, and converted all places which would be hit by double-substitution. The remaining 'log write' calls will be converted incrementally. file: [ef24788c] check-in: [47d52d1e] user: aku branch: trunk, size: 19192
Continued work on the integrity checks for changesets. Moved callers out of transactions. Two checks are already tripping on bad changesets made by InitCSets (pass 5). file: [19b5dfcc] check-in: [8c6488de] user: aku branch: trunk, size: 19007
Outline for more integrity checks, focusing on the changesets. file: [69cecd83] check-in: [bf83201c] user: aku branch: trunk, size: 9979
Code cleanup. Removed trailing whitespace across the board. file: [eed39e28] check-in: [b679ca33] user: aku branch: trunk, size: 9838
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. file: [f5cf3c56] check-in: [131f0518] user: aku branch: trunk, size: 9746 Added