hgview: A fast Mercurial log navigator


hgview is a simple tool aiming at visually navigate in a Mercurial repository history.

It is written in Python with quick and efficient key-based navigation in mind, trying to be fast enough to be usable for big repositories.


  • easy key-based navigation in revisions's history of a repo (with browsing history) [qt4, text],
  • good support for mq patch queues [qt4, text],
  • automatically refresh the displayed revision graph when the repository is being modified (commit, pull, updates, etc.) [qt4, text]
  • display current working directory as a special node in the graph (when there are local modifications) [qt4, text],
  • view a graphical side-by-side diff for a given file, allowing to easily compare any couple of revisions for a file [qt4]
  • view the revision graph for a file (filelog) [qt4],
  • navigate in the manifest at any chosen revision (without modifying the working directory) [qt4],
  • basic support for the bfiles extension [qt4, text],
  • search in the whole history (search in diff contents and commit messages) [qt4],
  • directly go to a given revision (can be any understood revision format; rev number, ID, tag, brnch name, etc.) [qt4, text]

Installation on Debian/Ubuntu

Debian and Ubuntu user can get the latest stable version using the logilab's debian repository. Note that a hgview package is available in Debian testing repositories.

Installation from source

You may also retrieve the lastest version of the code using Mercurial, typing:

hg clone http://hg.logilab.org/hgview

To test it, just go in the hgview directory and type:


or run the command, also from the hgview directory:

hg --config extensions.hgext.hgview=hgext/hgview.py qv

If you like it, just add in the [extensions] section of your ~/.hgrc:


You can choose your prefered interface in the [hgview] section:

interface = qt # or raw or curses


hgview depends on several third-party python packages:

  • python 2.5
  • Mercurial 1.6

For the qt4 based interface:

  • pyqt4 with qscintilla
  • PyQt4 dev tools are also required to run it from sources, which may require the installation of a specific package; on Debian/Ubuntu, the package pyqt4-dev-tools must be installed.

For the text based interface:


the "raw" interface requires urwid >= 9.9.1 and the "curses" interface requires urwid >=1.0.0

source repositoryhgview repository
test environmenthgview env
owned byddouard
may be discussed onpython-projects
use licenseGPL