linearized log for mercurial repositories
Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
loglinear-test.py
loglinear.py
readme.md

readme.md

Loglinear

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.

Output

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.

Usage

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

Configurable defaults

[loglinear]
depth = 0
limit = 20

License

Copyright 2011-2012 Arjen Stolk simplyarjen@gmail.com

This software may be used and distributed according to the terms of the GNU General Public License version 2 or any later version.