Fossil

Check-in [9828493c]
Login

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

Overview
Comment:Fix one error and add an additional note to the article on the annotate algorithm.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 9828493c998b9651e7d569e24665eadc89d63ee5
User & Date: drh 2015-12-13 03:13:06
Context
2015-12-14
23:13
Fix the "add" command so that it prints "SKIP" instead of "ADDED" for files that are already under management. Code to do this was already in place, but it did not work correctly due to a logic error. check-in: d252cfd6 user: drh tags: trunk
2015-12-13
03:13
Fix one error and add an additional note to the article on the annotate algorithm. check-in: 9828493c user: drh tags: trunk
02:55
Add the /doc/trunk/www/blame.wiki document briefly describing the algorithm used to compute "blame" in Fossil. check-in: 91af24e6 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to www/blame.wiki.

48
49
50
51
52
53
54
55
56
57
58




under analysis.  For a large file that has many historical changes, this
can take several seconds.  For this reason, the default 
[/help?cmd=/annotate|/annotate] webpage only shows those lines that where
changed by the 20 most recent modifications to the file.  This allows
the loop on step 6 to terminate after only 19 diffs instead of the hundreds
or thousands of diffs that might be required for a frequently modified file.

As currently implemented (2015-12-12) the annotate algorithm does not
follow files across name changes.  File name change information is 
available in the database, and so the algorithm could be enhanced to follow
files across name changes by modifications to step 2.











|


|
>
>
>
>
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
under analysis.  For a large file that has many historical changes, this
can take several seconds.  For this reason, the default 
[/help?cmd=/annotate|/annotate] webpage only shows those lines that where
changed by the 20 most recent modifications to the file.  This allows
the loop on step 6 to terminate after only 19 diffs instead of the hundreds
or thousands of diffs that might be required for a frequently modified file.

As currently implemented (as of 2015-12-12) the annotate algorithm does not
follow files across name changes.  File name change information is 
available in the database, and so the algorithm could be enhanced to follow
files across name changes by modifications to step 3.

Step 2 is interesting in that it is
[/artifact/6cb824a0417?ln=196-201 | implemented] using a
[https://www.sqlite.org/lang_with.html#recursivecte|recursive common table expression].