Source

thg / thg

Adrian Buehlmann adab918 



Steve Borho b62aa47 
Adrian Buehlmann adab918 







David Golub 462bb85 

Steve Borho 733bb00 






David Golub 462bb85 
Steve Borho 9f28533 
Steve Borho 4dbb61b 
Steve Borho 9f28533 

Steve Borho 8dacfd6 




Steve Borho 9f28533 
Adrian Buehlmann a554861 



Adrian Buehlmann adab918 
James McKay 5b76929 
Steve Borho 1595c10 

James McKay 5b76929 



Adrian Buehlmann a554861 




Adrian Buehlmann adab918 
Yuya Nishihara 2339e63 



Steve Borho decb52e 


Yuya Nishihara cb9aa4e 
Yuya Nishihara 9ccf605 
Steve Borho decb52e 
Yuki KODAMA e467526 
Steve Borho 5ea9730 
Adrian Buehlmann adab918 

Steve Borho 2a4f89e 

Steve Borho 015e0f7 

Adrian Buehlmann adab918 


Steve Borho 5ea9730 



Steve Borho 4a3a25b 
Steve Borho a996243 


David Golub 462bb85 
Steve Borho 5ea9730 
Steve Borho a996243 
Steve Borho 4a3a25b 
Steve Borho 5f9f408 

Steve Borho 40846dd 
David Golub 8bf2743 
Steve Borho 40846dd 




Steve Borho 88be472 

Steve Borho 40846dd 

David Golub 8bf2743 
Steve Borho 40846dd 









David Golub 8bf2743 
Steve Borho 40846dd 










#!/usr/bin/env python
#
# thg - front-end script for TortoiseHg dialogs
#
# Copyright (C) 2008-2011 Steve Borho <steve@borho.org>
# Copyright (C) 2008 TK Soh <teekaysoh@gmail.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2, incorporated herein by reference.

import os
import sys

argv = sys.argv[1:]
if 'THG_OSX_APP' in os.environ:
    # Remove the -psn argument supplied by launchd
    if argv[0].startswith('-psn'):
        argv = argv[1:]
    # sys.path as created by py2app doesn't work quite right with demandimport
    # Add the explicit path where PyQt4 and other libs are
    bundlepath = os.path.dirname(os.path.realpath(__file__))
    sys.path.insert(0, os.path.join(bundlepath, 'lib/python2.6/lib-dynload'))

if hasattr(sys, "frozen"):
    if sys.frozen == 'windows_exe' and 'THGDEBUG' in os.environ:
        import win32traceutil
        print 'starting'
    # os.Popen() needs this, and Mercurial still uses os.Popen
    if 'COMSPEC' not in os.environ:
        comspec = os.path.join(os.environ.get('SystemRoot', r'C:\Windows'),
                               'system32', 'cmd.exe')
        os.environ['COMSPEC'] = comspec
else:
    thgpath = os.path.dirname(os.path.realpath(__file__))
    testpath = os.path.join(thgpath, 'tortoisehg')
    if os.path.isdir(testpath) and thgpath not in sys.path:
        sys.path.insert(0, thgpath)

    # compile .ui and .qrc for in-place use
    fpath = os.path.realpath(__file__)
    if os.path.exists(os.path.join(os.path.dirname(fpath), 'setup.py')):
        from distutils.dist import Distribution
        from setup import build_qt
        build_qt(Distribution()).run()

    if 'HGPATH' in os.environ:
        hgpath = os.environ['HGPATH']
        testpath = os.path.join(hgpath, 'mercurial')
        if os.path.isdir(testpath) and hgpath not in sys.path:
            sys.path.insert(0, hgpath)

# Make sure to load threading by main thread; otherwise, _MainThread instance
# may have wrong thread id and results KeyError at exit.
import threading

from mercurial import demandimport
demandimport.ignore.append('win32com.shell')
demandimport.ignore.append('tortoisehg.util.config')
demandimport.ignore.append('icons_rc')
demandimport.ignore.append('translations_rc')
demandimport.enable()

# Verify we can reach TortoiseHg sources first
try:
    import tortoisehg.hgqt.run
except ImportError, e:
    sys.stderr.write(str(e)+'\n')
    sys.stderr.write("abort: couldn't find tortoisehg libraries in [%s]\n" %
                     os.pathsep.join(sys.path))
    sys.stderr.write("(check your install and PYTHONPATH)\n")
    sys.exit(-1)

# Verify we have an acceptable version of Mercurial
from tortoisehg.util.hgversion import hgversion, checkhgversion
errmsg = checkhgversion(hgversion)
if errmsg:
    from mercurial import ui
    from tortoisehg.hgqt.bugreport import run
    from tortoisehg.hgqt.run import qtrun
    opts = {}
    opts['cmd'] = ' '.join(argv)
    opts['error'] = '\n' + errmsg + '\n'
    opts['nofork'] = True
    qtrun(run, ui.ui(), **opts)
    sys.exit(1)

if 'THGDEBUG' in os.environ or '--profile' in sys.argv:
    sys.exit(tortoisehg.hgqt.run.dispatch(argv))
else:
    import cStringIO
    mystderr = cStringIO.StringIO()
    origstderr = sys.stderr
    sys.stderr = mystderr
    sys.__stdout__ = sys.stdout
    sys.__stderr__ = sys.stderr
    ret = 0
    try:
        ret = tortoisehg.hgqt.run.dispatch(argv)
        sys.stderr = origstderr
        stderrout = mystderr.getvalue()
        errors = ('Traceback', 'TypeError', 'NameError', 'AttributeError',
                  'NotImplementedError')
        for l in stderrout.splitlines():
            if l.startswith(errors):
                from mercurial import ui
                from tortoisehg.hgqt.bugreport import run
                from tortoisehg.hgqt.run import qtrun
                opts = {}
                opts['cmd'] = ' '.join(argv)
                opts['error'] = 'Recoverable error (stderr):\n' + stderrout
                opts['nofork'] = True
                qtrun(run, ui.ui(), **opts)
                break
        sys.exit(ret)
    except:
        if sys.exc_info()[0] not in [SystemExit, KeyboardInterrupt]:
            import traceback
            sys.stderr = origstderr
            traceback.print_exc()
        else:
            raise SystemExit(ret)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.