Staging
v0.5.0
https://foss.heptapod.net/mercurial/hgview
Revision 43b011f2b5b1ca18ece84e6bc168468f21c52b65 authored by Mads Kiilerich on 04 April 2020, 01:37:48 UTC, committed by Mads Kiilerich on 04 April 2020, 01:37:48 UTC
This widget used multiple inheritance of classes with different __init__
arguments. That doesn't really work reliably when combined with super() that
hides the complexity of calling order. Especially not when sip play tricks to
emulate the Qt class hierarchy in Python.
It would fail with a confusing error about a missing repo argument to
  QAbstractTableModel.__init__(self, parent)

HgRepoListWalker has a public setRepo method which was called at the end of
__init__, forwarding all the __init__ parameters. Change that to a __init__
without parameters, and an expectation of invoking setRepo right after
__init__.

This has the slight disadvantage of potentially exposing partially initialized
objects ... but that is a small and necessary price to pay.
1 parent a13d9df
Raw File
Tip revision: 43b011f2b5b1ca18ece84e6bc168468f21c52b65 authored by Mads Kiilerich on 04 April 2020, 01:37:48 UTC
qt5: simplify initialization of HgRepoListWalker and thus HgRepoListModel
Tip revision: 43b011f
README.rst
Description
===========

Its purpose is to easily navigate in a Mercurial repository
history. It has been written with efficiency in mind, both in terms
of computational efficiency and user experience efficiency.

It is written in Python.

There are two user interfaces:
    * a graphical interface using PyQt4 and QScintilla, the
    * a text interface: using urwid, pygments and pyinotify

Note that the Qt4 interface is much more complete than the text interface.
The Qt4 interface provides more views on the repository.

hgview intallation notes
========================

hgview can be used either as a hg extension, or as a standalone
application.

The Common library depends on: mercurial (1.0 minimum)
The Qt4 interface depends on PyQt4, QScintilla and PyQScintilla, DocUtils
The Text interfaces depend on urwid (>=0.9.1 for "raw", >=1.0.0 for "curses"),
pygments and pyinotify


Run from the hg repository
--------------------------

You can run ``hgview`` without installing it.

::

  hg clone https://foss.heptapod.net/mercurial/hgview

You may want to add the following to your main .hgrc file::

  [extensions]
  hgext.hgview=path/to/hqgv/hgext/hgview.py

  [hgview]
  # your hgview configs statements like:
  dotradius=6
  interface=qt # or curses or raw
  # type hg qv-config to list available options

Then from any Mercurial repository::

  cd <ANY_HG_REPO>
  hg qv

or::

  export PYTHONPATH=PATH_TO_HGVIEW_DIR:$PYTHONPATH
  PATH_TO_HGVIEW_DIR/bin/hgview

Installing ``hgview``
---------------------

Installing ``hgview`` is simply done using usual ``distutils`` script::

  cd $PATH_TO_HGVIEW_DIR
  python setup.py install --help # for available options
  python setup.py install


More informations
=================

See `hg help hgview` for more informations on available configuration
options.

Acknowledgements
----------------

Hgview is a free software project hosted at https://foss.heptapod.net thanks
to the support of `Clever Cloud <https://clever-cloud.com>`_,
`Octobus <https://octobus.net>`_ and the sponsors of the heptapod project.
back to top