Staging
v0.5.0
https://foss.heptapod.net/mercurial/hgview
Revision 1ddc87097b45555523fd8b8d18874aecdee85d2f authored by Alain Leufroy on 28 May 2013, 10:34:27 UTC, committed by Alain Leufroy on 28 May 2013, 10:34:27 UTC
We were decoding strings for changeset description and file data only.  But we
also have to decode all all meta-information from Hg repo (a.k.a. usernames,
bookmarks, tags, branches, filenames).

String are decoded just at rendering times. Data are kept binary string for
other operation (eg: comparing filenames).

We use the ``hgviewlib.util.tounicode`` function everywhere now.

We also missed using utf-8 for Scintilla.

:Fix initiated by: Юрий Мандрик.

.. note:: We try to decode using utf8, iso-8859-15 and cp1252 (in this order)
          using the first that successfully decode the string. If all fail we
          use utf8 with ``replace`` strategy.

test case used::

    hg init cyrillic
    cd cyrillic
    hg branch 'ЖЗИЙФ'
    echo 'ЖЗИЙФ' > ЖЗИЙФ
    hg add ЖЗИЙФ
    hg ci -m 'ЖЗИЙФ' -u 'ЖЗИЙФ'
    hg bookmark 'ЖЗИЙФЖЗИЙФ'
    hg tag 'ЖЗИЙФ'
    hg mv 'ЖЗИЙФ' 'ЖЗИЙФЖЗИЙФ'
    hg ci -m 'move'
    echo 'hello' > ЖЗИЙФЖЗИЙФ
    hg ci -m 'back to ascii'
    hg rm ЖЗИЙФЖЗИЙФ
    hg ci -m 'remove'
1 parent d42a956
Raw File
Tip revision: 1ddc87097b45555523fd8b8d18874aecdee85d2f authored by Alain Leufroy on 28 May 2013, 10:34:27 UTC
[qt] full support for unicode with utf-8 encoding (closes #142378)
Tip revision: 1ddc870
README
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 intarfece 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 interface depends on urwid, pygments and pyinotify

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

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

::

  hg clone http://hg.logilab.org/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.

alain
back to top