Loglinear helps developers quickly make sense of branchy histories.
It does this by presenting relevant parts of the history in a simple yet accurate manner. The command line is simple: few options, sensible defaults. It integrates well with the rest of Mercurial, by exposing its core mechanics as revset functions.
Loglinear shows you essential information about commits on one or more paths in the history of the repository. A representative, yet fictional example is shown below.
231:ae429f2e1 Arjen Stolk 23 dec (default) Added `readme.md` and started work on new version 230:e23b3c3ff Translation Team 3 dec Merged in 229:38a473dfe (11 changesets) Merging i18n changes for first version 218:274ebc42d Joe R. Hacker 12 nov Improved responsiveness on large repositories * history is now always traversed in a lazy fashion * paths are built up to the specified limit
The path starts with a specified revision at the top. Each following revision is a parent of the previous. When there is a single parent, this is easy enough. For merges, loglinear tries to determine which parent represents the 'main' development path and which represents the changes that were 'merged in'. The former parent is on the path, the later is mentioned in the output, along with a counter of how many changes were merged in.
Optionally, loglinear will expand these branches, up to a specified depth. A path is then shown starting from each of the revision that was merged in. It stops when it gets back to the main development path. Any intermediate merges with the main path are reported, but not expanded.
Paths never cross branches. Merged in revision from different branches are not normally expanded, unless the branch is explicitly added on the command line.
hg ll [-r REV] [-l LIMIT] [-d DEPTH] -r --rev REV Start from revision REV -l --limit LIMIT Show no more that LIMIT revisions -d --depth DEPTH Expand up to DEPTH levels -b --branch BRANCH Expand paths in branch BRANCH
[loglinear] depth = 0 limit = 20
Copyright 2011-2012 Arjen Stolk firstname.lastname@example.org
This software may be used and distributed according to the terms of the GNU General Public License version 2 or any later version.