The differences between two revisions are useful, but it's more useful to see the entire file annotated to show when lines were added.
The fossil blame command generates an annotated listing of a file showing when lines were added:
$ fossil blame main.tcl
7806f43641 2016-12-18 clif: # main.tcl
06e155a6c2 2016-12-19 clif: # Clif Flynt
b2420ef6be 2016-12-19 clif: # Packt fossil Test Script
a387090833 2016-12-19 clif:
76074da03c 2016-12-20 clif: for {set i 0} {$i < 10} {incr
i} {
76074da03c 2016-12-20 clif: puts "Buy my book"
2204206a18 2016-12-20 clif: }
7a7e2580c4 2016-12-20 clif:
When you know that there's a problem in one version but not in another, you need to center in on the version where the problem was introduced.
The fossil bisect command provides support for this. It lets you define a good and bad version of the code and automatically checks out the version between those to be tested. You can then mark this version as good or bad and fossil will repeat the process. Fossil bisect also generates reports showing how many versions have been tested and how many need to be tested.
How to do it...
The fossil bisect reset command initializes the good and bad pointers. The fossil bisect good and fossil bisect bad commands mark versions as good or bad and check out the version of the code that's midway between the good and bad version:
$ fossil bisect reset $ fossil bisect good 63e1e1 $ fossil bisect bad 47c85d UPDATE main.tcl ----------------------------------------------------------------------- updated-to: f64ca30c29df0f985105409700992d54e 2016-12-20 17:05:44 UTC tags: trunk comment: Reworked flaky test. (user: clif) changes: 1 file modified. "fossil undo" is available to undo changes to the working checkout. 2 BAD 2016-12-20 17:35:49 47c85d29075b25aa 3 CURRENT 2016-12-20 17:05:44 f64ca30c29df0f98 1 GOOD 2016-12-19 23:03:22 63e1e1290f853d76
After testing the f64ca version of the code, you can mark it good or bad and fossil bisect will check out the next version for testing.
There's more...
The fossil bisect status command generates a report of the available versions and marks the tested versions:
$ fossil bisect status 2016-12-20 17:35:49 47c85d2907 BAD 2016-12-20 17:33:38 f3c579cd47 2016-12-20 17:30:03 c33415c255 CURRENT NEXT 2016-12-20 17:12:04 7a7e2580c4 2016-12-20 17:10:35 24edea3616 2016-12-20 17:05:44 f64ca30c29 GOOD