File History
Not logged in

History of tools/cvs2fossil/lib/c2f_pbreakacycle.tcl

2008-02-27
08:00:54 [6d6903cdca] part of check-in [83ecb5b945] Fix comment typo, and add comment about possible simplification. (By: aku on 2008-02-27 08:00:54) [diff] [annotate]
2008-02-24
18:01:40 [9de68fa960] part of check-in [f637d42206] Updated my notes regarding memory usage. Converted more locations to incremental query processing via 'state foreachrow', now throughout the importer. (By: aku on 2008-02-24 18:01:40) [diff] [annotate]
2007-12-05
02:24:25 [3f3d02eb94] part of check-in [229050721f] 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. (By: aku on 2007-12-05 02:24:25) [diff] [annotate]
2007-12-04
04:54:10 [4af9517982] part of check-in [711e000206] 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. (By: aku on 2007-12-04 04:54:10) [diff] [annotate]
2007-12-02
23:47:45 [7e073778fc] part of check-in [e288af3995] 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. (By: aku on 2007-12-02 23:47:45) [diff] [annotate]
20:04:40 [9244bb5c27] part of check-in [00bf8c198e] 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. (By: aku on 2007-12-02 20:04:40) [diff] [annotate]
06:58:49 [f65b1a9322] part of check-in [a437da486d] Added progress output to the breaking of backward branches. (By: aku on 2007-12-02 06:58:49) [diff] [annotate]
2007-11-30
03:57:19 [2c3ba3a1ce] part of check-in [b42cff97e3] 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. (By: aku on 2007-11-30 03:57:19) [diff] [annotate]
2007-11-29
09:16:33 [da5cab23e3] part of check-in [80b1e8936f] Renamed state table 'csrevision' to 'csitem' to reflect the new internals of changesets. Updated all places where it is used. (By: aku on 2007-11-29 09:16:33) [diff] [annotate]
09:14:51 [a5b0f59e73] part of check-in [af5904e6b7] Updated commentary regarding cycles at this point, items instead of comments, etc. (By: aku on 2007-11-29 09:14:51) [diff] [annotate]
07:50:36 [72b7ac3d6c] part of check-in [2c9c26815f] Added missing state declarations. (By: aku on 2007-11-29 07:50:36) [diff] [annotate]
2007-11-28
05:39:49 [143b6f64eb] part of check-in [47d52d1efd] 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. (By: aku on 2007-11-28 05:39:49) [diff] [annotate]
2007-11-27
09:07:37 [7ef64f5370] part of check-in [6b520e7d97] 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). (By: aku on 2007-11-27 09:07:37) [diff] [annotate]
04:26:56 [642a0a9f2e] part of check-in [8c6488ded2] 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). (By: aku on 2007-11-27 04:26:56) [diff] [annotate]
02:37:51 [949289215b] part of check-in [bf83201c7f] Outline for more integrity checks, focusing on the changesets. (By: aku on 2007-11-27 02:37:51) [diff] [annotate]
2007-11-25
07:54:09 [6aba1b2f01] part of check-in [b679ca3356] Code cleanup. Removed trailing whitespace across the board. (By: aku on 2007-11-25 07:54:09) [diff] [annotate]
07:44:24 [2eea5c9c18] part of check-in [1ea319fb67] Another helper, textual, write changeset data to stdout. (By: aku on 2007-11-25 07:44:24) [diff] [annotate]
03:05:21 [456c81fca5] part of check-in [d743f04bd2] Moved more parts taken over by the top. sort passes out the breaker passes, and renumbered them. (By: aku on 2007-11-25 03:05:21) [diff] [annotate]
2007-11-24
05:31:30 [c41eb33de6] part of check-in [87cf609021] Created convenience methods to create the human readable repesentation of a changeset and lists of such, and made liberal use of them. (By: aku on 2007-11-24 05:31:30) [diff] [annotate]
04:19:15 [42309dffc2] part of check-in [6d63634309] Tweaked log output a bit. Bugfixes: Forgot to propagate the border information into SplitRevisions, and a varname typo. (By: aku on 2007-11-24 04:19:15) [diff] [annotate]
03:56:46 [ba2a0b846b] part of check-in [7ed2f29d7a] Updated passes 6 and 8 for to the changtes in the cycle breaker API (changed signature of save callback). (By: aku on 2007-11-24 03:56:46) [diff] [annotate]
2007-11-22
04:21:37 [2878f83999] part of check-in [e50f9ed55e] 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. (By: aku on 2007-11-22 04:21:37) [diff] [annotate]
03:47:38 [2f61c9c570] part of check-in [4f1b60dd16] 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. (By: aku on 2007-11-22 03:47:38) [diff] [annotate]
03:33:32 [a4b4de4900] part of check-in [4866889e88] Continued work on pass 8, added outline for handling of retrograde branches, extended changesets with predicate allowing us to find the branch changesets. (By: aku on 2007-11-22 03:33:32) [diff] [annotate]
03:21:43 [5bbb149286] part of check-in [de4cff4142] 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. (By: aku on 2007-11-22 03:21:43) [diff] [annotate]
2007-11-21
04:44:13 [20494b63ab] part of check-in [1f60018119] Fixed typo in cycle breaker logging. Extended pass 8, wrote the outline with all the relevant custom callbacks. (By: aku on 2007-11-21 04:44:13) [diff] [annotate]
04:36:13 [dbc8fff944] part of check-in [2a0ec504c5] 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. (By: aku on 2007-11-21 04:36:13) [diff] [annotate]
2007-11-20
06:59:03 [c92253ed90] part of check-in [7f15be9078] 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. (By: aku on 2007-11-20 06:59:03) [diff] [annotate]
2007-11-17
00:29:42 [9a96d44941] part of check-in [38b967dcf5] Merge aku's CVS import changes into the main line. Fix a small bug in diff.c. (By: drh on 2007-11-17 00:29:42) [annotate]
2007-11-16
06:53:01 [9a96d44941] part of check-in [e7c805f137] 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. (By: aku on 2007-11-16 06:53:01) [annotate]