Fossil

File History
Login

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

History of tools/cvs2fossil/lib/c2f_pbreakacycle.tcl

2015-10-02
10:35
Let's bring down the number of eol-spaces someswhat more. No functional changes. file: [4f1e51a0] check-in: [e757cd3d] user: jan.nijtmans branch: trunk, size: 14077
2008-02-27
08:00
Fix comment typo, and add comment about possible simplification. file: [6d6903cd] check-in: [83ecb5b9] user: aku branch: trunk, size: 14078
2008-02-24
18:01
Updated my notes regarding memory usage. Converted more locations to incremental query processing via 'state foreachrow', now throughout the importer. file: [9de68fa9] check-in: [f637d422] user: aku branch: trunk, size: 14078
2007-12-05
02:24
Fixed log progress use in last breaker pass. Disabled the check regarding revision order. It still triggers and I can't see anything wrong. Pressing forward for now, i.e. get the remaining passes done, then revisit this issue. file: [3f3d02eb] check-in: [22905072] user: aku branch: trunk, size: 14084
2007-12-04
04:54
Reworked ComputeLimits in the last breaker pass. Moved the heavy computation of the max predecessor / min successor data down to the sql in the changeset class. file: [4af95179] check-in: [711e0002] user: aku branch: trunk, size: 13960
2007-12-02
23:47
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: [7e073778] check-in: [e288af39] user: aku branch: trunk, size: 13679
20:04
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: [9244bb5c] check-in: [00bf8c19] user: aku branch: trunk, size: 13616
06:58
Added progress output to the breaking of backward branches. file: [f65b1a93] check-in: [a437da48] user: aku branch: trunk, size: 13570
2007-11-30
03:57
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: [2c3ba3a1] check-in: [b42cff97] user: aku branch: trunk, size: 13478
2007-11-29
09:16
Renamed state table 'csrevision' to 'csitem' to reflect the new internals of changesets. Updated all places where it is used. file: [da5cab23] check-in: [80b1e893] user: aku branch: trunk, size: 13459
09:14
Updated commentary regarding cycles at this point, items instead of comments, etc. file: [a5b0f59e] check-in: [af5904e6] user: aku branch: trunk, size: 13463
07:50
Added missing state declarations. file: [72b7ac3d] check-in: [2c9c2681] user: aku branch: trunk, size: 14230
2007-11-28
05:39
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: [143b6f64] check-in: [47d52d1e] user: aku branch: trunk, size: 14179
2007-11-27
09:07
Modified to break all backward symbols, not only branches, removed the other custom circle breaking code, should not be needed any longer (See comments for proof). file: [7ef64f53] check-in: [6b520e7d] user: aku branch: trunk, size: 14217
04:26
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: [642a0a9f] check-in: [8c6488de] user: aku branch: trunk, size: 17551
02:37
Outline for more integrity checks, focusing on the changesets. file: [94928921] check-in: [bf83201c] user: aku branch: trunk, size: 17559
2007-11-25
07:54
Code cleanup. Removed trailing whitespace across the board. file: [6aba1b2f] check-in: [b679ca33] user: aku branch: trunk, size: 17388
07:44
Another helper, textual, write changeset data to stdout. file: [2eea5c9c] check-in: [1ea319fb] user: aku branch: trunk, size: 17389
03:05
Moved more parts taken over by the top. sort passes out the breaker passes, and renumbered them. file: [456c81fc] check-in: [d743f04b] user: aku branch: trunk, size: 11304
2007-11-24
05:31
Created convenience methods to create the human readable repesentation of a changeset and lists of such, and made liberal use of them. file: [c41eb33d] check-in: [87cf6090] user: aku branch: trunk, size: 11668
04:19
Tweaked log output a bit. Bugfixes: Forgot to propagate the border information into SplitRevisions, and a varname typo. file: [42309dff] check-in: [6d636343] user: aku branch: trunk, size: 11424
03:56
Updated passes 6 and 8 for to the changtes in the cycle breaker API (changed signature of save callback). file: [ba2a0b84] check-in: [7ed2f29d] user: aku branch: trunk, size: 11400
2007-11-22
04:21
Continued work on pass 8. Completed the handling of backward branches, file level analysis and splitting them. Extended changesets with the necessary methods to the predecessor data and proper per-revision maps. file: [2878f839] check-in: [e50f9ed5] user: aku branch: trunk, size: 11394
03:47
Continued work on pass 8. Renamed 'retrograde' to 'Backward Branch', should be easier to understand, and completed the predicate testing if a branch changeset is backward or not. file: [2f61c9c5] check-in: [4f1b60dd] user: aku branch: trunk, size: 7567
03:33
Continued work on pass 8, added outline for handling of retrograde branches, extended changesets with predicate allowing us to find the branch changesets. file: [a4b4de49] check-in: [4866889e] user: aku branch: trunk, size: 6021
03:21
Extended changeset class with in-memory database mapping from changeset ids to the proper object, and extended the objects with position information and associated accessors. Extended pass 8 to load the commit order computed in pass 6, this is stored in the new position slot of changesets, and an inverted index mapping from position to changeset at that position. file: [5bbb1492] check-in: [de4cff41] user: aku branch: trunk, size: 4789
2007-11-21
04:44
Fixed typo in cycle breaker logging. Extended pass 8, wrote the outline with all the relevant custom callbacks. file: [20494b63] check-in: [1f600181] user: aku branch: trunk, size: 4110
04:36
Cycle breaker, API change. The changesets are now communicated via a retrieval callback instead of directly. Updated passes 6 and 7. This allowed us to move the start/done graph exports into the cyclebreaker as well. Changeset selection in pass 8 now in separate command too for this. file: [dbc8fff9] check-in: [2a0ec504] user: aku branch: trunk, size: 3513
2007-11-20
06:59
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. file: [c92253ed] check-in: [7f15be90] user: aku branch: trunk, size: 3467
2007-11-16
06:53
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. file: [9a96d449] check-in: [e7c805f1] user: aku branch: trunk, size: 3384 Added