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

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],
  • basic 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]


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.

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.1

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:

urwid (console user interface library)
pyinotify (automatically refreshing)
pygments (syntax highlighter)


Adserver           610x250
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog: 

Share on Google Plus

About Hugo Repetto

    Blogger Comment
    Facebook Comment


Post a Comment


This content is not yet available over encrypted connections.

My Favorites