Staging
v0.5.1
https://foss.heptapod.net/mercurial/hgview
Revision be670f46836846f4010b82ca4c2ad3e217ad24cf authored by Alain Leufroy on 11 June 2013, 16:58:04 UTC, committed by Alain Leufroy on 11 June 2013, 16:58:04 UTC
On some repo the tree graph was not full filled.

The problem comes from the selection of the working directory parent.

To select the wd parent we ensure it has already been built.
This action encreases the number of built nodes in revision tree
(see ``hggraph.Graph.build_nodes``: requested revision + nnodes)

But we ensure the wd parent is built the first time the model is
filled. It is performed after the first graph rendering but before the
timer event that refreshes the tree graph.

In some case the first rendering displays only a partial revisions
tree graph. Once displayed the wd parent selection complete the
revision tree in cache but not yet on the screen.

If the revision tree is full filled, the table row count is not
updated (see the diff) while a part of the revision tree graph is
still missing.


Introduced by `always select the working directory at startup <fb5ee4cf21dd>`_
due to `New implementation of the background graph building mecanism <e28a5e3dc5c4>`_.

.. note:: I will factorize code in the next commit.
1 parent 60548a5
Raw File
Tip revision: be670f46836846f4010b82ca4c2ad3e217ad24cf authored by Alain Leufroy on 11 June 2013, 16:58:04 UTC
[qt4] Fix partial tree graph filling
Tip revision: be670f4
hgview.bat
@echo off
rem = """-*-Python-*- script
rem -------------------- DOS section --------------------
rem You could set PYTHONPATH
python -x %~f0 %*
goto exit
 
"""
# -------------------- Python section --------------------
from PyQt4 import QtCore, QtGui
import os
import sys
import os.path as pos

if getattr(sys, 'frozen', None) == "windows_exe":
    # Standalone version of hgview built with py2exe use its own version
    # of Mercurial. Using configuration from the global Mercurial.ini will be
    # ill-advised as the installed version of Mercurial itself may be
    # different than the one we ship.
    #
    # this will be found next to Mercurial.ini
    path = pos.join(os.path.expanduser('~'), 'hgview.ini')
    os.environ['HGRCPATH'] = path

try:
    import hgviewlib
except ImportError:
    import stat
    execpath = pos.abspath(__file__)
    # resolve symbolic links
    statinfo = os.lstat(execpath)
    if stat.S_ISLNK(statinfo.st_mode):
        execpath = pos.abspath(pos.join(pos.dirname(execpath),
                                        os.readlink(execpath)))
    sys.path.append(pos.abspath(pos.join(pos.dirname(execpath), "..")))

from hgviewlib.application import main
main()

DosExitLabel = """
:exit
rem """
back to top