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

200 descendants and 200 ancestors of [c74fe3de]

Corrected tagxref.srcid/rid confusion in the queries. Links now go where i want them to. check-in: 0ff4e918 user: stephan tags: trunk
The entire header, including the menu bar, is now generated by TH script. This allows the menu bar to be customized by editing the header script. check-in: ffe92f1a user: drh tags: trunk
TH1 script now used to render the header and footer of each page. check-in: 3ad9a5e2 user: drh tags: trunk
Create the interface between TH1 and the rest of fossil. Subscript is still being used, though. This is a preparatory step toward cutting over to TH1. check-in: 13e16c82 user: drh tags: trunk
Add the TH1 code to the source tree and makefile. But do not yet make any calls to TH1. check-in: 4ee9e31a user: drh tags: trunk
Merge with aku's branch. check-in: be2f99e6 user: drh tags: trunk
Update homepage with links to competing projects. check-in: 852dbbb6 user: drh tags: trunk
Tuned the handling of the vendor branch in case we have multiple different symbols representing it. The import pass now effectively merges these symbols into a single line of development. check-in: 6d5de5f1 user: aku tags: trunk
Extended my notes. check-in: de03c8b1 user: aku tags: trunk
Time information extended to include a total summed over all passes. Output extended to include formatted time data (hours, minutes, seconds). check-in: 7817ff22 user: aku tags: trunk
Report destination file for repository, and fix bug with the naming of the destination triggered when importing a repository in toto. check-in: 0d02fe6c user: aku tags: trunk
Added code to skip of administrative .cvsignore files. Added code to detect and warn about dot files (.FOO). Allow the user to import dot files by converting their names to non-dot form (.FOO -> dot-FOO). check-in: c1dc8701 user: aku tags: trunk
fixed a string memleak in baseline_zip_page() check-in: 1ce0ac53 user: stephan tags: trunk
Fix grammar check-in: c1d9e0f4 user: bch tags: trunk
Issue a warning after a commit if the commit causes a fork. check-in: 49b59bc5 user: drh tags: trunk
Truncate the name of the toplevel directory added to ZIP archives to be the first 10 characters of the UUID. check-in: 73a9b3d5 user: drh tags: trunk
Change zip archiver to make use of blob.c mechanisms for adding prefixes to file names. Remove C constructs that are not commonly supported. check-in: 4bbb00a8 user: drh tags: trunk
minor buffer length fix for the previous change check-in: 091499ec user: stephan tags: trunk
Merge in changes from Andreas's branch. check-in: 6b78df38 user: drh tags: trunk
Merge in changes from Stephan's branch. check-in: 8672e243 user: drh tags: trunk
Fix the branch subcommand so that the branch name tags it creates begin with "sym-". check-in: ce08928a user: drh tags: trunk
Rename the 'clearsign' setting to 'pgp-command'. Remove the 'safemerge' setting - safemerge is on by default and cannot be disabled. check-in: 5cc845cf user: drh tags: trunk
zip.c: Refactored zip_of_baseline() to accept an (optional) "synthetic" directory name. All zipped files are added to that subdir. The default name is currently the UUID of the zipped baseline. check-in: 974fd923 user: stephan tags: trunk
Improvements to annotated diffs - now takes into account contributions from other branches. check-in: 840699ec user: drh tags: trunk
refactored to add a shared submenu. check-in: da106eb0 user: stephan tags: trunk
added a link (for admin users only) to the admin page check-in: c4d6b89e user: stephan tags: trunk
Merge two branches that were created within one second of one another. There is a race condition in the anti-forking logic that allowed this fork to occur. check-in: 373e42de user: drh tags: trunk
Avoid showing a short block of unchanged code at the end of a unified diff. check-in: ba433cc4 user: drh tags: trunk
correction to the 'warning' text in admin_sql_page() check-in: 138177c3 user: stephan tags: trunk
minor efficiency hack in tagview_page_list_tags() check-in: 6d67f3c7 user: stephan tags: trunk
Fail with an error if a file is outside the checkout tree. check-in: b3ec774a user: drh tags: trunk
Properly initialize the array containing the changesets split by type. check-in: 21d9664f user: aku tags: trunk
fixed a 2-string memleak in tagview_page_list_tags() check-in: 2ae78900 user: stephan tags: trunk
Rename admin_sql_page.c to admin.c. Refactor the strxform functions into SQL functions. Refactor the db_generic_query_view() routine. Fix multiple security vulnerabilities. Bring the code closer into compliance with style guidelines. check-in: 007d1ce4 user: drh tags: trunk
Remove tokenize_path.c. Is not used for anything and does not follow the coding style of the rest of fossil. The 16-line hyperlinked_path() function in browse.c seems to accomplish the same thing. check-in: 76e637a9 user: drh tags: trunk
typo fix check-in: 66b13f10 user: bch tags: trunk
added missing #include check-in: 58ee4e6e user: stephan tags: trunk
refactored db_generic_query_view() to use sqlite3 API directly so that it can treat SQL errors as non-fatal. check-in: 0dc3e7a0 user: stephan tags: trunk
added tokenize_path.c, containing a convenient path-like-string tokenizer and render_linked_path() to HTML-ize a path. check-in: 7f9226a8 user: stephan tags: trunk
Remembered a problem I have to deal with, added to my notes. check-in: d2b1d3be user: aku tags: trunk
Updated the copyright information of all files touched in the new year. check-in: 66235f24 user: aku tags: trunk
Updated my notes tracking the known problems. check-in: 9f297fed user: aku tags: trunk
Fixed bug computing a symbol's parent. preferedparent is the voting table, not the home of the definite information. The bug caused the use of the wrong parent lod during the import of changesets. Luckily the chosen parent was not known yet, causing an abort. check-in: a5840849 user: aku tags: trunk
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. check-in: 0d13da30 user: aku tags: trunk
Print the tree of symbols (i.e. definite parents) at high verbosity levels. check-in: 70acbf63 user: aku tags: trunk
Remove string_xform.c from the makefile. Require a "sym-" prefix on tags used to name baselines or branches. The prefix is omitted when the tag is used for this purpose; it is only there to avoid ambiguity with other built-in tag names. check-in: 41cf3e7c user: drh tags: trunk
Removed annoying yellow/red placeholders. Added links to your wiki changes and your *file* commits. check-in: 4280e0d1 user: stephan tags: trunk
Moved string_xform.c code into encode.c, since that code serves a similar purpose. check-in: 91f151d5 user: stephan tags: trunk
Moved string_xform.c code into encode.c, since that code serves a similar purpose. check-in: 97db3c04 user: stephan tags: trunk
Added tracking of file removal in changesets. check-in: c9270189 user: aku tags: trunk
Moved log output for changeset log message to higher verbosity level. check-in: 8ec5d8c8 user: aku tags: trunk
Accept a last trunk-changeset on a vendor branch with the :trunk: already defined, and warn. Force changeset to be vendor-only, out of trunk. check-in: a1bbf19d user: aku tags: trunk
Removed bogus (early) unset. check-in: 7caaf7af user: aku tags: trunk
Added /admin/sql page. Added a 'const' to db_generic_query_view() check-in: 6f05b429 user: stephan tags: trunk
Added style info to db_generic_query_view(), so it can be styled via css check-in: 0095e24b user: stephan tags: trunk
Hyperlinks to directory browser pages on the pathname in the title of the file history viewer, finfo. check-in: a20dcb5c user: drh tags: trunk
On the printf extension converters (ex: %T, %w) the "alternate form flag" (ex: %#T, %#w) means first read an integer from the argument list and then only process that number of characters from the string or blob that is read next from the argument list. check-in: 8c3ec003 user: drh tags: trunk
Add support for annotation in the web interface. check-in: eae7ddfa user: drh tags: trunk
Allow manifests with zero files. This fixes a problem in which some files do not appear in the filename table. check-in: c8da83ca user: drh tags: trunk
Added link to /timeline?u=... Added several TODO markers. check-in: d27a905b user: stephan tags: trunk
Added 'achtung' class. See the code comments. check-in: b5b04dcf user: stephan tags: trunk
Begin inserting code to implement an "annotate" command. check-in: 9b68bc33 user: drh tags: trunk
Additional cleanup in the differencing engine. The new "dir" webpage now uses name= instead of the d= for the query parameter. check-in: e81cc91a user: drh tags: trunk
Improvements to comments on the diff algorithm code. Completely remove the older Wagner/Myers algorithm which had been commented out. check-in: eeea77f3 user: drh tags: trunk
Tweaks to the diff algorithm give a 4x performance increase. Now comparable to command-line diff. check-in: e8cf0061 user: drh tags: trunk
Better error message when attempting to create a new repository in a directory that does not exist. check-in: 97ff24de user: drh tags: trunk
Added some musings to one of the situations to deal with. check-in: 812c91bb user: aku tags: trunk
Reworked the revision import to use the new state tracking system instead of the simple array. Moved some log outputs. Added a file listing the known problems to prevent me from forgetting stuff as it piles up :/ check-in: e1dbf318 user: aku tags: trunk
Moved the really large log output during revision import (log message, and command) to very high log levels. check-in: e7138d7f user: aku tags: trunk
Added classes to track the state of a workspace, and of the whole revision import. check-in: d011e0b0 user: aku tags: trunk
Added note of an idea taken over by Mark Janssen. check-in: 4e02d677 user: aku tags: trunk
Fixed a typo. check-in: 2f70125d user: aku tags: trunk
Add file and directory browsing capabilities to the web interface. check-in: e487b77b user: drh tags: trunk
Honor the -f flag on commit. (It was using -r in place of -f due to a typo, apparently.) check-in: e0580dfe user: drh tags: trunk
login_page() now honors the 'g' (goto) parameter after a successful password update check-in: 44811a65 user: stephan tags: trunk
Added rudimentary /my page. check-in: 334f8e6e user: stephan tags: trunk
refactored some /tagview code into more generic bits. Added string_xform.c. check-in: 9c01af2d user: stephan tags: trunk
added db_generic_query_view() to simplify /tabview and /my implementations check-in: 74ba41a5 user: stephan tags: trunk
tclfossil: added revlist command check-in: 1c92462c user: mjanssen tags: tclfossil-1
Fixed a memory leak in tagview_page_list_tags(). Minor other refactorings. check-in: 2cb3290e user: stephan tags: trunk
Corrected incorrect access rights check (did require Setup rights). Documentation corrections/additions. A few style conformance formatting changes. check-in: b81e93f5 user: stephan tags: trunk
got rid of '... might be used initialized' warnings check-in: 649dd8a6 user: stephan tags: trunk
Refactored to use a shared query-rendering routine. check-in: 02a7c850 user: stephan tags: trunk
tclfossil, starting with db_ commands check-in: 7f9c5ee7 user: mjanssen tags: tclfossil-1
Merge in some changes to the CGI reply generator that we made back in early December but got lost on an abandoned branch. Distributed version control is nice, but it also leaves open the real danger of losing changes this way. We need to work on interface features to minimize the risk of losing changes like this, and to identify lost changes quickly. check-in: b312f5ff user: drh tags: trunk
Documentation updates. check-in: c403f9dc user: drh tags: trunk
Merged importer to mainline. check-in: 05239834 user: aku tags: trunk
Removed the now obsolete textrange information from the revision table and updated the file revision code to not store its textrange any longer. check-in: 3e76f2a5 user: aku tags: trunk
Added a few search features (name/id/name-like). Changed default view to only show the 10 [arbitrarily chosen #] most recent tags. Still need to sort out tags for different types of entries (wiki/ticket/baseline) check-in: 2ab3a2f6 user: stephan tags: trunk
Modified filtering pass to drop the blobs of excluded revisions, for them we can be sure that we will not need them later, as whole branches are dropped. Modified the file import to use the new blob information to setup the expansion graph. This fixes the trouble we had with archive files in bwidget. They are now properly expanded. check-in: 83d75a6c user: aku tags: trunk
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 tags: trunk
Stylistic changes to the C code that implements the tagview page. check-in: 10437374 user: drh tags: trunk
A completely new diff algorithm. It is not guaranteed to find the minimum difference between files, but it seems to do a good job and runs much faster on larger files. But command-line diff is still faster for really large files. More work needed. check-in: 95c07a50 user: drh tags: trunk
Reworked the storage of the text range a bit, split immediately (settext) and store the pieces, instead of splitting everytime a piece is needed. check-in: f94f7e17 user: aku tags: trunk
added /tagview page - a simple browse-by-tag interface check-in: 02d1ed6a user: stephan tags: trunk
corrected two 'var may be used uninitialized' warnings check-in: 01d3c338 user: stephan tags: trunk
fixed a minor memleak in update.c:revert_cmd() check-in: 22cc813f user: stephan tags: trunk
Merged with mainline. check-in: dbdc1601 user: aku tags: trunk
Changeset handling, extended logging of how parent is determined. Fossil access, fixed importrev call to use correct workspace/repository. Fixed handling of output, stripping unwanted text, checking of output syntax. Extended logging. Added final 'rebuild'. NOTE: formation of the changesets/manifests is buggy, is not tracking unchanged files across changesets. Further not yet tracking when files have been removed. check-in: 9214c118 user: aku tags: trunk
Dropped primary key of temp table __im, record ids are not unique. Scenario: Several empty files. All have the same id, different paths. check-in: dfb6ee3b user: aku tags: trunk
Fix use (scoping) of revision items when looking for vendor branch data. check-in: b405f4fc user: aku tags: trunk
Fix bad setup of comment for manifest. check-in: bd9703de user: aku tags: trunk
Fix the makefile so that you can build twice in a row from the source directory and it still works. check-in: 1b52d130 user: drh tags: trunk
Update sqlite to version 3.5.5 plus patches. check-in: 6cdf4709 user: drh tags: trunk
Fix a typo on the user setup page. Reported via email by Brad Harder. check-in: 5d3783bd user: drh tags: trunk
Activated invokation of the fossil command importing a revision. check-in: 41c9b799 user: aku tags: trunk
Fixed description of file checkin.c. Implemented new command test-import-manifest. Updated fossil accessor code in the importer to the changed command line API of test-import-manifest. check-in: b7a93530 user: aku tags: trunk
Made remove_from_argv public for use by the upcoming test-import-manifest command. Fixed description of verify_all_options. Initialized variable to silence gcc warning. check-in: da4f0c26 user: aku tags: trunk
Reworked the code determining the parent of the currently committed changeset. It should now handle the transition from vendor branch to trunk correctly. check-in: e8efbc31 user: aku tags: trunk
Add a configuration option to the Setup/Access page that allows the user to set the xfer download limit. Increase the default xfer download limit to 5 million bytes. Increase the minimum phantom request limit from 100 to 200. check-in: bb3a25e2 user: drh tags: trunk
The client-side of a sync uses an adaptive approach to limit the number of "gimme" requests on each HTTP round-trip. This reduces traffic on a large clone. The number of "gimmes" on each round-trip is the larger of 100 or twice the number of files received on the previous cycle. check-in: 95fab8c6 user: drh tags: trunk
Fix a bug in the db_get_int() routine that was causing the default value to be ignored - resulting in very slow clones for systems without a configuration database. check-in: bf1a30c9 user: drh tags: trunk
Added high-verbosity (level 11) logging to trace the application of rcs patches. check-in: e5ae612c user: aku tags: trunk
Tinkered with the revision information transfered from a changeset to push, to the fossil accessor code, modified the logging as well. check-in: 7c43583d user: aku tags: trunk
Moved the most complex parts of pushto into their own commands. check-in: 3cd599ca user: aku tags: trunk
Created fossil in Tcl branch check-in: 2f165897 user: mjanssen tags: tclfossil-1
Branch created tclfossil check-in: abbdb0e8 user: mjanssen tags: tclfossil-1
Added basic import of changesets. Note that this code is incomplete with regard to handling the various possible interactions between a vendor-branh and trunk. check-in: 348e45b0 user: aku tags: trunk
Added placeholder code to the fossil accessor class for the import of a revision. currently only logging the call. check-in: f9e0d23d user: aku tags: trunk
Broke package dependency cycle introduced when moving the cset load code from the InitCsets pass to the cset class. check-in: 9e1b461b user: aku tags: trunk
Extended log writing to handle multi-line log messages. check-in: 81a297a6 user: aku tags: trunk
Moved the code loading changesets from state to its proper class. check-in: 49dd66f6 user: aku tags: trunk
Fixed the names for the case-sensitive file operations. check-in: ed13b28b user: aku tags: trunk
Moved the new case-sensitive file checking code into the misc package with descriptive command names, to recapture clarity of code at the calling places. check-in: edc46651 user: aku tags: trunk
Error message on "commit" or "user default" if the user does not exist. check-in: e2a42f7a user: drh tags: trunk
Fix a bug in the "user default" command. check-in: 0921b68f user: drh tags: trunk
cvs2fossil: add -nocomplain flag to glob to prevent an error if no files/dirs match check-in: 6625739e user: mjanssen tags: trunk
Changes to cvs2fossil to import tcllib CVS into fossil on Win32    * using [::file] instead of [file] in snit methods to get the core file command * taking care of files that only differ in case in the Attic and the repo on case insensitive FS * passing platform specific check-in: 7208c7ac user: mjanssen tags: trunk
REPLACE into the event table rather than INSERT. check-in: 7aa9a2e2 user: drh tags: trunk
Added log output to make the log during file import more complete. check-in: e60ba158 user: aku tags: trunk
Added debug helper methods. Fixed description of symbol reference in instances. check-in: 970be48f user: aku tags: trunk
Allow for detached branches when checking lod consistency. Fixed formatting nit. Added debug helper method. check-in: d3aa3388 user: aku tags: trunk
Fixed bug in the code detaching a vendor branch. Left link to removed parent dangling, and killed connection to first on branch. No more. check-in: 0adaabf1 user: aku tags: trunk
Added comments to the sql commands in the integrity checks. check-in: 727f370c user: aku tags: trunk
More comments on sql statements. check-in: 6809145e user: aku tags: trunk
More comments on sql statements, slight reordering of some tables and conditions. check-in: f7fe15cd user: aku tags: trunk
Added comments explaining the select statement checking revision/file/project/metadata integrity check-in: 808fbc47 user: aku tags: trunk
Removed two unused classes. check-in: 97e0e9dd user: aku tags: trunk
Reworked time keeping in the pass manager, the microseconds kept by by the 'time' command flow over after roughly 72 minutes (2^32 microseconds). We now use 'clock seconds' to explicitly keep time. This should flow over only after abuut 136 years. The loss of resolution is ok, the converter does not need it. Seconds are good enough. check-in: 9a763fe5 user: aku tags: trunk
Extended traversal core to allow custom labeling of the log output immediately before the traversal starts. check-in: b81901ad user: aku tags: trunk
Removed the automatic destruction of the traversed graph from the traversal core and put it into the caller (import only, currently). check-in: b59cdc7f user: aku tags: trunk
Added progress feedback to the file import, and moved the log output to level 8. check-in: 08f80857 user: aku tags: trunk
Fixed handling of empty revisions. check-in: bf0b70d5 user: aku tags: trunk
Merged mainline into my branch to get the newest application. check-in: d0305b30 user: aku tags: trunk
Bugfix. Translation implies encoding, not the reverse. This caused problems when parsing files with mixed-mode line-endings. The generated char offsets and lengths were off. Found during expansion. check-in: 6f1c4424 user: aku tags: trunk
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 tags: trunk
Extended file handling with main logic to import an archive into fossil. Main parts are determining the various orders for expansion and import, and expanding all revisions in an archive into full texts, iteratively applying the stored deltas. check-in: e100314e user: aku tags: trunk
Integrated the new fossil management class with the option processor. New option --fossil to specify the fossil executable if it was not found in the PATH, or to overide the PATH. check-in: 1a20a81f user: aku tags: trunk
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 tags: trunk
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 tags: trunk
Extended project class with method return full path of the project, i.e. inclusive its repository base path. check-in: 82e35d33 user: aku tags: trunk
Went to explicit var-substitution for the dynamic sql queries, makes formatting easier. check-in: 0ee9711e user: aku tags: trunk
Fixed typo, although it did not break anything. check-in: 5b2d15f1 user: aku tags: trunk
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. check-in: 22905072 user: aku tags: trunk
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. check-in: c4003e7b user: aku tags: trunk
Removed lots of now dead code. Added a note to the last remaining user of the changeset method 'nextmap'. check-in: 3c0ef2c3 user: aku tags: trunk
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. check-in: 711e0002 user: aku tags: trunk
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. check-in: e288af39 user: aku tags: trunk
Actually put the code for the new pass into the repository. check-in: 060513f2 user: aku tags: trunk
Importer Status...    Speed. This is now mostly acceptable. The one exception is pass 'BreakAllCsetCycles'. The reason is that the limit computation it does for backward branches still uses the inefficient file-level dependency computation. This will be tackled in short order. For the other passes the file spent is 'CsetsDeps' is recouped by the much faster graph setup.    Memory. This seems to be mostly acceptable as well, with the exceptions of 'BreakAllCsetCycles' (again, for reasons see above), and 'InitCsets'. It seems to happen while the pass breaks internal dependencies, but there is no hard data. I have to measure using a memory-debug enabled tclsh. I suspect either the actual internal dependencies, or the pseudo-dependencies. Maybe combined with a bad choice of data structures. Well, measuring first. check-in: e8c374f6 user: aku tags: trunk
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 p... check-in: 00bf8c19 user: aku tags: trunk
Added progress output to the breaking of backward branches. check-in: a437da48 user: aku tags: trunk
Finally committing another disabled integrity constraint for changesets, explanations in the comments. check-in: fd93aa26 user: aku tags: trunk
Bugfix. Typo. check-in: c7847514 user: aku tags: trunk
Modified loop check in cycle breaker to abort immediately on first looped changeset. check-in: 487bb1c6 user: aku tags: trunk
Fix table linkage in query, and duplicated conditions :( check-in: f7cca3f0 user: aku tags: trunk
Performance bugfix. nextmap/premap can still be performance killers and memory hogs. Moved the computation of sucessor changesets down to the type-dependent code (new methods) and the SQL database, i.e. the C level. In the current setup it was possible that the DB would deliver us millions of file-level dependency pairs which the Tcl level would then reduce to tens of actual changeset dependencies. Tcl did not cope well with that amount of data. Now the reduction happens in the query itself. A concrete example was a branch in the Tcl CVS generating nearly 9 million pairs, which reduced to roughly 200 changeset dependencies. This blew the memory out of the water and the converter ground to a halt, busily swapping. Ok, causes behind us, also added another index on 'csitem(iid)' to speed the search for changesets from the revisions, tags, and branches. check-in: 9c570550 user: aku tags: trunk
Bugfix. Have the symbol dependency retrieval commands actually return something. check-in: 71201058 user: aku tags: trunk
Deactivated caching of the nextmap/premap data, with the indices the retrieval seems to be fast enough to allow us to reduce mem consumption. Tweaked log output, and sql formatting. check-in: ac026148 user: aku tags: trunk
Bugfix in ValidateFragments, tweaked comment a bit, bugfix in SQL, reordered tables in the successor/predecessor queries a bit to show the actual progression of their use. check-in: fbfb5318 user: aku tags: trunk
Fixed typo. Grr. check-in: 0a97ad38 user: aku tags: trunk
Added progress output to the code loading up the graph to traverse, nodes, and arcs. check-in: 41d41c7b user: aku tags: trunk
Added ability to declare indices on tables in the persistent state. Used this to declare indices on critical columns. Slows down the transactions saving changesets, this however is made up when it comes to successor/predecessor retrieval of changesets. check-in: 74854a30 user: aku tags: trunk
Bugfix. Handle free-floating branches (their root revision was removed as unnecessary). check-in: 79c227a9 user: aku tags: trunk
Helper updated to changes in state definition. check-in: 5bbc7d4c user: aku tags: trunk
Updated helper app to changed state definition (csrevision -> csitem). check-in: fc635d59 user: aku tags: trunk
Fixed typo of keyword. check-in: 3db03be6 user: aku tags: trunk
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. check-in: 0af7a3c8 user: aku tags: trunk
Moved the integrity checks for split fragments into separate command. Reworked breaking of internal dependencies to contrain the length of the pending list. That part of the system is still a memory hog, especially for large changesets. Added notes about this and the successor retrieval being a bottleneck. check-in: c14e8f84 user: aku tags: trunk
Fixed bug in new changeset code, tagged and untagged item lists went out of sync. check-in: facb4a87 user: aku tags: trunk
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. check-in: b42cff97 user: aku tags: trunk
Renamed state table 'csrevision' to 'csitem' to reflect the new internals of changesets. Updated all places where it is used. check-in: 80b1e893 user: aku tags: trunk
Fix bad variable name. check-in: 48593049 user: aku tags: trunk
Updated commentary regarding cycles at this point, items instead of comments, etc. check-in: af5904e6 user: aku tags: trunk
Extended checks for looped changesets. check-in: 96064544 user: aku tags: trunk
Renamed changeset method to describe modified results, and updated the one invoker check-in: 61829b07 user: aku tags: trunk
Renamed changeset method to describe modified results, and updated the one invoker. Modified the sorting of time ranges. Now by max, min as tiebreaker, and object name as last tiebreaker. check-in: 04d76a9e user: aku tags: trunk
Added missing state declarations. check-in: 2c9c2681 user: aku tags: trunk
Added mising state declarations. check-in: 31d0fe7d user: aku tags: trunk
More realignment of variable names with their content, in pass 5. check-in: 27f093d2 user: aku tags: trunk
Simplified some code dealing with the item -> changeset map, using the changed semantics (1:n -> 1:1). check-in: 39e19c0c user: aku tags: trunk
Brought the variable names into alignment with the semantics, now again naming what is stored in them. check-in: deab4d03 user: aku tags: trunk
Reworked the in-memory databases of changesets. Objects now hold items, not only revisions. Tags, and branches are new possibilities. Lists of ids go to the type-dependent retrieval command. List of tagged items (type/id pairs) come back, and are in the API. The 1:n map revisions to changesets is now an 1:1-map tagged items to changeset. check-in: 0fcfbf78 user: aku tags: trunk
Implemented time ranges and dependency retrieval for the tag and branch based changesets. check-in: b1666f8f user: aku tags: trunk
Moved the existing successor/predecessor code from main class to the proper singleton. Fixed config of main class, isn't simple dispatch any longer. Simplified calculation of the readable representation of changesets and removed code which has become superfluous. check-in: 70d22835 user: aku tags: trunk
Added equivalent checks for the tag and branch based changesets. check-in: 4b15fa34 user: aku tags: trunk
Shuffled and updated the existing checks of revision changesets. check-in: de10b230 user: aku tags: trunk
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. check-in: 7c28fe13 user: aku tags: trunk
Updated the code printing the changeset statistics to know about change to the changeset types. check-in: 8e301242 user: aku tags: trunk
Brought knowledge of the new types to the state definition, changed the creation of the initial changesets to use tags and branches. check-in: 215d2f1a user: aku tags: trunk
Integrate the new singletons with the main class, route the relevant places to them. check-in: c74fe3de user: aku tags: trunk
This commit starts a series of incremental changes not quite completely overhauling the handling of changesets, i.e. of project-level revisions. Actually this series of changes already started with [8ce7ffff21] as the bug it fixes was found when the first parts of the overhaul tripped the new integrity conditions for the modified changesets.    Background: In the last few days I repeatedly ran against the wall of an assertion in pass 9, last of the cycle breakers, with the revision changesets coming in out of order when the symbols were added to the dependency graph.    While walking to the office, and later re-reading the relevant parts of cvs2svn again I had several insights. Trigger was the realization that giving the tag changesets successor dependencies was wrong. Tags describe a state, they have no successors. This caused the re-read, and I recognized that my handling of the symbol changesets was completely wrong, that with using revisions as their data. It should have been the tags and branches. From there their actual dependencies (versus my reuse of revision dependencies) fell out naturally.    I have decided to commit my rewrite of the internals incrementally to make it easier to follow them, despite leaving the sourcebase in an unusable state during the series. One big commit would be much more difficult to understand.    The... check-in: 27b15b70 user: aku tags: trunk
Bugfix in FilterSym pass. Grafting branches operated on the tags table :( check-in: 8ce7ffff user: aku tags: trunk
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. check-in: 47d52d1e user: aku tags: trunk
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). check-in: 6b520e7d user: aku tags: trunk
Bugfix: Sort pending nodes fully deterministic, and moved to separate helper command. Tweaked log output. check-in: 3e18606b user: aku tags: trunk
Updated to extended changeset string, and added tabular formatting. Further tweaked output, putting timestamp adjust messages on the same line as the changeset itself. check-in: 1c39e576 user: aku tags: trunk
Changesets, extended human readable representation, and tweaking of log output. check-in: 911d56a8 user: aku tags: trunk
Bugfix in the generation of the initial symbol changesets. Keep entries apart per line-of-development. check-in: 2e07cd71 user: aku tags: trunk
Bugfixes when generating revision changesets. (1) The dependencies for a revision are a list, not single. (2) Use pseudo-dependencies to separate revisions of the same file from each other if they have no direct dependencies in the state. check-in: 67876506 user: aku tags: trunk
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). check-in: 8c6488de user: aku tags: trunk
Outline for more integrity checks, focusing on the changesets. check-in: bf83201c user: aku tags: trunk
Code cleanup. Removed trailing whitespace across the board. check-in: b679ca33 user: aku tags: trunk
Another helper, textual, write changeset data to stdout. check-in: 1ea319fb user: aku tags: trunk
Tweaked log output of the topological sorter (revisions) to be tabular (aligned columns), added information (time ranges). check-in: bcc630d3 user: aku tags: trunk
Changesets: Added accessor for to retrieve number of changesets known, and dropped the "trunk root -> NTDB root" dependency, is problematic. check-in: 96167b2a user: aku tags: trunk
Fixed log output for pass 10, and added missing command. check-in: 63052cb6 user: aku tags: trunk
Extended cycle breaker with debug facility allowing the user to watch the neighbourhood of specific changesets during the traversal. Extended label information, highlighting of the nodes of interest. Tweaked log output a bit. check-in: 97b4405e user: aku tags: trunk
State log output, moved to slightly higher verbosity level to allow them to be suppressed. check-in: 00e041dd user: aku tags: trunk
Dot export extended, allow graph to define label color for highlighting. check-in: eb43120a user: aku tags: trunk
Filerevtree helper. Added missing requirements, and dialed the verbosity down. check-in: 124fef5b user: aku tags: trunk
Moved more parts taken over by the top. sort passes out the breaker passes, and renumbered them. check-in: d743f04b user: aku tags: trunk
Moved the parts taken over by the top. sort passes out the breaker passes, and renumbered them (comments). check-in: b6b7ff79 user: aku tags: trunk
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 tags: trunk
Tweaked log output of filtering pass a bit. check-in: b41127b9 user: aku tags: trunk
Tweaked human readable representation of changesets to include their type. check-in: 0868adf9 user: aku tags: trunk
Bugfix in pass manager, handling of open-ended pass specifications. check-in: 9668b164 user: aku tags: trunk
Tweaks of the log output, and reworked internals to expose not only breaking of cycles, but of paths as well. check-in: 54e9b0a1 user: aku tags: trunk
Created convenience methods to create the human readable repesentation of a changeset and lists of such, and made liberal use of them. check-in: 87cf6090 user: aku tags: trunk
Bugfix in changeset class. Documented and fixed the SQL statements pulling the successor and predecessor information out of the state. It mishandled the Trunk <-> NTDB transitions. check-in: 184c5632 user: aku tags: trunk
Bugfix in changeset class. Forgot to update the map from revisions to containing changesets when breaking the internal dependencies of the initial changesets. This affected only the first fragment as all the revisions put into separate fragments where still pointing to the original changeset. This lead to bogus links at the level of changesets, the changeset was seemingly still referencing itself. check-in: 17ec2d68 user: aku tags: trunk
Bugfix in the changeset class. The index from revisions to containing changesets is not 1:1, but 1:n. While only one revision changeset is possible there can also be zero or more symbol changesets. check-in: 8c9030e3 user: aku tags: trunk
Tweaked log output a bit. Bugfixes: Forgot to propagate the border information into SplitRevisions, and a varname typo. check-in: 6d636343 user: aku tags: trunk
Added a number of assertions and must-not-happens with associated log output. Plus some small tweaks, and notes. check-in: eabaea87 user: aku tags: trunk
Added missing node attributes in the Replace command. check-in: a99d5798 user: aku tags: trunk
Updated passes 6 and 8 for to the changtes in the cycle breaker API (changed signature of save callback). check-in: 7ed2f29d user: aku tags: trunk
Modified cycle breaker API. Hook for processed nodes now takes the graph as new first argument. Extended API, exposed method for dumping the current state of the graph, including ability to dump a sub graph. check-in: 5f5620fb user: aku tags: trunk
Extended the dot graph exporter to allow the export of a subgraph specified through a set of nodes. Default is the export of the whole graph, as before. check-in: 86f33190 user: aku tags: trunk
Added two more debugging helper applications. One to extract and show a file revision tree, the other to display a dot file generated by the importer during cycle breaking passes. check-in: 64d0019e user: aku tags: trunk
Added two helper applications which peek into a conversion state and generate graphs from it. Both helpers look at the tree of symbols and show it in toto (symbol tree), or restrict themselves to the branches, aka lines of development (lodtree). check-in: b8c35421 user: aku tags: trunk
Reworked the dot export internals a bit to be more general regarding labeling and attribute writing. Updated the cycle breaker to define proper labels. check-in: f2848471 user: aku tags: trunk
Tweaked the log output for the statistics a bit. check-in: 2630e506 user: aku tags: trunk
Fixed the calculation of possible parents for a detached NTDB. Has to be trunk. The symbols were skipped before, causing them to have no parents at all later on, forcing an abort after CollateSymbols. Added some high verbosity log commands for debugging of this area. check-in: 930ec162 user: aku tags: trunk
Fixed bug in the initialization of mybranchcode for changesets. check-in: 47e271a4 user: aku tags: trunk
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. check-in: e50f9ed5 user: aku tags: trunk
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. check-in: 4f1b60dd user: aku tags: trunk
Continued work on pass 8, added outline for handling of retrograde branches, extended changesets with predicate allowing us to find the branch changesets. check-in: 4866889e user: aku tags: trunk
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. check-in: de4cff41 user: aku tags: trunk
Modified the API for the construction of changesets a bit, now allowing their construction with the correct id, instead of correcting it later. Updated pass 5 to use this, and fixed bug where the id counter for changesets was left uninitialized, allowing the improper generation of duplicate ids. check-in: 65be27aa user: aku tags: trunk
Reworked the cycle breaker internals, moving the code handling the replacement of a changset (= node) with its fragments into a separate command. Extended the API, exposing the replacement operation, for use by passes. Added debugging code showing the set of consumable nodes for each iteration. check-in: ad7d5c2d user: aku tags: trunk
Moved the functionality for splitting a changeset based on the sets of revisions for the fragments to be into a separate command, and into the changeset class, for use outside of changeset links. check-in: 59207428 user: aku tags: trunk
Fixed typo in cycle breaker logging. Extended pass 8, wrote the outline with all the relevant custom callbacks. check-in: 1f600181 user: aku tags: trunk
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. check-in: 2a0ec504 user: aku tags: trunk
Cycle breaker, API extension. Added a hook to process the graph between setup and regular consummation. This will be used by pass 8. check-in: 1e177a4c user: aku tags: trunk
Cycle breaker, API change. Routing the core cycle breaking through a callback so that users can choose their own algorithms. Updated passes 6 and 7. Moven changesets selection in pass 7 to separate command. check-in: 2cf0462b user: aku tags: trunk
API change cycle breaker. The save callback command is now specified through a separate configuration command. Moved callback invokation to helper command. Updated pass 6. Moved changeset selection to helper command. check-in: d58423cd user: aku tags: trunk
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 tags: trunk
Added an option "--batch" with which the user can disable the feedback display standard to interactive use. check-in: 4e7dd05f user: aku tags: trunk
Added convenience command to the state package when the sql returns a single row. Added more statistics about revisions, tags, branches, symbols, changesets to various passes. check-in: 96b7bfb8 user: aku tags: trunk
Moved out-of-place state declarations to the proper phase (setup, not run). check-in: ce7fb48e user: aku tags: trunk
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 tags: trunk
Bugfix. Destroy graph object after use. check-in: 7b392868 user: aku tags: trunk
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 tags: trunk
Bugfix. When setting up or extended the changeset graph a changeset's successor may lay outside of the set of changesets under consideration, i.e. without a node in the graph. Ignore these. This did not (or only rarely) happen before the bugfix to the successor computation of changesets in project::rev (list instead of single). check-in: de64c94f user: aku tags: trunk
Bugfix. When I introduced the 'revisionbranchchildren' table to pass 2 I forgot to update pass 4 as well. Added code to drop the excluded revisons from this table as well, as either parent of branches, or branch child of some other revision. check-in: 2516f4a5 user: aku tags: trunk
Bugfix. In pass 5, loading the changesets used the type codes instead of the type names. Modified the SQL selecting the data to return the proper names. check-in: 341d96be user: aku tags: trunk
Added skeleton files for pass 7, the breaking of dependency cycles over symbol-based changesets. check-in: 258366a3 user: aku tags: trunk
Added note regarding 'RevisionTopologicalSortPass', which is not a separate pass for us, but part of pass 6, breaking cycles over revision changesets. check-in: f631d438 user: aku tags: trunk
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 tags: trunk
Fixed handling of project objects when persisting them. Fill the project map. This is needed if the pass is not skipped. For the skip case we already initialize the project map when 'load'ing from the state. check-in: 67600f77 user: aku tags: trunk
Continued work on pass 6. Completed creation of changeset graph (nodes, dependencies), started on topological iteration and breaking cycles. Basic iteration is complete, fiding a cycle ditto. Not yet done is to actually break a found cycle. Extended the changeset class with the necessary accessor methods (getting cset type, successors, time range). Note: Looking at my code it may be that my decision to save the cset order caused this pass to subsume the RevisionTopologicalSortPass of cvs2svn. Check again when I am done. Note 2: The test case (tcl repository, tcl project) had no cycles. check-in: 85bd219d user: aku tags: trunk
Reworked the in-memory storage of changesets in pass 5 and supporting classes, and added loading of changesets from the persistent state for when the pass is skipped. check-in: 24c0b662 user: aku tags: trunk
Started on pass 6, breaking cycles between revision based changesets. Added skeleton files. check-in: 2a01d504 user: aku tags: trunk
Rewrote the algorithm for breaking internal dependencies to my liking. The complex part handling multiple splits has moved from the pass code to the changeset class itself, reusing the state computed for the first split. The state is a bit more complex to allow for its incremental update after a break has been done. Factored major pieces into separate procedures to keep the highlevel code readable. Added lots of official log output to help debugging in case of trouble. check-in: 08ebab80 user: aku tags: trunk
Oops. pass 5 is not complete. Missed the breaking of internal dependencies, this is done in this pass already. Extended pass _2_ and file revisions with code to save the branchchildren (possible dependencies), and pass 5 and changesets with the proper algorithm. From cvs2svn, works, do not truly like it, as it throws away and recomputes a lot of state after each split of a cset. Could update and reuse the state to perform all splits in one go. Will try that next, for now we have a working form in the code base. check-in: 95af789e user: aku tags: trunk
Completed pass 5, computing the initial set of changesets. Defined persistent structure and filled out the long-existing placeholder class (project::rev). check-in: 5f7acef8 user: aku tags: trunk
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 tags: trunk
Added note about why we omit cvs2svn's sorting passes. check-in: 959192d4 user: aku tags: trunk
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 tags: trunk
Opcode synchronization reworked, optype table is master from which the in-memory array is loaded. check-in: e45f47ec user: aku tags: trunk
Pass 4 nearly completed. Rewrite symbol mutation, completed adjustment of symbol parents, added symbol refinement (noop or not flags). Now only missing piece is replication of the pass 2 paranoia checks. Note: Checks in the adjustment of parents are a bottleneck. May need indices, or something we can do in memory. check-in: 37734390 user: aku tags: trunk
Extended pass 2, save branch positions, needed for pass 4, and added optype table to have the revision opcodes available in the state as well. check-in: 7ab490df user: aku tags: trunk
Continued work on pass 4. Now propagating the project level information about prefered parents down to the file level tags. Same for the file level branches is not yet done. check-in: 3a530ef9 user: aku tags: trunk
Continued work on pass 4. Added code bringing the file level symbol data into compliance with the project level symbol types, converting tags to branches and vice versa. check-in: ffafc0bd user: aku tags: trunk
Continued work on pass 4. Implemented the deletion of excluded symbols and all parts referencing them. The complex part is the regrafting of NTDB revisions should a NTDB branch be excluded. This is like 'GraftNTDB2Trunk' in 'file' when excluding everything but the trunk. check-in: 69bf6ab9 user: aku tags: trunk
Started on pass 4, 'FilterSymbols'. Skeleton. check-in: 11e5d7ce user: aku tags: trunk
Extended comment. check-in: d314894b user: aku tags: trunk
Fix in pass 3, do not compute prefered parents for the excluded symbols. Exclude them from the final check as well due to this. check-in: 4c8a5a44 user: aku tags: trunk
Completed pass 3, CollateSymbols. Added code determining for each symbol the prefered parent from all possible parents. This is the symbol with the lowest id among the set with the maximum number of occurences as a parent. check-in: efc78b7a user: aku tags: trunk
Extended options processing to handle --exclude, --force-tag, and --force-branch options. Extended project::sym class with in-memkory databases to hold the option information and replaced the 'UserConfig' placeholder with the actual code using the new databases to determine symbol types based on user-requests. Extended the pass itself with code performing various checks on the results of type determination, partially paranoia, partially to find genuine bad requests (excluding symbols with unexcluded blockers, making a symbol with commits on it a tag, ...). NYI: Computation of the prefered parent for all symbols. check-in: 7eaa420a user: aku tags: trunk
Continued work on pass 3, added code to determine the type of symbols based on the tag-, branch-, and commit-counts. Hook for handling data coming from the option processoris present (UserConfig), but only as a placeholder. check-in: f888f06f user: aku tags: trunk
Skeleton for pass 3 added, collating the symbols. check-in: 6d4eb247 user: aku tags: trunk
Added code for the loading of pass II data (currently only the smybols) from the state when pass II is skipped. check-in: c3d51040 user: aku tags: trunk
Fixed typos. check-in: 77904c1f user: aku tags: trunk
Milestone I reached (To save the fundamental repository structure into a sqlite database). check-in: cb4d44d6 user: aku tags: trunk
Added code creating aggregate symbol statistics. This completes pass 2 (CollRev). check-in: 6f8667b0 user: aku tags: trunk
Replaced the ASCII art showing entity links with dia'grams and gif images derived from them. Especially useful when trying to understand the paranoia checks. check-in: 831e8f36 user: aku tags: trunk
Added another consistency check, and revised the comments to use the more exact terms for the various relationships. check-in: 70d4a811 user: aku tags: trunk
Fixed one of the cross-reference checks. check-in: 2e7cbb28 user: aku tags: trunk
Added lots of checks looking for inconsistent references between the various objects, mainly revisions. check-in: 2434ad3b user: aku tags: trunk
Added saving of the fundamental symbol information (project level). check-in: 1deb3786 user: aku tags: trunk
Fixed saving of authors, log messages, meta data. This was wrong since revision [99e165d5c4], when the id databases were introduced. Simplified meta saving due to changed trunk coding (no NULL). check-in: 89e9b357 user: aku tags: trunk
Formatting change, code alignment. check-in: 7375ebb9 user: aku tags: trunk
Changed the coding of trunk symbols. Using NULL makes for difficult comparisons later when doing integrity checks. Each trunk now has a regular unique id as a symbol. Added documentation to the table definitions, about references, constraints, etc. check-in: 2c08006d user: aku tags: trunk
Extended pass manager to keep timing data for the executed passes and show them after completion of all passes. check-in: 05f9c955 user: aku tags: trunk
Extended handling of id's for files so that we have them for backreferences from symbols and revisions. Completed persistence of revisions and symbols at file-level and fixed small problem with left-over links to branches. check-in: adf168e2 user: aku tags: trunk
Disabled check for control characters in the log message. Allowing this for the moment, lets see if we run into trouble later on. Further reworked the check of symbol names, disallow forward slashs only at end. Found legal tags containing forward slashs in the middle. check-in: fa643aa9 user: aku tags: trunk
Restructured the code handling NTBD in ExcludeBranch a bit to prevent the asserts in GraftNTDB2Trunk to bail out. check-in: e94b52b6 user: aku tags: trunk
Added a bit of path normalization, stripping of a trailing slash from the path to the cvs repository. Before such a slash could break a later coming fileutil::stripPath. check-in: 9f3fd3ec user: aku tags: trunk
Added more checks to the RCS parser to detect bogus symbol names and problematic log messages. Added ability to rewind back to the beginning of the last recognized token for a nicer positioned error message. check-in: 1527954d user: aku tags: trunk
Reworked object deletion to happen centrally after the file has been processed (drop). Simplified the code restructuring the revision tree as it now doesn't have to think about when and where to remove objects. check-in: a766b081 user: aku tags: trunk
Due to quickly building memory pressure for large cvs repositories (thousands of revisions and symbol object) we have to save the pertinent information of a file immediately after it has been processed and then clear the memory. Inserted the basic skeleton for this into pass and file objects. check-in: 3a00ac5a user: aku tags: trunk
Simplified the code for excluding non-trunk revisions a bit, using higher-level methods for some changes. Added missing revision destruction. check-in: 436f17a5 user: aku tags: trunk
Added code able to exclude all non-trunk revisions upon user request. check-in: 886b6f25 user: aku tags: trunk
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 tags: trunk
Continued the work on pass II, wrangling a file into shape. Completed handling of unnecessary initial deletions on branches. check-in: 510cd023 user: aku tags: trunk
Extended the RCS parser to handle extended (aka new) phrases coming after the regular data of a revision, in the revision tree. check-in: 294156a3 user: aku tags: trunk
Added detection of irrelevant trunk revisions for files added to a branch but not the trunk. Repository extended to keep inverted indices for the meta data and commit messages for retrieval of commit messages per meta data, required for the previous. fixed problem with file objects, we kept only the rcs path, and need the user visible path too. check-in: cfe4b269 user: aku tags: trunk
Extended file-level symbols and project-level trunk with methods to allow users to distinguish them (trunk vs. not trunk, for use as lines of development). check-in: 09af24fc user: aku tags: trunk
Switched procs to methods, got rid of unwieldy and error-prone explicit import of instance variables. check-in: b5b2d615 user: aku tags: trunk
Fix setting of myimported, wrong condition. Fix item assignment when sorting branches. Fix parent/child linkage when setting up branch dependencies. Completed processes on non-trunk default branch revisions. Added skeleton code for the deletion of superfluous revisions. check-in: 177a0cc5 user: aku tags: trunk
More handling for option --trunk-only. check-in: a3cd0c30 user: aku tags: trunk
Added new option --trunk-only, state and processing. check-in: 3bde1a2e user: aku tags: trunk
New helper command to delete item from list by name instead of position. check-in: 4e49cbf0 user: aku tags: trunk
Continued work on pass II, starting to post-process tags, branches, and revisions, cleaning up cvs quirks, determining higher-level aggregates ... check-in: e5441b90 user: aku tags: trunk
Reworked the whole handling of meta data (author, commit message, plus project/branch information), so that revisions now store only the meta id, everything else is stored centrally. All the relevant pieces (author, cmessage, symbols, projects) now also get numeric ids assigned early instead of when being saved to the state. Project ids are loaded from the state now too. check-in: 67c24820 user: aku tags: trunk
Completed loading of pass I from persistent state when skipped. check-in: 54ac684d user: aku tags: trunk
Extended pass manager to handle the skipped and defered passes coming before and after the actually executed passes. Extended passes I and II to have the required methods. Implemented loading (for skipped passes) as skeletons, implemented discarding (for defered passes) completely. Extended state manager with ability to discard state. check-in: ae19c0fc user: aku tags: trunk
Extended pass I to capture the 'file executable' info of rcs archives. Currently the only way to store this info in the destination will be the use of fossil tags. check-in: 27470a93 user: aku tags: trunk
The basic work of setting up and linking revisions, tags, and branches is complete. check-in: cb70cf4a user: aku tags: trunk
Extended rcs parser with another callback run after the processing of the revision tree completed, before starting on description and delta texts. Updated file class to intercept the callback. check-in: 40eaf58e user: aku tags: trunk
Continued to flesh out revision and symbol processing. Started on the project level classses. check-in: da9295c6 user: aku tags: trunk
Extended rcs parser to tag errors which are syntax errors in the RCS archive. Extended pass handling to capture trouble and distinguish between internal problems and syntax errors. check-in: be891232 user: aku tags: trunk
Started to flesh out the handling symbols and revisions coming in from the rcs parser. First fragments of revision object. Type methods for classification of revision numb ers. check-in: bd131add user: aku tags: trunk
Added more checks to pass I looking for possible file/directory conflicts in the repository, and modified traverser to report on and ignore sub directories of Attic's. check-in: a10f654a user: aku tags: trunk
API tweak rcs parser, definition of symbols, call through the callback once per symbol instead of once for the whole set. check-in: 338854a6 user: aku tags: trunk
Added a lot of skeleton files for the revision and symbol data structures, for both project and file level. check-in: 84de38d7 user: aku tags: trunk
Found easier way to access the typevariables of singletons when writing the rcs parser. Now moved the other singletons to the same construction. check-in: 70b0aa89 user: aku tags: trunk
Broke static dependency cycle repository <- project <- file <- repository, now using dynamic/runtime object references instead. This allows us to keep the nice and readable format for our files, code is readable too. check-in: 84871722 user: aku tags: trunk
Started capture of revision information in file objects. Capturing authors and commit messages and repository level. Completed persistence for these latter too. Rearranged the requirements, imports, and exports a bit to handle the new dependency cycle repository <- project <- file <- repository check-in: 3d88cfd0 user: aku tags: trunk
Continued work on pass II, skeleton of it completed by adding outline of code for persistence. check-in: 6d1811d6 user: aku tags: trunk
Added skeleton and dump methods to make file objects proper sinks for the rcs parser. check-in: 2e3815c3 user: aku tags: trunk
rcs parser rewritten to snit type, singleton, using callbacks to convey information. Got a grip on regexp -start -indices (^ -> \A, indices are absolute). This means that I now don't have to shift the unprocessed string down in memory, it is all index processing now. This makes for a much faster parser, especially for large files with many revisions (example: ChangeLogs). check-in: e7bb3d07 user: aku tags: trunk
Nicer parser integration into pass II, and sort files for easier filesystem traversal during parsing. check-in: ec053168 user: aku tags: trunk
Fleshed out pass II, added skeleton of rcs archive class, started integration of rcs parser. check-in: 8a93ffa9 user: aku tags: trunk
Bringing back in the old parser for rcs archives. check-in: 860f533e user: aku tags: trunk
Added pass II (collection of revision and symbols), basic skeleton and state definitions, and integrated into the pass manager. check-in: fdbc01df user: aku tags: trunk
Added documentation to state definition, and debugging output to the state system itself. check-in: 10f9d51b user: aku tags: trunk
Better formatting for --help-passes, align codes. check-in: 43d72c62 user: aku tags: trunk
Completed integration of state with pass I, now saving projects and files into it. check-in: 042d54ba user: aku tags: trunk
Collapse multiple uses of a project path into one project. check-in: d174affb user: aku tags: trunk
Added documentation for the persistent state of pass I. check-in: 78da61db user: aku tags: trunk
Extended state handling with methods to declare usage and structure of state, started integration of state with pass I, collection of projects and files. check-in: fb1e36d2 user: aku tags: trunk
Added the basic parts of the state manager and integrated it with option processor and pass manager. check-in: eb656de7 user: aku tags: trunk
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 tags: trunk
Extended option processing, added handling of verbosity/quietness. check-in: 2929a438 user: aku tags: trunk
Added stub for repository management, added most of pass I, collecting archives in the repository. check-in: 47740cc1 user: aku tags: trunk
Added the pass management, integrated with application and option processor. check-in: 59115153 user: aku tags: trunk
Re-added the user feedback and error reporting utilities, with modifications, and completed the handling of the informational options. check-in: d57b7b4a user: aku tags: trunk
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 tags: trunk
CVS import. First, fixed sig::next regarding two things. One, we have to take the root version of a file into account as a possible predecessor. Two, a missing changed file may be misclassified and actually be added instead. Second, modified the search for a root changeset of a branch. We now try the existing regular intersection first for exactness, and in case of failure we fall back to a voting scheme to locate the most acceptable aka non-conflicting changeset. check-in: 7a64b9e7 user: aku tags: trunk
Bugfix for 3852590ce6. Make the use of cache files in the rcs parser actually dependent on the user option. check-in: f6f5c902 user: aku tags: trunk
Continued work on the import of branches. Main principle now is to handle the branches vertically. First the trunk, then the branch starting with the first unprocessed changeset, and so forth. Looks more promising than the previous approach. Currently handles just a bit over half of the test projects (11 of 21 in 6 repositories). check-in: 72dac950 user: aku tags: trunk
New feature for importer. rcs parser extended so that it can store parse results for quick loading in future runs. This feature has no real use in regular use of the importer, i.e. one-shot conversion of a CVS repository to fossil. It is however useful for debugging when the source repository is scanned many times during test runs. Especially for large files, with lots of changes (like ChangeLogs), the direct loading of a Tcl dictionary is much faster than actually parsing the archive files. check-in: 3852590c user: aku tags: trunk
Entered the general structure planned for processing of branches. Incomplete. This code right now exits when it finds branch csets. Some debug output to see detailed internals from which to pull the pieces together. check-in: 25bc7210 user: aku tags: trunk
Trim the commit messages to remove irrelevant leading and trailing line-endings. check-in: a9dcf091 user: aku tags: trunk
Got rid of the explicit revision tree and rephrased the trunk processing to use a loop which is more self-explanatory. Started to add in code needed when we process the branches as well, currently they will have now effect. check-in: cbbf9a75 user: aku tags: trunk
Moved the counting of imported changesets to the beginning for a more accurate percent calculation and proper ending at 100%. check-in: 330f2da7 user: aku tags: trunk
Modified sorting of timeline entries for the same second to properly split files and file versions from each other, and to have newer revisions later. Further added a storage for error messages to be repeated when the importer exist. First user is the code reporting corrupted archive files detected during a checkout. check-in: a5476aed user: aku tags: trunk
Further work on the CVS frontend. The main parts for doing the extraction and management of changesets are now in a separate package. check-in: ae54e928 user: aku tags: trunk
Fixed bug in the new code setting up the timeline, forgot to clean up loop state, causing data from previous iterations to bleed into the current one, causing the use of bogus data and ultimatively a bogus timeline. Note! Incidentially a bug in the old code was fixed by the new one, the use of mismatching revisions and commit messages. That caused the generation of extra changesets in the old code. check-in: 10e3b3ed user: aku tags: trunk
Cleaned up the creation of the workspace directory. check-in: 2740b48b user: aku tags: trunk
More structuring of the CVS backend, encapsulated the management of the global timeline of events in the project in a separate package. check-in: 1593006e user: aku tags: trunk
Added structure to the CVS frontend code, putting the repository traversal into its own package. check-in: 6f121db1 user: aku tags: trunk
Semantics of the progress display extended to allow an empty maximum to signal use of an infinite (open-ended) display. check-in: ebb94f75 user: aku tags: trunk
Pulled the latest CLI, website, and sqlite changes into the importer branch. check-in: f76192b2 user: aku tags: trunk
Pulled in the navbar and timeline changes. check-in: bbcb6326 user: aku tags: trunk
Reworked the CVS handling code to have a simpler API, more like the reworked Fossil API. The API now has a form where adding the handling of branches should not require complex changes in the import controller any longer. Extended the system to allow the user to restrict the importing to a sub-directory of the chosen repository, via the new switch --project. This is required to pull a SF CVS repository apart into the various projects it may have. Example: Under Tcl we have 3 projects, namely Tcl itself, sampleextension, and Thread. check-in: d8c18fc1 user: aku tags: trunk
Fixed problems with the untested statistics module. Moved cset <-> uuid map out of cvs to control layer, separate package. Currently not really useful, will be needed when handling cvs branches. Moved some user feedback around, and the import control too. check-in: b504674c user: aku tags: trunk
Moved the handling of the import statistics into its own package. Untested. check-in: 18251642 user: aku tags: trunk
Rename CLI commands: leaves->descendents and branches->leaves. check-in: bc68e61b user: drh tags: trunk
Fix the "leaves" webpage. check-in: d773eee9 user: drh tags: trunk
Update the SQLite amalgamation file to version 3.5.0. check-in: c287665b user: drh tags: trunk
Unhacked the fossil backend. IOW reworked the API and made it nicer, more structured, better command and option names. Gave the internals more structure, and simplified the handling of -breakat (old -stopat breakpoint). Updated users, and updated the user visible switches as well. Added a -h switch for help. check-in: 7b2619b7 user: aku tags: trunk
Encapsulated access to the fossil and cvs applications in their own packages. check-in: cdf5e6d8 user: aku tags: trunk
Continuing namespace changes, rcs parser. Basic structure is now ok IMHO. check-in: d4aa7da6 user: aku tags: trunk
Continuing namespace changes, cvs frontend. check-in: 00228d15 user: aku tags: trunk
Continuing namespace changes, fossil backend. check-in: 45cd12f0 user: aku tags: trunk
Continued restructuring of the code (namespace hierarchy, import control). check-in: 9671b651 user: aku tags: trunk
Improvements to the CLI timeline display. When an update fails due to multiple descendents, show all of the descendents in timeline format. check-in: fcabd477 user: drh tags: trunk
Added navbar to all pages, linking back to the index. Fixed typo in the index page. check-in: 469002cc user: aku tags: trunk
The nonce of a login card in the sync protocol is now the SHA1 hash of the remainder of the sync message. The signature is the SHA1 hash of the concatenation of the nonce and the users password. check-in: 77675311 user: drh tags: trunk
Fix bugs in undo/redo. Appears to work now but not heavily tested. check-in: 6f5654c7 user: drh tags: trunk
Add the "undo" and "redo" commands. Untested at this point so don't try to use them yet. check-in: a36177bc user: drh tags: trunk
Slight editorial changes to sync documentation, fixing spelling errors. check-in: 4038525b user: aku tags: trunk
Fix a C++-ism in the timeline module. check-in: 9a761193 user: drh tags: trunk
Merge in the delta encoder changes. check-in: 01e3e3f5 user: drh tags: trunk
Add a first draft of the synchronization protocol document. Unproofed. check-in: 26131cfc user: drh tags: trunk
Cluster-based synchronization appears to be working. check-in: 48c4e69d user: drh tags: trunk
Started to restructure the namespace hierarchy, beginning at the bottom, with the log module. check-in: 86a7f249 user: aku tags: trunk
Sync using clusters appears to work. More testing is needed before we go live. check-in: e1c1877c user: drh tags: trunk