error whenever trying to use annotate

Issue #4203 wontfix
Anonymous created an issue
** Mercurial version (3.4.1).  TortoiseHg version (3.4.1)
** Command: --nofork annotate --listfile C:\Windows\TEMP\THGE10C.tmp
** CWD: E:\DW_Hg
** Encoding: cp932
** Extensions loaded: largefiles, fixutf8, strip, mq, rebase, reviewboard, eol
** Python version: 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)]
** Windows version: sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1')
** Processor architecture: x64
** Qt-4.8.6 PyQt-4.11.3 QScintilla-2.8.4
Traceback (most recent call last):
  File "tortoisehg\hgqt\fileview.pyo", line 1062, in _onAnnotateFinished
EOFError

Comments (15)

  1. Yuya Nishihara
    • changed status to open

    Perhaps you have an extension, a hook, or an alias that pollute the output of hg annotate command.

    Please check the output of the following command:

    > hg annotate --line-number --text --number -T json --file FILENAME
    

    (we use -T pickle but its output isn't readable.)

  2. Jivan Goyal

    Hi,

    I am facing similar issue every time I try to annotate. Checked the command provided, it shows results without any error. So, please suggest steps to troubleshoot the issue.

  3. Yuya Nishihara

    Checked the command provided, it shows results without any error.

    Is the whole output a valid JSON (i.e no leading/trailing garbage)? Please attach the output (without using any private repositories.)

    Also try to disable all Mercurial extensions if any.

  4. Jivan Goyal

    Yes, output is valid JSON.

    It has structure like:

    [
     {
      "abspath": "File relative path name"
      "lines":[{"file":"file relative name", "line": "´╗┐using NLog;\r\n", "line_number": #number},...................
    }],
      "path": "FileName.cs"
     }
    ]
    

    I already have disabled all extensions. Closed TortoiseHg(not restarted machine), but issue still exists.

  5. Yuya Nishihara

    Thanks. Can you test the same command in TortoiseHg console window? (TortoiseHg Workbench -> View -> Show Console)

    If it looks okay, please run hg annotate --line-number --text --number -T picke --file FILENAME and copy-paste the output.

  6. Yuya Nishihara

    Oops, there was a typo. s/picke/pickle/

    Can you run the following command in public repository and attach the output as text?

    hg annotate --line-number --text --number -T pickle --file FILENAME
    
  7. Jivan Goyal

    I have used following repository:

    https://bitbucket.org/tortoisehg/thg

    Following is the output for one of the file

    tortoisehg% hg annotate --line-number --text --number -T pickle --file "C:\tortoisehg\TortoiseHgOverlayServer.py"
    % hg annotate --line-number --text --number -T pickle --file "C:\tortoisehg\TortoiseHgOverlayServer.py"
    (lp1
    (dp2
    S'path'
    p3
    S'TortoiseHgOverlayServer.py'
    p4
    sS'abspath'
    p5
    g4
    sS'lines'
    p6
    (lp7
    (dp8
    S'line_number'
    p9
    I1
    sS'line'
    p10
    S'# TortoiseHgOverlayServer.py - icon overlay server for Windows shellext\n'
    p11
    sS'rev'
    p12
    I17639
    sS'file'
    p13
    g4
    sa(dp14
    S'line_number'
    p15
    I2
    sg10
    S'#\n'
    p16
    sS'rev'
    p17
    I17639
    sS'file'
    p18
    g4
    sa(dp19
    S'line_number'
    p20
    I3
    sg10
    S'# Copyright 2009 TK Soh <teekaysoh@gmail.com>\n'
    p21
    sS'rev'
    p22
    I17639
    sS'file'
    p23
    g4
    sa(dp24
    S'line_number'
    p25
    I4
    sg10
    S'#\n'
    p26
    sS'rev'
    p27
    I17639
    sS'file'
    p28
    g4
    sa(dp29
    S'line_number'
    p30
    I5
    sg10
    S'# This software may be used and distributed according to the terms of the\n'
    p31
    sS'rev'
    p32
    I17639
    sS'file'
    p33
    g4
    sa(dp34
    S'line_number'
    p35
    I6
    sg10
    S'# GNU General Public License version 2, incorporated herein by reference.\n'
    p36
    sS'rev'
    p37
    I17639
    sS'file'
    p38
    g4
    sa(dp39
    S'line_number'
    p40
    I7
    sg10
    S'\n'
    sS'rev'
    p41
    I17639
    sS'file'
    p42
    g4
    sa(dp43
    S'line_number'
    p44
    I1
    sg10
    S'# Creates a task-bar icon.  Run from Python.exe to see the\n'
    p45
    sS'rev'
    p46
    I2626
    sS'file'
    p47
    S'taskbar.py'
    p48
    sa(dp49
    S'line_number'
    p50
    I2
    sg10
    S'# messages printed. Takes an optional logfile as first command\n'
    p51
    sS'rev'
    p52
    I5096
    sS'file'
    p53
    S'thgtaskbar.py'
    p54
    sa(dp55
    S'line_number'
    p56
    I3
    sg10
    S'# line parameter\n'
    p57
    sS'rev'
    p58
    I5096
    sS'file'
    p59
    g54
    sa(dp60
    S'line_number'
    p61
    I3
    sg10
    S'\n'
    sS'rev'
    p62
    I2626
    sS'file'
    p63
    g48
    sa(dp64
    S'line_number'
    p65
    I12
    sg10
    S'import os\n'
    p66
    sS'rev'
    p67
    I17668
    sS'file'
    p68
    g4
    sa(dp69
    S'line_number'
    p70
    I5
    sg10
    S'import sys\n'
    p71
    sS'rev'
    p72
    I10994
    sS'file'
    p73
    g4
    sa(dp74
    S'line_number'
    p75
    I6
    sg10
    S'\n'
    sS'rev'
    p76
    I10994
    sS'file'
    p77
    g4
    sa(dp78
    S'line_number'
    p79
    I7
    sg10
    S'if hasattr(sys, "frozen"):\n'
    p80
    sS'rev'
    p81
    I10994
    sS'file'
    p82
    g4
    sa(dp83
    S'line_number'
    p84
    I8
    sg10
    S'    class BlackHole(object):\n'
    p85
    sS'rev'
    p86
    I10994
    sS'file'
    p87
    g4
    sa(dp88
    S'line_number'
    p89
    I9
    sg10
    S'        closed = True\n'
    p90
    sS'rev'
    p91
    I10994
    sS'file'
    p92
    g4
    sa(dp93
    S'line_number'
    p94
    I10
    sg10
    S'        softspace = 0\n'
    p95
    sS'rev'
    p96
    I10994
    sS'file'
    p97
    g4
    sa(dp98
    S'line_number'
    p99
    I11
    sg10
    S'        def write(self, data):\n'
    p100
    sS'rev'
    p101
    I10994
    sS'file'
    p102
    g4
    sa(dp103
    S'line_number'
    p104
    I12
    sg10
    S'            pass\n'
    p105
    sS'rev'
    p106
    I10994
    sS'file'
    p107
    g4
    sa(dp108
    S'line_number'
    p109
    I13
    sg10
    S'        def close(self):\n'
    p110
    sS'rev'
    p111
    I10994
    sS'file'
    p112
    g4
    sa(dp113
    S'line_number'
    p114
    I14
    sg10
    S'            pass\n'
    p115
    sS'rev'
    p116
    I10994
    sS'file'
    p117
    g4
    sa(dp118
    S'line_number'
    p119
    I15
    sg10
    S'        def flush(self):\n'
    p120
    sS'rev'
    p121
    I10994
    sS'file'
    p122
    g4
    sa(dp123
    S'line_number'
    p124
    I16
    sg10
    S'            pass\n'
    p125
    sS'rev'
    p126
    I10994
    sS'file'
    p127
    g4
    sa(dp128
    S'line_number'
    p129
    I17
    sg10
    S'    sys.stdout = BlackHole()\n'
    p130
    sS'rev'
    p131
    I10994
    sS'file'
    p132
    g4
    sa(dp133
    S'line_number'
    p134
    I18
    sg10
    S'    sys.stderr = BlackHole()\n'
    p135
    sS'rev'
    p136
    I10994
    sS'file'
    p137
    g4
    sa(dp138
    S'line_number'
    p139
    I19
    sg10
    S'\n'
    sS'rev'
    p140
    I10994
    sS'file'
    p141
    g4
    sa(dp142
    S'line_number'
    p143
    I21
    sg10
    S'import errno\n'
    p144
    sS'rev'
    p145
    I11788
    sS'file'
    p146
    g4
    sa(dp147
    S'line_number'
    p148
    I7
    sg10
    S'import time\n'
    p149
    sS'rev'
    p150
    I2767
    sS'file'
    p151
    g48
    sa(dp152
    S'line_number'
    p153
    I8
    sg10
    S'import threading\n'
    p154
    sS'rev'
    p155
    I2767
    sS'file'
    p156
    g48
    sa(dp157
    S'line_number'
    p158
    I9
    sg10
    S'import cStringIO\n'
    p159
    sS'rev'
    p160
    I3180
    sS'file'
    p161
    g54
    sa(dp162
    S'line_number'
    p163
    I9
    sg10
    S'import Queue\n'
    p164
    sS'rev'
    p165
    I2767
    sS'file'
    p166
    g48
    sa(dp167
    S'line_number'
    p168
    I25
    sg10
    S'import traceback\n'
    p169
    sS'rev'
    p170
    I10994
    sS'file'
    p171
    g4
    sa(dp172
    S'line_number'
    p173
    I26
    sg10
    S'import gc\n'
    p174
    sS'rev'
    p175
    I10994
    sS'file'
    p176
    g4
    sa(dp177
    S'line_number'
    p178
    I13
    sg10
    S'\n'
    sS'rev'
    p179
    I2768
    sS'file'
    p180
    g48
    sa(dp181
    S'line_number'
    p182
    I28
    sg10
    S'try:\n'
    p183
    sS'rev'
    p184
    I10994
    sS'file'
    p185
    g4
    sa(dp186
    S'line_number'
    p187
    I29
    sg10
    S'    from win32api import *\n'
    p188
    sS'rev'
    p189
    I10994
    sS'file'
    p190
    g4
    sa(dp191
    S'line_number'
    p192
    I30
    sg10
    S'    from win32gui import *\n'
    p193
    sS'rev'
    p194
    I10994
    sS'file'
    p195
    g4
    sa(dp196
    S'line_number'
    p197
    I31
    sg10
    S'    import win32pipe\n'
    p198
    sS'rev'
    p199
    I10994
    sS'file'
    p200
    g4
    sa(dp201
    S'line_number'
    p202
    I32
    sg10
    S'    import win32con\n'
    p203
    sS'rev'
    p204
    I10994
    sS'file'
    p205
    g4
    sa(dp206
    S'line_number'
    p207
    I33
    sg10
    S'    import win32event\n'
    p208
    sS'rev'
    p209
    I10994
    sS'file'
    p210
    g4
    sa(dp211
    S'line_number'
    p212
    I34
    sg10
    S'    import win32file\n'
    p213
    sS'rev'
    p214
    I10994
    sS'file'
    p215
    g4
    sa(dp216
    S'line_number'
    p217
    I35
    sg10
    S'    import winerror\n'
    p218
    sS'rev'
    p219
    I10994
    sS'file'
    p220
    g4
    sa(dp221
    S'line_number'
    p222
    I36
    sg10
    S'    import pywintypes\n'
    p223
    sS'rev'
    p224
    I10994
    sS'file'
    p225
    g4
    sa(dp226
    S'line_number'
    p227
    I37
    sg10
    S'    import win32security\n'
    p228
    sS'rev'
    p229
    I10994
    sS'file'
    p230
    g4
    sa(dp231
    S'line_number'
    p232
    I38
    sg10
    S'except ImportError, e:\n'
    p233
    sS'rev'
    p234
    I10994
    sS'file'
    p235
    g4
    sa(dp236
    S'line_number'
    p237
    I39
    sg10
    S"    print 'Fatal error at startup', e\n"
    p238
    sS'rev'
    p239
    I10994
    sS'file'
    p240
    g4
    sa(dp241
    S'line_number'
    p242
    I40
    sg10
    S'    sys.exit(1)\n'
    p243
    sS'rev'
    p244
    I10994
    sS'file'
    p245
    g4
    sa(dp246
    S'line_number'
    p247
    I13
    sg10
    S'\n'
    sS'rev'
    p248
    I2626
    sS'file'
    p249
    g48
    sa(dp250
    S'line_number'
    p251
    I21
    sg10
    S'from mercurial import demandimport\n'
    p252
    sS'rev'
    p253
    I2769
    sS'file'
    p254
    g48
    sa(dp255
    S'line_number'
    p256
    I22
    sg10
    S"demandimport.ignore.append('win32com.shell')\n"
    p257
    sS'rev'
    p258
    I2769
    sS'file'
    p259
    g48
    sa(dp260
    S'line_number'
    p261
    I23
    sg10
    S'demandimport.enable()\n'
    p262
    sS'rev'
    p263
    I2769
    sS'file'
    p264
    g48
    sa(dp265
    S'line_number'
    p266
    I53
    sg10
    S'from mercurial import error\n'
    p267
    sS'rev'
    p268
    I18131
    sS'file'
    p269
    g4
    sa(dp270
    S'line_number'
    p271
    I46
    sg10
    S'from mercurial.windows import posixfile, unlink, rename\n'
    p272
    sS'rev'
    p273
    I10994
    sS'file'
    p274
    g4
    sa(dp275
    S'line_number'
    p276
    I27
    sg10
    S'from tortoisehg.util.i18n import agettext as _\n'
    p277
    sS'rev'
    p278
    I3984
    sS'file'
    p279
    g54
    sa(dp280
    S'line_number'
    p281
    I56
    sg10
    S'from tortoisehg.util import hglib, thread2, paths, shlib, version\n'
    p282
    sS'rev'
    p283
    I18131
    sS'file'
    p284
    g4
    sa(dp285
    S'line_number'
    p286
    I30
    sg10
    S'\n'
    sS'rev'
    p287
    I2790
    sS'file'
    p288
    g54
    sa(dp289
    S'line_number'
    p290
    I36
    sg10
    S"APP_TITLE = _('TortoiseHg Overlay Icon Server')\n"
    p291
    sS'rev'
    p292
    I5096
    sS'file'
    p293
    g54
    sa(dp294
    S'line_number'
    p295
    I15
    sg10
    S'\n'
    sS'rev'
    p296
    I2626
    sS'file'
    p297
    g48
    sa(dp298
    S'line_number'
    p299
    I30
    sg10
    S'EXIT_CMD = 1025\n'
    p300
    sS'rev'
    p301
    I2772
    sS'file'
    p302
    g48
    sa(dp303
    S'line_number'
    p304
    I31
    sg10
    S'\n'
    sS'rev'
    p305
    I2772
    sS'file'
    p306
    g48
    sa(dp307
    S'line_number'
    p308
    I54
    sg10
    S'class Logger():\n'
    p309
    sS'rev'
    p310
    I10994
    sS'file'
    p311
    g4
    sa(dp312
    S'line_number'
    p313
    I55
    sg10
    S'    def __init__(self):\n'
    p314
    sS'rev'
    p315
    I10994
    sS'file'
    p316
    g4
    sa(dp317
    S'line_number'
    p318
    I56
    sg10
    S'        self.file = None\n'
    p319
    sS'rev'
    p320
    I10994
    sS'file'
    p321
    g4
    sa(dp322
    S'line_number'
    p323
    I57
    sg10
    S'\n'
    sS'rev'
    p324
    I10994
    sS'file'
    p325
    g4
    sa(dp326
    S'line_number'
    p327
    I58
    sg10
    S'    def setfile(self, name):\n'
    p328
    sS'rev'
    p329
    I10994
    sS'file'
    p330
    g4
    sa(dp331
    S'line_number'
    p332
    I59
    sg10
    S"        oname = name + '.old'\n"
    p333
    sS'rev'
    p334
    I10994
    sS'file'
    p335
    g4
    sa(dp336
    S'line_number'
    p337
    I60
    sg10
    S'        try:\n'
    p338
    sS'rev'
    p339
    I10994
    sS'file'
    p340
    g4
    sa(dp341
    S'line_number'
    p342
    I61
    sg10
    S'            rename(name, oname)\n'
    p343
    sS'rev'
    p344
    I10994
    sS'file'
    p345
    g4
    sa(dp346
    S'line_number'
    p347
    I62
    sg10
    S'        except:\n'
    p348
    sS'rev'
    p349
    I10994
    sS'file'
    p350
    g4
    sa(dp351
    S'line_number'
    p352
    I63
    sg10
    S'            pass\n'
    p353
    sS'rev'
    p354
    I10994
    sS'file'
    p355
    g4
    sa(dp356
    S'line_number'
    p357
    I64
    sg10
    S"        self.file = posixfile(name, 'wb')\n"
    p358
    sS'rev'
    p359
    I10994
    sS'file'
    p360
    g4
    sa(dp361
    S'line_number'
    p362
    I65
    sg10
    S"        self.msg('%s, Version %s' % (APP_TITLE, version.version()))\n"
    p363
    sS'rev'
    p364
    I10994
    sS'file'
    p365
    g4
    sa(dp366
    S'line_number'
    p367
    I66
    sg10
    S"        self.msg('Logging to file started')\n"
    p368
    sS'rev'
    p369
    I10994
    sS'file'
    p370
    g4
    sa(dp371
    S'line_number'
    p372
    I67
    sg10
    S'\n'
    sS'rev'
    p373
    I10994
    sS'file'
    p374
    g4
    sa(dp375
    S'line_number'
    p376
    I68
    sg10
    S'    def msg(self, msg):\n'
    p377
    sS'rev'
    p378
    I10994
    sS'file'
    p379
    g4
    sa(dp380
    S'line_number'
    p381
    I69
    sg10
    S"        ts = '[%s] ' % time.strftime('%c')\n"
    p382
    sS'rev'
    p383
    I10994
    sS'file'
    p384
    g4
    sa(dp385
    S'line_number'
    p386
    I70
    sg10
    S'        f = self.file\n'
    p387
    sS'rev'
    p388
    I10994
    sS'file'
    p389
    g4
    sa(dp390
    S'line_number'
    p391
    I71
    sg10
    S'        if f:\n'
    p392
    sS'rev'
    p393
    I10994
    sS'file'
    p394
    g4
    sa(dp395
    S'line_number'
    p396
    I72
    sg10
    S"            f.write(ts + msg + '\\n')\n"
    p397
    sS'rev'
    p398
    I10994
    sS'file'
    p399
    g4
    sa(dp400
    S'line_number'
    p401
    I73
    sg10
    S'            f.flush()\n'
    p402
    sS'rev'
    p403
    I10994
    sS'file'
    p404
    g4
    sa(dp405
    S'line_number'
    p406
    I74
    sg10
    S'            os.fsync(f.fileno())\n'
    p407
    sS'rev'
    p408
    I10994
    sS'file'
    p409
    g4
    sa(dp410
    S'line_number'
    p411
    I75
    sg10
    S"            print 'L' + ts + msg\n"
    p412
    sS'rev'
    p413
    I10994
    sS'file'
    p414
    g4
    sa(dp415
    S'line_number'
    p416
    I76
    sg10
    S'        else:\n'
    p417
    sS'rev'
    p418
    I10994
    sS'file'
    p419
    g4
    sa(dp420
    S'line_number'
    p421
    I77
    sg10
    S'            print ts + msg\n'
    p422
    sS'rev'
    p423
    I10994
    sS'file'
    p424
    g4
    sa(dp425
    S'line_number'
    p426
    I78
    sg10
    S'\n'
    sS'rev'
    p427
    I10994
    sS'file'
    p428
    g4
    sa(dp429
    S'line_number'
    p430
    I79
    sg10
    S'logger = Logger()\n'
    p431
    sS'rev'
    p432
    I10994
    sS'file'
    p433
    g4
    sa(dp434
    S'line_number'
    p435
    I80
    sg10
    S'\n'
    sS'rev'
    p436
    I10994
    sS'file'
    p437
    g4
    sa(dp438
    S'line_number'
    p439
    I82
    sg10
    S'iconcache = {}\n'
    p440
    sS'rev'
    p441
    I14504
    sS'file'
    p442
    g4
    sa(dp443
    S'line_number'
    p444
    I83
    sg10
    S'\n'
    sS'rev'
    p445
    I14504
    sS'file'
    p446
    g4
    sa(dp447
    S'line_number'
    p448
    I82
    sg10
    S'def load_icon(name):\n'
    p449
    sS'rev'
    p450
    I14503
    sS'file'
    p451
    g4
    sa(dp452
    S'line_number'
    p453
    I47
    sg10
    S'    from tortoisehg.util.paths import get_tortoise_icon\n'
    p454
    sS'rev'
    p455
    I3984
    sS'file'
    p456
    g54
    sa(dp457
    S'line_number'
    p458
    I41
    sg10
    S'    iconPathName = get_tortoise_icon(name)\n'
    p459
    sS'rev'
    p460
    I2791
    sS'file'
    p461
    g54
    sa(dp462
    S'line_number'
    p463
    I41
    sg10
    S'    if iconPathName and os.path.isfile(iconPathName):\n'
    p464
    sS'rev'
    p465
    I2790
    sS'file'
    p466
    g54
    sa(dp467
    S'line_number'
    p468
    I42
    sg10
    S'        icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE\n'
    p469
    sS'rev'
    p470
    I2790
    sS'file'
    p471
    g54
    sa(dp472
    S'line_number'
    p473
    I91
    sg10
    S'        hicon = LoadImage(win32con.NULL, iconPathName, win32con.IMAGE_ICON, 16, 16, icon_flags)\n'
    p474
    sS'rev'
    p475
    I14502
    sS'file'
    p476
    g4
    sa(dp477
    S'line_number'
    p478
    I44
    sg10
    S'    else:\n'
    p479
    sS'rev'
    p480
    I2790
    sS'file'
    p481
    g54
    sa(dp482
    S'line_number'
    p483
    I45
    sg10
    S'        print "Can\'t find a Python icon file - using default"\n'
    p484
    sS'rev'
    p485
    I2790
    sS'file'
    p486
    g54
    sa(dp487
    S'line_number'
    p488
    I46
    sg10
    S'        hicon = LoadIcon(0, win32con.IDI_APPLICATION)\n'
    p489
    sS'rev'
    p490
    I2790
    sS'file'
    p491
    g54
    sa(dp492
    S'line_number'
    p493
    I91
    sg10
    S'    return hicon\n'
    p494
    sS'rev'
    p495
    I14503
    sS'file'
    p496
    g4
    sa(dp497
    S'line_number'
    p498
    I92
    sg10
    S'\n'
    sS'rev'
    p499
    I14503
    sS'file'
    p500
    g4
    sa(dp501
    S'line_number'
    p502
    I95
    sg10
    S'def get_icon(name):\n'
    p503
    sS'rev'
    p504
    I14504
    sS'file'
    p505
    g4
    sa(dp506
    S'line_number'
    p507
    I96
    sg10
    S'    try:\n'
    p508
    sS'rev'
    p509
    I14504
    sS'file'
    p510
    g4
    sa(dp511
    S'line_number'
    p512
    I97
    sg10
    S'        return iconcache[name]\n'
    p513
    sS'rev'
    p514
    I14504
    sS'file'
    p515
    g4
    sa(dp516
    S'line_number'
    p517
    I98
    sg10
    S'    except KeyError:\n'
    p518
    sS'rev'
    p519
    I14504
    sS'file'
    p520
    g4
    sa(dp521
    S'line_number'
    p522
    I99
    sg10
    S'        iconcache[name] = load_icon(name)\n'
    p523
    sS'rev'
    p524
    I14504
    sS'file'
    p525
    g4
    sa(dp526
    S'line_number'
    p527
    I100
    sg10
    S'        return iconcache[name]\n'
    p528
    sS'rev'
    p529
    I14504
    sS'file'
    p530
    g4
    sa(dp531
    S'line_number'
    p532
    I101
    sg10
    S'\n'
    sS'rev'
    p533
    I14504
    sS'file'
    p534
    g4
    sa(dp535
    S'line_number'
    p536
    I93
    sg10
    S'def SetIcon(hwnd, name, add=False):\n'
    p537
    sS'rev'
    p538
    I14503
    sS'file'
    p539
    g4
    sa(dp540
    S'line_number'
    p541
    I94
    sg10
    S'    # Try and find a custom icon\n'
    p542
    sS'rev'
    p543
    I14503
    sS'file'
    p544
    g4
    sa(dp545
    S'line_number'
    p546
    I95
    sg10
    S"    if '--noicon' in sys.argv:\n"
    p547
    sS'rev'
    p548
    I14503
    sS'file'
    p549
    g4
    sa(dp550
    S'line_number'
    p551
    I96
    sg10
    S'        return\n'
    p552
    sS'rev'
    p553
    I14503
    sS'file'
    p554
    g4
    sa(dp555
    S'line_number'
    p556
    I97
    sg10
    S'    print "SetIcon(%s)" % name\n'
    p557
    sS'rev'
    p558
    I14503
    sS'file'
    p559
    g4
    sa(dp560
    S'line_number'
    p561
    I98
    sg10
    S'\n'
    sS'rev'
    p562
    I14503
    sS'file'
    p563
    g4
    sa(dp564
    S'line_number'
    p565
    I108
    sg10
    S'    hicon = get_icon(name)\n'
    p566
    sS'rev'
    p567
    I14504
    sS'file'
    p568
    g4
    sa(dp569
    S'line_number'
    p570
    I47
    sg10
    S'\n'
    sS'rev'
    p571
    I2790
    sS'file'
    p572
    g54
    sa(dp573
    S'line_number'
    p574
    I48
    sg10
    S'    flags = NIF_ICON | NIF_MESSAGE | NIF_TIP\n'
    p575
    sS'rev'
    p576
    I2790
    sS'file'
    p577
    g54
    sa(dp578
    S'line_number'
    p579
    I49
    sg10
    S'    nid = (hwnd, 0, flags, win32con.WM_USER+20, hicon, APP_TITLE)\n'
    p580
    sS'rev'
    p581
    I2790
    sS'file'
    p582
    g54
    sa(dp583
    S'line_number'
    p584
    I51
    sg10
    S'    action = NIM_MODIFY\n'
    p585
    sS'rev'
    p586
    I2791
    sS'file'
    p587
    g54
    sa(dp588
    S'line_number'
    p589
    I52
    sg10
    S'    if add:\n'
    p590
    sS'rev'
    p591
    I2791
    sS'file'
    p592
    g54
    sa(dp593
    S'line_number'
    p594
    I53
    sg10
    S'        action = NIM_ADD\n'
    p595
    sS'rev'
    p596
    I2791
    sS'file'
    p597
    g54
    sa(dp598
    S'line_number'
    p599
    I50
    sg10
    S'    try:\n'
    p600
    sS'rev'
    p601
    I2790
    sS'file'
    p602
    g54
    sa(dp603
    S'line_number'
    p604
    I55
    sg10
    S'        Shell_NotifyIcon(action, nid)\n'
    p605
    sS'rev'
    p606
    I2791
    sS'file'
    p607
    g54
    sa(dp608
    S'line_number'
    p609
    I63
    sg10
    S'    except pywintypes.error:\n'
    p610
    sS'rev'
    p611
    I3448
    sS'file'
    p612
    g54
    sa(dp613
    S'line_number'
    p614
    I53
    sg10
    S'        # This is common when windows is starting, and this code is hit\n'
    p615
    sS'rev'
    p616
    I2790
    sS'file'
    p617
    g54
    sa(dp618
    S'line_number'
    p619
    I54
    sg10
    S'        # before the taskbar has been created.\n'
    p620
    sS'rev'
    p621
    I2790
    sS'file'
    p622
    g54
    sa(dp623
    S'line_number'
    p624
    I55
    sg10
    S'        print "Failed to add the taskbar icon - is explorer running?"\n'
    p625
    sS'rev'
    p626
    I2790
    sS'file'
    p627
    g54
    sa(dp628
    S'line_number'
    p629
    I56
    sg10
    S'        # but keep running anyway - when explorer starts, we get the\n'
    p630
    sS'rev'
    p631
    I2790
    sS'file'
    p632
    g54
    sa(dp633
    S'line_number'
    p634
    I57
    sg10
    S'        # TaskbarCreated message.\n'
    p635
    sS'rev'
    p636
    I2790
    sS'file'
    p637
    g54
    sa(dp638
    S'line_number'
    p639
    I58
    sg10
    S'\n'
    sS'rev'
    p640
    I2790
    sS'file'
    p641
    g54
    sa(dp642
    S'line_number'
    p643
    I16
    sg10
    S'class MainWindow:\n'
    p644
    sS'rev'
    p645
    I2626
    sS'file'
    p646
    g48
    sa(dp647
    S'line_number'
    p648
    I17
    sg10
    S'    def __init__(self):\n'
    p649
    sS'rev'
    p650
    I2626
    sS'file'
    p651
    g48
    sa(dp652
    S'line_number'
    p653
    I112
    sg10
    S'        self.pipethread = None\n'
    p654
    sS'rev'
    p655
    I10994
    sS'file'
    p656
    g4
    sa(dp657
    S'line_number'
    p658
    I18
    sg10
    S'        msg_TaskbarRestart = RegisterWindowMessage("TaskbarCreated");\n'
    p659
    sS'rev'
    p660
    I2626
    sS'file'
    p661
    g48
    sa(dp662
    S'line_number'
    p663
    I19
    sg10
    S'        message_map = {\n'
    p664
    sS'rev'
    p665
    I2626
    sS'file'
    p666
    g48
    sa(dp667
    S'line_number'
    p668
    I20
    sg10
    S'                msg_TaskbarRestart: self.OnRestart,\n'
    p669
    sS'rev'
    p670
    I2626
    sS'file'
    p671
    g48
    sa(dp672
    S'line_number'
    p673
    I21
    sg10
    S'                win32con.WM_DESTROY: self.OnDestroy,\n'
    p674
    sS'rev'
    p675
    I2626
    sS'file'
    p676
    g48
    sa(dp677
    S'line_number'
    p678
    I22
    sg10
    S'                win32con.WM_COMMAND: self.OnCommand,\n'
    p679
    sS'rev'
    p680
    I2626
    sS'file'
    p681
    g48
    sa(dp682
    S'line_number'
    p683
    I23
    sg10
    S'                win32con.WM_USER+20 : self.OnTaskbarNotify,\n'
    p684
    sS'rev'
    p685
    I2626
    sS'file'
    p686
    g48
    sa(dp687
    S'line_number'
    p688
    I24
    sg10
    S'        }\n'
    p689
    sS'rev'
    p690
    I2626
    sS'file'
    p691
    g48
    sa(dp692
    S'line_number'
    p693
    I25
    sg10
    S'        # Register the Window class.\n'
    p694
    sS'rev'
    p695
    I2626
    sS'file'
    p696
    g48
    sa(dp697
    S'line_number'
    p698
    I26
    sg10
    S'        wc = WNDCLASS()\n'
    p699
    sS'rev'
    p700
    I2626
    sS'file'
    p701
    g48
    sa(dp702
    S'line_number'
    p703
    I27
    sg10
    S'        hinst = wc.hInstance = GetModuleHandle(None)\n'
    p704
    sS'rev'
    p705
    I2626
    sS'file'
    p706
    g48
    sa(dp707
    S'line_number'
    p708
    I28
    sg10
    S'        wc.lpszClassName = "THgRpcServer"\n'
    p709
    sS'rev'
    p710
    I2626
    sS'file'
    p711
    g48
    sa(dp712
    S'line_number'
    p713
    I29
    sg10
    S'        wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW;\n'
    p714
    sS'rev'
    p715
    I2626
    sS'file'
    p716
    g48
    sa(dp717
    S'line_number'
    p718
    I30
    sg10
    S'        wc.hCursor = LoadCursor( 0, win32con.IDC_ARROW )\n'
    p719
    sS'rev'
    p720
    I2626
    sS'file'
    p721
    g48
    sa(dp722
    S'line_number'
    p723
    I31
    sg10
    S'        wc.hbrBackground = win32con.COLOR_WINDOW\n'
    p724
    sS'rev'
    p725
    I2626
    sS'file'
    p726
    g48
    sa(dp727
    S'line_number'
    p728
    I32
    sg10
    S'        wc.lpfnWndProc = message_map # could also specify a wndproc.\n'
    p729
    sS'rev'
    p730
    I2626
    sS'file'
    p731
    g48
    sa(dp732
    S'line_number'
    p733
    I33
    sg10
    S'        classAtom = RegisterClass(wc)\n'
    p734
    sS'rev'
    p735
    I2626
    sS'file'
    p736
    g48
    sa(dp737
    S'line_number'
    p738
    I34
    sg10
    S'        # Create the Window.\n'
    p739
    sS'rev'
    p740
    I2626
    sS'file'
    p741
    g48
    sa(dp742
    S'line_number'
    p743
    I35
    sg10
    S'        style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU\n'
    p744
    sS'rev'
    p745
    I2626
    sS'file'
    p746
    g48
    sa(dp747
    S'line_number'
    p748
    I36
    sg10
    S'        self.hwnd = CreateWindow( classAtom, APP_TITLE, style, \\\n'
    p749
    sS'rev'
    p750
    I2626
    sS'file'
    p751
    g48
    sa(dp752
    S'line_number'
    p753
    I37
    sg10
    S'                0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \\\n'
    p754
    sS'rev'
    p755
    I2626
    sS'file'
    p756
    g48
    sa(dp757
    S'line_number'
    p758
    I38
    sg10
    S'                0, 0, hinst, None)\n'
    p759
    sS'rev'
    p760
    I2626
    sS'file'
    p761
    g48
    sa(dp762
    S'line_number'
    p763
    I39
    sg10
    S'        UpdateWindow(self.hwnd)\n'
    p764
    sS'rev'
    p765
    I2626
    sS'file'
    p766
    g48
    sa(dp767
    S'line_number'
    p768
    I40
    sg10
    S'        self._DoCreateIcons()\n'
    p769
    sS'rev'
    p770
    I2626
    sS'file'
    p771
    g48
    sa(dp772
    S'line_number'
    p773
    I41
    sg10
    S'\n'
    sS'rev'
    p774
    I2626
    sS'file'
    p775
    g48
    sa(dp776
    S'line_number'
    p777
    I42
    sg10
    S'    def _DoCreateIcons(self):\n'
    p778
    sS'rev'
    p779
    I2626
    sS'file'
    p780
    g48
    sa(dp781
    S'line_number'
    p782
    I96
    sg10
    S'        show, highlight = get_config()\n'
    p783
    sS'rev'
    p784
    I5104
    sS'file'
    p785
    g54
    sa(dp786
    S'line_number'
    p787
    I97
    sg10
    S'        if show:\n'
    p788
    sS'rev'
    p789
    I5104
    sS'file'
    p790
    g54
    sa(dp791
    S'line_number'
    p792
    I98
    sg10
    S'            SetIcon(self.hwnd, "hg.ico", add=True)\n'
    p793
    sS'rev'
    p794
    I5104
    sS'file'
    p795
    g54
    sa(dp796
    S'line_number'
    p797
    I65
    sg10
    S'        # start namepipe server for hg status\n'
    p798
    sS'rev'
    p799
    I2626
    sS'file'
    p800
    g48
    sa(dp801
    S'line_number'
    p802
    I66
    sg10
    S'        self.start_pipe_server()\n'
    p803
    sS'rev'
    p804
    I2626
    sS'file'
    p805
    g48
    sa(dp806
    S'line_number'
    p807
    I67
    sg10
    S'\n'
    sS'rev'
    p808
    I2626
    sS'file'
    p809
    g48
    sa(dp810
    S'line_number'
    p811
    I68
    sg10
    S'    def OnRestart(self, hwnd, msg, wparam, lparam):\n'
    p812
    sS'rev'
    p813
    I2626
    sS'file'
    p814
    g48
    sa(dp815
    S'line_number'
    p816
    I145
    sg10
    S'        logger.msg("MainWindow.OnRestart")\n'
    p817
    sS'rev'
    p818
    I10994
    sS'file'
    p819
    g4
    sa(dp820
    S'line_number'
    p821
    I69
    sg10
    S'        self._DoCreateIcons()\n'
    p822
    sS'rev'
    p823
    I2626
    sS'file'
    p824
    g48
    sa(dp825
    S'line_number'
    p826
    I70
    sg10
    S'\n'
    sS'rev'
    p827
    I2626
    sS'file'
    p828
    g48
    sa(dp829
    S'line_number'
    p830
    I71
    sg10
    S'    def OnDestroy(self, hwnd, msg, wparam, lparam):\n'
    p831
    sS'rev'
    p832
    I2626
    sS'file'
    p833
    g48
    sa(dp834
    S'line_number'
    p835
    I149
    sg10
    S'        logger.msg("MainWindow.OnDestroy")\n'
    p836
    sS'rev'
    p837
    I10994
    sS'file'
    p838
    g4
    sa(dp839
    S'line_number'
    p840
    I72
    sg10
    S'        nid = (self.hwnd, 0)\n'
    p841
    sS'rev'
    p842
    I2626
    sS'file'
    p843
    g48
    sa(dp844
    S'line_number'
    p845
    I109
    sg10
    S'        try:\n'
    p846
    sS'rev'
    p847
    I5139
    sS'file'
    p848
    g54
    sa(dp849
    S'line_number'
    p850
    I110
    sg10
    S'            Shell_NotifyIcon(NIM_DELETE, nid)\n'
    p851
    sS'rev'
    p852
    I5139
    sS'file'
    p853
    g54
    sa(dp854
    S'line_number'
    p855
    I111
    sg10
    S'        except pywintypes.error:\n'
    p856
    sS'rev'
    p857
    I5139
    sS'file'
    p858
    g54
    sa(dp859
    S'line_number'
    p860
    I112
    sg10
    S'            pass # happens when we run without icon\n'
    p861
    sS'rev'
    p862
    I5139
    sS'file'
    p863
    g54
    sa(dp864
    S'line_number'
    p865
    I74
    sg10
    S'        PostQuitMessage(0) # Terminate the app.\n'
    p866
    sS'rev'
    p867
    I2626
    sS'file'
    p868
    g48
    sa(dp869
    S'line_number'
    p870
    I75
    sg10
    S'\n'
    sS'rev'
    p871
    I2626
    sS'file'
    p872
    g48
    sa(dp873
    S'line_number'
    p874
    I76
    sg10
    S'    def OnTaskbarNotify(self, hwnd, msg, wparam, lparam):\n'
    p875
    sS'rev'
    p876
    I2626
    sS'file'
    p877
    g48
    sa(dp878
    S'line_number'
    p879
    I77
    sg10
    S'        if lparam==win32con.WM_RBUTTONUP or lparam==win32con.WM_LBUTTONUP:\n'
    p880
    sS'rev'
    p881
    I2626
    sS'file'
    p882
    g48
    sa(dp883
    S'line_number'
    p884
    I78
    sg10
    S'            menu = CreatePopupMenu()\n'
    p885
    sS'rev'
    p886
    I2626
    sS'file'
    p887
    g48
    sa(dp888
    S'line_number'
    p889
    I111
    sg10
    S"            # AppendMenu(menu, win32con.MF_SEPARATOR, 0, '')\n"
    p890
    sS'rev'
    p891
    I5096
    sS'file'
    p892
    g54
    sa(dp893
    S'line_number'
    p894
    I116
    sg10
    S"            AppendMenu(menu, win32con.MF_STRING, EXIT_CMD, _('Exit'))\n"
    p895
    sS'rev'
    p896
    I3527
    sS'file'
    p897
    g54
    sa(dp898
    S'line_number'
    p899
    I82
    sg10
    S'            pos = GetCursorPos()\n'
    p900
    sS'rev'
    p901
    I2626
    sS'file'
    p902
    g48
    sa(dp903
    S'line_number'
    p904
    I83
    sg10
    S'            # See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/menus_0hdi.asp\n'
    p905
    sS'rev'
    p906
    I2626
    sS'file'
    p907
    g48
    sa(dp908
    S'line_number'
    p909
    I118
    sg10
    S'            try:\n'
    p910
    sS'rev'
    p911
    I3448
    sS'file'
    p912
    g54
    sa(dp913
    S'line_number'
    p914
    I119
    sg10
    S'                SetForegroundWindow(self.hwnd)\n'
    p915
    sS'rev'
    p916
    I3448
    sS'file'
    p917
    g54
    sa(dp918
    S'line_number'
    p919
    I120
    sg10
    S'                TrackPopupMenu(menu, win32con.TPM_LEFTALIGN, pos[0], pos[1], 0, self.hwnd, None)\n'
    p920
    sS'rev'
    p921
    I3448
    sS'file'
    p922
    g54
    sa(dp923
    S'line_number'
    p924
    I121
    sg10
    S'                PostMessage(self.hwnd, win32con.WM_NULL, 0, 0)\n'
    p925
    sS'rev'
    p926
    I3448
    sS'file'
    p927
    g54
    sa(dp928
    S'line_number'
    p929
    I122
    sg10
    S'            except pywintypes.error:\n'
    p930
    sS'rev'
    p931
    I3448
    sS'file'
    p932
    g54
    sa(dp933
    S'line_number'
    p934
    I123
    sg10
    S'                pass\n'
    p935
    sS'rev'
    p936
    I3448
    sS'file'
    p937
    g54
    sa(dp938
    S'line_number'
    p939
    I87
    sg10
    S'        return 1\n'
    p940
    sS'rev'
    p941
    I2626
    sS'file'
    p942
    g48
    sa(dp943
    S'line_number'
    p944
    I88
    sg10
    S'\n'
    sS'rev'
    p945
    I2626
    sS'file'
    p946
    g48
    sa(dp947
    S'line_number'
    p948
    I89
    sg10
    S'    def OnCommand(self, hwnd, msg, wparam, lparam):\n'
    p949
    sS'rev'
    p950
    I2626
    sS'file'
    p951
    g48
    sa(dp952
    S'line_number'
    p953
    I90
    sg10
    S'        id = LOWORD(wparam)\n'
    p954
    sS'rev'
    p955
    I2626
    sS'file'
    p956
    g48
    sa(dp957
    S'line_number'
    p958
    I125
    sg10
    S'        if id == EXIT_CMD:\n'
    p959
    sS'rev'
    p960
    I5096
    sS'file'
    p961
    g54
    sa(dp962
    S'line_number'
    p963
    I96
    sg10
    S'            self.exit_application()\n'
    p964
    sS'rev'
    p965
    I2626
    sS'file'
    p966
    g48
    sa(dp967
    S'line_number'
    p968
    I97
    sg10
    S'        else:\n'
    p969
    sS'rev'
    p970
    I2626
    sS'file'
    p971
    g48
    sa(dp972
    S'line_number'
    p973
    I98
    sg10
    S'            print "Unknown command -", id\n'
    p974
    sS'rev'
    p975
    I2626
    sS'file'
    p976
    g48
    sa(dp977
    S'line_number'
    p978
    I99
    sg10
    S'\n'
    sS'rev'
    p979
    I2626
    sS'file'
    p980
    g48
    sa(dp981
    S'line_number'
    p982
    I100
    sg10
    S'    def exit_application(self):\n'
    p983
    sS'rev'
    p984
    I2626
    sS'file'
    p985
    g48
    sa(dp986
    S'line_number'
    p987
    I180
    sg10
    S'        logger.msg("MainWindow.exit_application")\n'
    p988
    sS'rev'
    p989
    I10994
    sS'file'
    p990
    g4
    sa(dp991
    S'line_number'
    p992
    I102
    sg10
    S'        if self.stop_pipe_server():\n'
    p993
    sS'rev'
    p994
    I2626
    sS'file'
    p995
    g48
    sa(dp996
    S'line_number'
    p997
    I103
    sg10
    S'            DestroyWindow(self.hwnd)\n'
    p998
    sS'rev'
    p999
    I2626
    sS'file'
    p1000
    g48
    sa(dp1001
    S'line_number'
    p1002
    I183
    sg10
    S'        logger.msg("Goodbye")\n'
    p1003
    sS'rev'
    p1004
    I10994
    sS'file'
    p1005
    g4
    sa(dp1006
    S'line_number'
    p1007
    I134
    sg10
    S'\n'
    sS'rev'
    p1008
    I5096
    sS'file'
    p1009
    g54
    sa(dp1010
    S'line_number'
    p1011
    I106
    sg10
    S'    def stop_pipe_server(self):\n'
    p1012
    sS'rev'
    p1013
    I2626
    sS'file'
    p1014
    g48
    sa(dp1015
    S'line_number'
    p1016
    I186
    sg10
    S'        logger.msg("MainWindow.stop_pipe_server")\n'
    p1017
    sS'rev'
    p1018
    I10994
    sS'file'
    p1019
    g4
    sa(dp1020
    S'line_number'
    p1021
    I107
    sg10
    S'        if not self.pipethread.isAlive():\n'
    p1022
    sS'rev'
    p1023
    I2658
    sS'file'
    p1024
    g48
    sa(dp1025
    S'line_number'
    p1026
    I188
    sg10
    S'            logger.msg("pipethread is not alive")\n'
    p1027
    sS'rev'
    p1028
    I10994
    sS'file'
    p1029
    g4
    sa(dp1030
    S'line_number'
    p1031
    I108
    sg10
    S'            return True\n'
    p1032
    sS'rev'
    p1033
    I2658
    sS'file'
    p1034
    g48
    sa(dp1035
    S'line_number'
    p1036
    I109
    sg10
    S'\n'
    sS'rev'
    p1037
    I2658
    sS'file'
    p1038
    g48
    sa(dp1039
    S'line_number'
    p1040
    I110
    sg10
    S'        # Try the nice way first\n'
    p1041
    sS'rev'
    p1042
    I2658
    sS'file'
    p1043
    g48
    sa(dp1044
    S'line_number'
    p1045
    I111
    sg10
    S'        self.svc.SvcStop()\n'
    p1046
    sS'rev'
    p1047
    I2658
    sS'file'
    p1048
    g48
    sa(dp1049
    S'line_number'
    p1050
    I112
    sg10
    S'\n'
    sS'rev'
    p1051
    I2658
    sS'file'
    p1052
    g48
    sa(dp1053
    S'line_number'
    p1054
    I107
    sg10
    S'        max_try = 10\n'
    p1055
    sS'rev'
    p1056
    I2626
    sS'file'
    p1057
    g48
    sa(dp1058
    S'line_number'
    p1059
    I108
    sg10
    S'        cnt = 1\n'
    p1060
    sS'rev'
    p1061
    I2626
    sS'file'
    p1062
    g48
    sa(dp1063
    S'line_number'
    p1064
    I109
    sg10
    S'        while cnt <= max_try and self.pipethread.isAlive():\n'
    p1065
    sS'rev'
    p1066
    I2626
    sS'file'
    p1067
    g48
    sa(dp1068
    S'line_number'
    p1069
    I110
    sg10
    S'            print "testing pipe [try %d] ..." % cnt\n'
    p1070
    sS'rev'
    p1071
    I2626
    sS'file'
    p1072
    g48
    sa(dp1073
    S'line_number'
    p1074
    I111
    sg10
    S'            try:\n'
    p1075
    sS'rev'
    p1076
    I2626
    sS'file'
    p1077
    g48
    sa(dp1078
    S'line_number'
    p1079
    I199
    sg10
    S'                try:\n'
    p1080
    sS'rev'
    p1081
    I11481
    sS'file'
    p1082
    g4
    sa(dp1083
    S'line_number'
    p1084
    I200
    sg10
    S'                    self.pipethread.terminate()\n'
    p1085
    sS'rev'
    p1086
    I11481
    sS'file'
    p1087
    g4
    sa(dp1088
    S'line_number'
    p1089
    I201
    sg10
    S'                except ValueError:\n'
    p1090
    sS'rev'
    p1091
    I11481
    sS'file'
    p1092
    g4
    sa(dp1093
    S'line_number'
    p1094
    I202
    sg10
    S'                    pass\n'
    p1095
    sS'rev'
    p1096
    I11481
    sS'file'
    p1097
    g4
    sa(dp1098
    S'line_number'
    p1099
    I136
    sg10
    S"                win32pipe.CallNamedPipe(PIPENAME, '', PIPEBUFSIZE, 0)\n"
    p1100
    sS'rev'
    p1101
    I2767
    sS'file'
    p1102
    g48
    sa(dp1103
    S'line_number'
    p1104
    I115
    sg10
    S'            except:\n'
    p1105
    sS'rev'
    p1106
    I2626
    sS'file'
    p1107
    g48
    sa(dp1108
    S'line_number'
    p1109
    I202
    sg10
    S'                logger.msg(traceback.format_exc())\n'
    p1110
    sS'rev'
    p1111
    I10994
    sS'file'
    p1112
    g4
    sa(dp1113
    S'line_number'
    p1114
    I116
    sg10
    S'                pass\n'
    p1115
    sS'rev'
    p1116
    I2626
    sS'file'
    p1117
    g48
    sa(dp1118
    S'line_number'
    p1119
    I117
    sg10
    S'            cnt += 1\n'
    p1120
    sS'rev'
    p1121
    I2626
    sS'file'
    p1122
    g48
    sa(dp1123
    S'line_number'
    p1124
    I205
    sg10
    S'\n'
    sS'rev'
    p1125
    I10994
    sS'file'
    p1126
    g4
    sa(dp1127
    S'line_number'
    p1128
    I119
    sg10
    S'        if self.pipethread.isAlive():\n'
    p1129
    sS'rev'
    p1130
    I2626
    sS'file'
    p1131
    g48
    sa(dp1132
    S'line_number'
    p1133
    I207
    sg10
    S'            msg = "WARNING: unable to stop server after %d trys." % max_try\n'
    p1134
    sS'rev'
    p1135
    I10994
    sS'file'
    p1136
    g4
    sa(dp1137
    S'line_number'
    p1138
    I208
    sg10
    S'            logger.msg(msg)\n'
    p1139
    sS'rev'
    p1140
    I10994
    sS'file'
    p1141
    g4
    sa(dp1142
    S'line_number'
    p1143
    I121
    sg10
    S'            return False\n'
    p1144
    sS'rev'
    p1145
    I2626
    sS'file'
    p1146
    g48
    sa(dp1147
    S'line_number'
    p1148
    I122
    sg10
    S'        else:\n'
    p1149
    sS'rev'
    p1150
    I2626
    sS'file'
    p1151
    g48
    sa(dp1152
    S'line_number'
    p1153
    I123
    sg10
    S'            return True\n'
    p1154
    sS'rev'
    p1155
    I2626
    sS'file'
    p1156
    g48
    sa(dp1157
    S'line_number'
    p1158
    I124
    sg10
    S'\n'
    sS'rev'
    p1159
    I2626
    sS'file'
    p1160
    g48
    sa(dp1161
    S'line_number'
    p1162
    I126
    sg10
    S'    def start_pipe_server(self):\n'
    p1163
    sS'rev'
    p1164
    I2626
    sS'file'
    p1165
    g48
    sa(dp1166
    S'line_number'
    p1167
    I214
    sg10
    S'        if self.pipethread is not None:\n'
    p1168
    sS'rev'
    p1169
    I10994
    sS'file'
    p1170
    g4
    sa(dp1171
    S'line_number'
    p1172
    I215
    sg10
    S'            return\n'
    p1173
    sS'rev'
    p1174
    I10994
    sS'file'
    p1175
    g4
    sa(dp1176
    S'line_number'
    p1177
    I216
    sg10
    S'\n'
    sS'rev'
    p1178
    I10994
    sS'file'
    p1179
    g4
    sa(dp1180
    S'line_number'
    p1181
    I127
    sg10
    S'        def servepipe():\n'
    p1182
    sS'rev'
    p1183
    I2626
    sS'file'
    p1184
    g48
    sa(dp1185
    S'line_number'
    p1186
    I180
    sg10
    S'            self.svc = PipeServer(self.hwnd)\n'
    p1187
    sS'rev'
    p1188
    I2791
    sS'file'
    p1189
    g54
    sa(dp1190
    S'line_number'
    p1191
    I129
    sg10
    S'            self.svc.SvcDoRun()\n'
    p1192
    sS'rev'
    p1193
    I2626
    sS'file'
    p1194
    g48
    sa(dp1195
    S'line_number'
    p1196
    I130
    sg10
    S'\n'
    sS'rev'
    p1197
    I2626
    sS'file'
    p1198
    g48
    sa(dp1199
    S'line_number'
    p1200
    I131
    sg10
    S'        self.pipethread = thread2.Thread(target=servepipe)\n'
    p1201
    sS'rev'
    p1202
    I2626
    sS'file'
    p1203
    g48
    sa(dp1204
    S'line_number'
    p1205
    I132
    sg10
    S'        self.pipethread.start()\n'
    p1206
    sS'rev'
    p1207
    I2626
    sS'file'
    p1208
    g48
    sa(dp1209
    S'line_number'
    p1210
    I133
    sg10
    S'\n'
    sS'rev'
    p1211
    I2626
    sS'file'
    p1212
    g48
    sa(dp1213
    S'line_number'
    p1214
    I171
    sg10
    S'\n'
    sS'rev'
    p1215
    I2767
    sS'file'
    p1216
    g48
    sa(dp1217
    S'line_number'
    p1218
    I172
    sg10
    S'PIPENAME = r"\\\\.\\pipe\\TortoiseHgRpcServer-bc0c27107423-"\n'
    p1219
    sS'rev'
    p1220
    I2767
    sS'file'
    p1221
    g48
    sa(dp1222
    S'line_number'
    p1223
    I173
    sg10
    S'PIPENAME += GetUserName()\n'
    p1224
    sS'rev'
    p1225
    I2767
    sS'file'
    p1226
    g48
    sa(dp1227
    S'line_number'
    p1228
    I174
    sg10
    S'\n'
    sS'rev'
    p1229
    I2767
    sS'file'
    p1230
    g48
    sa(dp1231
    S'line_number'
    p1232
    I175
    sg10
    S'PIPEBUFSIZE = 4096\n'
    p1233
    sS'rev'
    p1234
    I2767
    sS'file'
    p1235
    g48
    sa(dp1236
    S'line_number'
    p1237
    I176
    sg10
    S'\n'
    sS'rev'
    p1238
    I2767
    sS'file'
    p1239
    g48
    sa(dp1240
    S'line_number'
    p1241
    I183
    sg10
    S'def getrepos(batch):\n'
    p1242
    sS'rev'
    p1243
    I2767
    sS'file'
    p1244
    g48
    sa(dp1245
    S'line_number'
    p1246
    I184
    sg10
    S'    roots = set()\n'
    p1247
    sS'rev'
    p1248
    I2767
    sS'file'
    p1249
    g48
    sa(dp1250
    S'line_number'
    p1251
    I185
    sg10
    S'    notifypaths = set()\n'
    p1252
    sS'rev'
    p1253
    I2767
    sS'file'
    p1254
    g48
    sa(dp1255
    S'line_number'
    p1256
    I186
    sg10
    S'    for path in batch:\n'
    p1257
    sS'rev'
    p1258
    I2767
    sS'file'
    p1259
    g48
    sa(dp1260
    S'line_number'
    p1261
    I187
    sg10
    S'        r = paths.find_root(path)\n'
    p1262
    sS'rev'
    p1263
    I2767
    sS'file'
    p1264
    g48
    sa(dp1265
    S'line_number'
    p1266
    I188
    sg10
    S'        if r is None:\n'
    p1267
    sS'rev'
    p1268
    I2767
    sS'file'
    p1269
    g48
    sa(dp1270
    S'line_number'
    p1271
    I240
    sg10
    S'            try:\n'
    p1272
    sS'rev'
    p1273
    I14391
    sS'file'
    p1274
    g4
    sa(dp1275
    S'line_number'
    p1276
    I241
    sg10
    S'                for n in os.listdir(path):\n'
    p1277
    sS'rev'
    p1278
    I14391
    sS'file'
    p1279
    g4
    sa(dp1280
    S'line_number'
    p1281
    I242
    sg10
    S'                    r = paths.find_root(os.path.join(path, n))\n'
    p1282
    sS'rev'
    p1283
    I14391
    sS'file'
    p1284
    g4
    sa(dp1285
    S'line_number'
    p1286
    I243
    sg10
    S'                    if (r is not None):\n'
    p1287
    sS'rev'
    p1288
    I14391
    sS'file'
    p1289
    g4
    sa(dp1290
    S'line_number'
    p1291
    I244
    sg10
    S'                        roots.add(r)\n'
    p1292
    sS'rev'
    p1293
    I14391
    sS'file'
    p1294
    g4
    sa(dp1295
    S'line_number'
    p1296
    I245
    sg10
    S'                        notifypaths.add(r)\n'
    p1297
    sS'rev'
    p1298
    I14391
    sS'file'
    p1299
    g4
    sa(dp1300
    S'line_number'
    p1301
    I246
    sg10
    S'            except Exception, e:\n'
    p1302
    sS'rev'
    p1303
    I14391
    sS'file'
    p1304
    g4
    sa(dp1305
    S'line_number'
    p1306
    I247
    sg10
    S'                # This exception raises in case of fixutf8 extension enabled\n'
    p1307
    sS'rev'
    p1308
    I14391
    sS'file'
    p1309
    g4
    sa(dp1310
    S'line_number'
    p1311
    I248
    sg10
    S"                # and folder name contains '0x5c'(backslash).\n"
    p1312
    sS'rev'
    p1313
    I14391
    sS'file'
    p1314
    g4
    sa(dp1315
    S'line_number'
    p1316
    I249
    sg10
    S"                logger.msg('Failed listdir %s (%s)' % (path, str(e)))\n"
    p1317
    sS'rev'
    p1318
    I14391
    sS'file'
    p1319
    g4
    sa(dp1320
    S'line_number'
    p1321
    I194
    sg10
    S'        else:\n'
    p1322
    sS'rev'
    p1323
    I2767
    sS'file'
    p1324
    g48
    sa(dp1325
    S'line_number'
    p1326
    I195
    sg10
    S'            roots.add(r);\n'
    p1327
    sS'rev'
    p1328
    I2767
    sS'file'
    p1329
    g48
    sa(dp1330
    S'line_number'
    p1331
    I196
    sg10
    S'            notifypaths.add(path)\n'
    p1332
    sS'rev'
    p1333
    I2767
    sS'file'
    p1334
    g48
    sa(dp1335
    S'line_number'
    p1336
    I197
    sg10
    S'    return roots, notifypaths\n'
    p1337
    sS'rev'
    p1338
    I2767
    sS'file'
    p1339
    g48
    sa(dp1340
    S'line_number'
    p1341
    I198
    sg10
    S'\n'
    sS'rev'
    p1342
    I2767
    sS'file'
    p1343
    g48
    sa(dp1344
    S'line_number'
    p1345
    I199
    sg10
    S'def update_batch(batch):\n'
    p1346
    sS'rev'
    p1347
    I2767
    sS'file'
    p1348
    g48
    sa(dp1349
    S'line_number'
    p1350
    I200
    sg10
    S"    '''updates thgstatus for all paths in batch'''\n"
    p1351
    sS'rev'
    p1352
    I2767
    sS'file'
    p1353
    g48
    sa(dp1354
    S'line_number'
    p1355
    I201
    sg10
    S'    roots, notifypaths = getrepos(batch)\n'
    p1356
    sS'rev'
    p1357
    I2767
    sS'file'
    p1358
    g48
    sa(dp1359
    S'line_number'
    p1360
    I202
    sg10
    S'    if roots:\n'
    p1361
    sS'rev'
    p1362
    I2767
    sS'file'
    p1363
    g48
    sa(dp1364
    S'line_number'
    p1365
    I279
    sg10
    S'        _ui = hglib.loadui()\n'
    p1366
    sS'rev'
    p1367
    I18131
    sS'file'
    p1368
    g4
    sa(dp1369
    S'line_number'
    p1370
    I205
    sg10
    S'        failedroots = set()\n'
    p1371
    sS'rev'
    p1372
    I2771
    sS'file'
    p1373
    g48
    sa(dp1374
    S'line_number'
    p1375
    I242
    sg10
    S'        errorstream = cStringIO.StringIO()\n'
    p1376
    sS'rev'
    p1377
    I3180
    sS'file'
    p1378
    g54
    sa(dp1379
    S'line_number'
    p1380
    I243
    sg10
    S'        _stderr = sys.stderr\n'
    p1381
    sS'rev'
    p1382
    I3180
    sS'file'
    p1383
    g54
    sa(dp1384
    S'line_number'
    p1385
    I244
    sg10
    S'        sys.stderr = errorstream\n'
    p1386
    sS'rev'
    p1387
    I3180
    sS'file'
    p1388
    g54
    sa(dp1389
    S'line_number'
    p1390
    I245
    sg10
    S'        try:\n'
    p1391
    sS'rev'
    p1392
    I3180
    sS'file'
    p1393
    g54
    sa(dp1394
    S'line_number'
    p1395
    I265
    sg10
    S'            # Ensure that all unset dirstate entries can be updated.\n'
    p1396
    sS'rev'
    p1397
    I12291
    sS'file'
    p1398
    g4
    sa(dp1399
    S'line_number'
    p1400
    I266
    sg10
    S'            time.sleep(2)\n'
    p1401
    sS'rev'
    p1402
    I12291
    sS'file'
    p1403
    g4
    sa(dp1404
    S'line_number'
    p1405
    I265
    sg10
    S'            updated_any = False\n'
    p1406
    sS'rev'
    p1407
    I12290
    sS'file'
    p1408
    g4
    sa(dp1409
    S'line_number'
    p1410
    I246
    sg10
    S'            for r in sorted(roots):\n'
    p1411
    sS'rev'
    p1412
    I3180
    sS'file'
    p1413
    g54
    sa(dp1414
    S'line_number'
    p1415
    I247
    sg10
    S'                try:\n'
    p1416
    sS'rev'
    p1417
    I3180
    sS'file'
    p1418
    g54
    sa(dp1419
    S'line_number'
    p1420
    I268
    sg10
    S'                    if shlib.update_thgstatus(_ui, r, wait=False):\n'
    p1421
    sS'rev'
    p1422
    I12290
    sS'file'
    p1423
    g4
    sa(dp1424
    S'line_number'
    p1425
    I269
    sg10
    S'                        updated_any = True\n'
    p1426
    sS'rev'
    p1427
    I12290
    sS'file'
    p1428
    g4
    sa(dp1429
    S'line_number'
    p1430
    I268
    sg10
    S'                    shlib.shell_notify([r], noassoc=True)\n'
    p1431
    sS'rev'
    p1432
    I12243
    sS'file'
    p1433
    g4
    sa(dp1434
    S'line_number'
    p1435
    I250
    sg10
    S"                    logger.msg('Updated ' + r)\n"
    p1436
    sS'rev'
    p1437
    I3180
    sS'file'
    p1438
    g54
    sa(dp1439
    S'line_number'
    p1440
    I251
    sg10
    S'                except (IOError, OSError):\n'
    p1441
    sS'rev'
    p1442
    I3180
    sS'file'
    p1443
    g54
    sa(dp1444
    S'line_number'
    p1445
    I252
    sg10
    S'                    print "IOError or OSError on updating %s (check permissions)" % r\n'
    p1446
    sS'rev'
    p1447
    I3180
    sS'file'
    p1448
    g54
    sa(dp1449
    S'line_number'
    p1450
    I253
    sg10
    S"                    logger.msg('Failed updating %s (check permissions)' % r)\n"
    p1451
    sS'rev'
    p1452
    I3180
    sS'file'
    p1453
    g54
    sa(dp1454
    S'line_number'
    p1455
    I254
    sg10
    S'                    failedroots.add(r)\n'
    p1456
    sS'rev'
    p1457
    I3180
    sS'file'
    p1458
    g54
    sa(dp1459
    S'line_number'
    p1460
    I265
    sg10
    S'                except (error.Abort, error.ConfigError, error.RepoError, \n'
    p1461
    sS'rev'
    p1462
    I5500
    sS'file'
    p1463
    g54
    sa(dp1464
    S'line_number'
    p1465
    I236
    sg10
    S'                        error.RevlogError, ImportError), e:\n'
    p1466
    sS'rev'
    p1467
    I6119
    sS'file'
    p1468
    g54
    sa(dp1469
    S'line_number'
    p1470
    I256
    sg10
    S"                    logger.msg('Failed updating %s (%s)' % (r, str(e)))\n"
    p1471
    sS'rev'
    p1472
    I3180
    sS'file'
    p1473
    g54
    sa(dp1474
    S'line_number'
    p1475
    I257
    sg10
    S'                    failedroots.add(r)\n'
    p1476
    sS'rev'
    p1477
    I3180
    sS'file'
    p1478
    g54
    sa(dp1479
    S'line_number'
    p1480
    I258
    sg10
    S'            notifypaths -= failedroots\n'
    p1481
    sS'rev'
    p1482
    I3180
    sS'file'
    p1483
    g54
    sa(dp1484
    S'line_number'
    p1485
    I259
    sg10
    S'            if notifypaths:\n'
    p1486
    sS'rev'
    p1487
    I3180
    sS'file'
    p1488
    g54
    sa(dp1489
    S'line_number'
    p1490
    I283
    sg10
    S'                shlib.shell_notify(list(notifypaths), noassoc=not updated_any)\n'
    p1491
    sS'rev'
    p1492
    I12290
    sS'file'
    p1493
    g4
    sa(dp1494
    S'line_number'
    p1495
    I262
    sg10
    S"                logger.msg('Shell notified')\n"
    p1496
    sS'rev'
    p1497
    I3180
    sS'file'
    p1498
    g54
    sa(dp1499
    S'line_number'
    p1500
    I263
    sg10
    S'            errmsg = errorstream.getvalue()\n'
    p1501
    sS'rev'
    p1502
    I3180
    sS'file'
    p1503
    g54
    sa(dp1504
    S'line_number'
    p1505
    I264
    sg10
    S'            if errmsg:\n'
    p1506
    sS'rev'
    p1507
    I3180
    sS'file'
    p1508
    g54
    sa(dp1509
    S'line_number'
    p1510
    I265
    sg10
    S"                logger.msg('stderr: %s' % errmsg)\n"
    p1511
    sS'rev'
    p1512
    I3180
    sS'file'
    p1513
    g54
    sa(dp1514
    S'line_number'
    p1515
    I266
    sg10
    S'        finally:\n'
    p1516
    sS'rev'
    p1517
    I3180
    sS'file'
    p1518
    g54
    sa(dp1519
    S'line_number'
    p1520
    I267
    sg10
    S'            sys.stderr = _stderr\n'
    p1521
    sS'rev'
    p1522
    I3180
    sS'file'
    p1523
    g54
    sa(dp1524
    S'line_number'
    p1525
    I212
    sg10
    S'\n'
    sS'rev'
    p1526
    I2767
    sS'file'
    p1527
    g48
    sa(dp1528
    S'line_number'
    p1529
    I213
    sg10
    S'requests = Queue.Queue(0)\n'
    p1530
    sS'rev'
    p1531
    I2767
    sS'file'
    p1532
    g48
    sa(dp1533
    S'line_number'
    p1534
    I214
    sg10
    S'\n'
    sS'rev'
    p1535
    I2767
    sS'file'
    p1536
    g48
    sa(dp1537
    S'line_number'
    p1538
    I252
    sg10
    S'def get_config():\n'
    p1539
    sS'rev'
    p1540
    I2792
    sS'file'
    p1541
    g54
    sa(dp1542
    S'line_number'
    p1543
    I249
    sg10
    S'    show_taskbaricon = True\n'
    p1544
    sS'rev'
    p1545
    I5104
    sS'file'
    p1546
    g54
    sa(dp1547
    S'line_number'
    p1548
    I253
    sg10
    S'    hgighlight_taskbaricon = True\n'
    p1549
    sS'rev'
    p1550
    I2792
    sS'file'
    p1551
    g54
    sa(dp1552
    S'line_number'
    p1553
    I273
    sg10
    S'    version2cmenu = False\n'
    p1554
    sS'rev'
    p1555
    I10580
    sS'file'
    p1556
    g4
    sa(dp1557
    S'line_number'
    p1558
    I254
    sg10
    S'    try:\n'
    p1559
    sS'rev'
    p1560
    I2792
    sS'file'
    p1561
    g54
    sa(dp1562
    S'line_number'
    p1563
    I255
    sg10
    S'        from _winreg import HKEY_CURRENT_USER, OpenKey, QueryValueEx\n'
    p1564
    sS'rev'
    p1565
    I2792
    sS'file'
    p1566
    g54
    sa(dp1567
    S'line_number'
    p1568
    I256
    sg10
    S"        hkey = OpenKey(HKEY_CURRENT_USER, r'Software\\TortoiseHg')\n"
    p1569
    sS'rev'
    p1570
    I2792
    sS'file'
    p1571
    g54
    sa(dp1572
    S'line_number'
    p1573
    I257
    sg10
    S"        t = ('1', 'True')\n"
    p1574
    sS'rev'
    p1575
    I2792
    sS'file'
    p1576
    g54
    sa(dp1577
    S'line_number'
    p1578
    I255
    sg10
    S"        try: show_taskbaricon = QueryValueEx(hkey, 'ShowTaskbarIcon')[0] in t\n"
    p1579
    sS'rev'
    p1580
    I5104
    sS'file'
    p1581
    g54
    sa(dp1582
    S'line_number'
    p1583
    I256
    sg10
    S'        except EnvironmentError: pass\n'
    p1584
    sS'rev'
    p1585
    I5104
    sS'file'
    p1586
    g54
    sa(dp1587
    S'line_number'
    p1588
    I258
    sg10
    S"        try: hgighlight_taskbaricon = QueryValueEx(hkey, 'HighlightTaskbarIcon')[0] in t\n"
    p1589
    sS'rev'
    p1590
    I2792
    sS'file'
    p1591
    g54
    sa(dp1592
    S'line_number'
    p1593
    I259
    sg10
    S'        except EnvironmentError: pass\n'
    p1594
    sS'rev'
    p1595
    I2792
    sS'file'
    p1596
    g54
    sa(dp1597
    S'line_number'
    p1598
    I282
    sg10
    S'\n'
    sS'rev'
    p1599
    I10580
    sS'file'
    p1600
    g4
    sa(dp1601
    S'line_number'
    p1602
    I283
    sg10
    S"        # Upgrade user's context menu, once per major release\n"
    p1603
    sS'rev'
    p1604
    I10580
    sS'file'
    p1605
    g4
    sa(dp1606
    S'line_number'
    p1607
    I284
    sg10
    S"        try: version2cmenu = QueryValueEx(hkey, 'ContextMenuVersion')[0] == '2'\n"
    p1608
    sS'rev'
    p1609
    I10580
    sS'file'
    p1610
    g4
    sa(dp1611
    S'line_number'
    p1612
    I285
    sg10
    S'        except EnvironmentError: pass\n'
    p1613
    sS'rev'
    p1614
    I10580
    sS'file'
    p1615
    g4
    sa(dp1616
    S'line_number'
    p1617
    I286
    sg10
    S'        try:\n'
    p1618
    sS'rev'
    p1619
    I10580
    sS'file'
    p1620
    g4
    sa(dp1621
    S'line_number'
    p1622
    I287
    sg10
    S'            if not version2cmenu:\n'
    p1623
    sS'rev'
    p1624
    I10580
    sS'file'
    p1625
    g4
    sa(dp1626
    S'line_number'
    p1627
    I288
    sg10
    S'                from _winreg import CreateKey, SetValueEx, REG_SZ\n'
    p1628
    sS'rev'
    p1629
    I10580
    sS'file'
    p1630
    g4
    sa(dp1631
    S'line_number'
    p1632
    I289
    sg10
    S"                try: promoted = QueryValueEx(hkey, 'PromotedItems')[0]\n"
    p1633
    sS'rev'
    p1634
    I10580
    sS'file'
    p1635
    g4
    sa(dp1636
    S'line_number'
    p1637
    I290
    sg10
    S"                except EnvironmentError: promoted = ''\n"
    p1638
    sS'rev'
    p1639
    I10580
    sS'file'
    p1640
    g4
    sa(dp1641
    S'line_number'
    p1642
    I291
    sg10
    S"                plist = [i.strip() for i in promoted.split(',')]\n"
    p1643
    sS'rev'
    p1644
    I10580
    sS'file'
    p1645
    g4
    sa(dp1646
    S'line_number'
    p1647
    I292
    sg10
    S"                hkey = CreateKey(HKEY_CURRENT_USER, r'Software\\TortoiseHg')\n"
    p1648
    sS'rev'
    p1649
    I10580
    sS'file'
    p1650
    g4
    sa(dp1651
    S'line_number'
    p1652
    I293
    sg10
    S"                if u'log' in plist:\n"
    p1653
    sS'rev'
    p1654
    I10580
    sS'file'
    p1655
    g4
    sa(dp1656
    S'line_number'
    p1657
    I294
    sg10
    S"                    idx = plist.index(u'log')\n"
    p1658
    sS'rev'
    p1659
    I10580
    sS'file'
    p1660
    g4
    sa(dp1661
    S'line_number'
    p1662
    I295
    sg10
    S"                    plist[idx] = u'workbench'\n"
    p1663
    sS'rev'
    p1664
    I10580
    sS'file'
    p1665
    g4
    sa(dp1666
    S'line_number'
    p1667
    I296
    sg10
    S"                    SetValueEx(hkey, 'PromotedItems', 0, REG_SZ, ','.join(plist))\n"
    p1668
    sS'rev'
    p1669
    I10580
    sS'file'
    p1670
    g4
    sa(dp1671
    S'line_number'
    p1672
    I297
    sg10
    S"                SetValueEx(hkey, 'ContextMenuVersion', 0, REG_SZ, '2')\n"
    p1673
    sS'rev'
    p1674
    I10580
    sS'file'
    p1675
    g4
    sa(dp1676
    S'line_number'
    p1677
    I298
    sg10
    S'        except EnvironmentError:\n'
    p1678
    sS'rev'
    p1679
    I10580
    sS'file'
    p1680
    g4
    sa(dp1681
    S'line_number'
    p1682
    I299
    sg10
    S'            pass\n'
    p1683
    sS'rev'
    p1684
    I10580
    sS'file'
    p1685
    g4
    sa(dp1686
    S'line_number'
    p1687
    I260
    sg10
    S'    except (ImportError, WindowsError):\n'
    p1688
    sS'rev'
    p1689
    I2792
    sS'file'
    p1690
    g54
    sa(dp1691
    S'line_number'
    p1692
    I261
    sg10
    S'        pass\n'
    p1693
    sS'rev'
    p1694
    I2792
    sS'file'
    p1695
    g54
    sa(dp1696
    S'line_number'
    p1697
    I261
    sg10
    S'    return (show_taskbaricon, hgighlight_taskbaricon)\n'
    p1698
    sS'rev'
    p1699
    I5104
    sS'file'
    p1700
    g54
    sa(dp1701
    S'line_number'
    p1702
    I263
    sg10
    S'\n'
    sS'rev'
    p1703
    I2792
    sS'file'
    p1704
    g54
    sa(dp1705
    S'line_number'
    p1706
    I252
    sg10
    S'def update(args, hwnd):\n'
    p1707
    sS'rev'
    p1708
    I2791
    sS'file'
    p1709
    g54
    sa(dp1710
    S'line_number'
    p1711
    I216
    sg10
    S'    batch = []\n'
    p1712
    sS'rev'
    p1713
    I2767
    sS'file'
    p1714
    g48
    sa(dp1715
    S'line_number'
    p1716
    I217
    sg10
    S'    r = args[0]\n'
    p1717
    sS'rev'
    p1718
    I2767
    sS'file'
    p1719
    g48
    sa(dp1720
    S'line_number'
    p1721
    I218
    sg10
    S'    print "got update request %s (first in batch)" % r\n'
    p1722
    sS'rev'
    p1723
    I2767
    sS'file'
    p1724
    g48
    sa(dp1725
    S'line_number'
    p1726
    I219
    sg10
    S'    batch.append(r)\n'
    p1727
    sS'rev'
    p1728
    I2767
    sS'file'
    p1729
    g48
    sa(dp1730
    S'line_number'
    p1731
    I220
    sg10
    S'    print "wait a bit for additional requests..."\n'
    p1732
    sS'rev'
    p1733
    I2767
    sS'file'
    p1734
    g48
    sa(dp1735
    S'line_number'
    p1736
    I269
    sg10
    S'    show, highlight = get_config()\n'
    p1737
    sS'rev'
    p1738
    I5104
    sS'file'
    p1739
    g54
    sa(dp1740
    S'line_number'
    p1741
    I270
    sg10
    S'    if show and highlight:\n'
    p1742
    sS'rev'
    p1743
    I5104
    sS'file'
    p1744
    g54
    sa(dp1745
    S'line_number'
    p1746
    I272
    sg10
    S'        SetIcon(hwnd, "hgB.ico")\n'
    p1747
    sS'rev'
    p1748
    I2792
    sS'file'
    p1749
    g54
    sa(dp1750
    S'line_number'
    p1751
    I221
    sg10
    S'    time.sleep(0.2)\n'
    p1752
    sS'rev'
    p1753
    I2767
    sS'file'
    p1754
    g48
    sa(dp1755
    S'line_number'
    p1756
    I222
    sg10
    S'    deferred_requests = []\n'
    p1757
    sS'rev'
    p1758
    I2767
    sS'file'
    p1759
    g48
    sa(dp1760
    S'line_number'
    p1761
    I223
    sg10
    S'    try:\n'
    p1762
    sS'rev'
    p1763
    I2767
    sS'file'
    p1764
    g48
    sa(dp1765
    S'line_number'
    p1766
    I224
    sg10
    S'        while True:\n'
    p1767
    sS'rev'
    p1768
    I2767
    sS'file'
    p1769
    g48
    sa(dp1770
    S'line_number'
    p1771
    I225
    sg10
    S'            req = requests.get_nowait()\n'
    p1772
    sS'rev'
    p1773
    I2767
    sS'file'
    p1774
    g48
    sa(dp1775
    S'line_number'
    p1776
    I226
    sg10
    S"            s = req.split('|')\n"
    p1777
    sS'rev'
    p1778
    I2767
    sS'file'
    p1779
    g48
    sa(dp1780
    S'line_number'
    p1781
    I227
    sg10
    S'            cmd, args = s[0], s[1:]\n'
    p1782
    sS'rev'
    p1783
    I2767
    sS'file'
    p1784
    g48
    sa(dp1785
    S'line_number'
    p1786
    I228
    sg10
    S"            if cmd == 'update':\n"
    p1787
    sS'rev'
    p1788
    I2767
    sS'file'
    p1789
    g48
    sa(dp1790
    S'line_number'
    p1791
    I229
    sg10
    S'                print "got update request %s" % req\n'
    p1792
    sS'rev'
    p1793
    I2767
    sS'file'
    p1794
    g48
    sa(dp1795
    S'line_number'
    p1796
    I230
    sg10
    S'                batch.append(args[0])\n'
    p1797
    sS'rev'
    p1798
    I2767
    sS'file'
    p1799
    g48
    sa(dp1800
    S'line_number'
    p1801
    I231
    sg10
    S'            else:\n'
    p1802
    sS'rev'
    p1803
    I2767
    sS'file'
    p1804
    g48
    sa(dp1805
    S'line_number'
    p1806
    I232
    sg10
    S'                deferred_requests.append(req)\n'
    p1807
    sS'rev'
    p1808
    I2767
    sS'file'
    p1809
    g48
    sa(dp1810
    S'line_number'
    p1811
    I233
    sg10
    S'    except Queue.Empty:\n'
    p1812
    sS'rev'
    p1813
    I2767
    sS'file'
    p1814
    g48
    sa(dp1815
    S'line_number'
    p1816
    I234
    sg10
    S'        pass\n'
    p1817
    sS'rev'
    p1818
    I2767
    sS'file'
    p1819
    g48
    sa(dp1820
    S'line_number'
    p1821
    I235
    sg10
    S'    for req in deferred_requests:\n'
    p1822
    sS'rev'
    p1823
    I2767
    sS'file'
    p1824
    g48
    sa(dp1825
    S'line_number'
    p1826
    I236
    sg10
    S'        requests.put(req)\n'
    p1827
    sS'rev'
    p1828
    I2767
    sS'file'
    p1829
    g48
    sa(dp1830
    S'line_number'
    p1831
    I237
    sg10
    S'    msg = "processing batch with %i update requests"\n'
    p1832
    sS'rev'
    p1833
    I2767
    sS'file'
    p1834
    g48
    sa(dp1835
    S'line_number'
    p1836
    I238
    sg10
    S'    print msg % len(batch)\n'
    p1837
    sS'rev'
    p1838
    I2767
    sS'file'
    p1839
    g48
    sa(dp1840
    S'line_number'
    p1841
    I239
    sg10
    S'    update_batch(batch)\n'
    p1842
    sS'rev'
    p1843
    I2767
    sS'file'
    p1844
    g48
    sa(dp1845
    S'line_number'
    p1846
    I291
    sg10
    S'    if show and highlight:\n'
    p1847
    sS'rev'
    p1848
    I5104
    sS'file'
    p1849
    g54
    sa(dp1850
    S'line_number'
    p1851
    I293
    sg10
    S'        SetIcon(hwnd, "hg.ico")\n'
    p1852
    sS'rev'
    p1853
    I2792
    sS'file'
    p1854
    g54
    sa(dp1855
    S'line_number'
    p1856
    I240
    sg10
    S'\n'
    sS'rev'
    p1857
    I2767
    sS'file'
    p1858
    g48
    sa(dp1859
    S'line_number'
    p1860
    I241
    sg10
    S'def remove(args):\n'
    p1861
    sS'rev'
    p1862
    I2767
    sS'file'
    p1863
    g48
    sa(dp1864
    S'line_number'
    p1865
    I242
    sg10
    S'    path = args[0]\n'
    p1866
    sS'rev'
    p1867
    I2767
    sS'file'
    p1868
    g48
    sa(dp1869
    S'line_number'
    p1870
    I270
    sg10
    S"    logger.msg('Removing ' + path)\n"
    p1871
    sS'rev'
    p1872
    I2775
    sS'file'
    p1873
    g48
    sa(dp1874
    S'line_number'
    p1875
    I244
    sg10
    S'    roots, notifypaths = getrepos([path])\n'
    p1876
    sS'rev'
    p1877
    I2767
    sS'file'
    p1878
    g48
    sa(dp1879
    S'line_number'
    p1880
    I245
    sg10
    S'    if roots:\n'
    p1881
    sS'rev'
    p1882
    I2767
    sS'file'
    p1883
    g48
    sa(dp1884
    S'line_number'
    p1885
    I246
    sg10
    S'        for r in sorted(roots):\n'
    p1886
    sS'rev'
    p1887
    I2767
    sS'file'
    p1888
    g48
    sa(dp1889
    S'line_number'
    p1890
    I320
    sg10
    S"            tfn = os.path.join(r, '.hg', 'thgstatus')\n"
    p1891
    sS'rev'
    p1892
    I3194
    sS'file'
    p1893
    g54
    sa(dp1894
    S'line_number'
    p1895
    I247
    sg10
    S'            try:\n'
    p1896
    sS'rev'
    p1897
    I2767
    sS'file'
    p1898
    g48
    sa(dp1899
    S'line_number'
    p1900
    I341
    sg10
    S"                f = posixfile(tfn, 'rb')\n"
    p1901
    sS'rev'
    p1902
    I10994
    sS'file'
    p1903
    g4
    sa(dp1904
    S'line_number'
    p1905
    I323
    sg10
    S'                e = f.readline()\n'
    p1906
    sS'rev'
    p1907
    I3194
    sS'file'
    p1908
    g54
    sa(dp1909
    S'line_number'
    p1910
    I324
    sg10
    S'                f.close()\n'
    p1911
    sS'rev'
    p1912
    I3194
    sS'file'
    p1913
    g54
    sa(dp1914
    S'line_number'
    p1915
    I325
    sg10
    S"                if not e.startswith('@@noicons'):\n"
    p1916
    sS'rev'
    p1917
    I3194
    sS'file'
    p1918
    g54
    sa(dp1919
    S'line_number'
    p1920
    I345
    sg10
    S'                    unlink(tfn)\n'
    p1921
    sS'rev'
    p1922
    I10994
    sS'file'
    p1923
    g4
    sa(dp1924
    S'line_number'
    p1925
    I346
    sg10
    S'            except (IOError, OSError), e:\n'
    p1926
    sS'rev'
    p1927
    I10994
    sS'file'
    p1928
    g4
    sa(dp1929
    S'line_number'
    p1930
    I370
    sg10
    S'                if e.errno != errno.ENOENT:\n'
    p1931
    sS'rev'
    p1932
    I11788
    sS'file'
    p1933
    g4
    sa(dp1934
    S'line_number'
    p1935
    I371
    sg10
    S'                    logger.msg("Error while trying to remove %s (%s)" % (tfn, e))\n'
    p1936
    sS'rev'
    p1937
    I11788
    sS'file'
    p1938
    g4
    sa(dp1939
    S'line_number'
    p1940
    I251
    sg10
    S'        if notifypaths:\n'
    p1941
    sS'rev'
    p1942
    I2767
    sS'file'
    p1943
    g48
    sa(dp1944
    S'line_number'
    p1945
    I252
    sg10
    S'            shlib.shell_notify(list(notifypaths))\n'
    p1946
    sS'rev'
    p1947
    I2767
    sS'file'
    p1948
    g48
    sa(dp1949
    S'line_number'
    p1950
    I253
    sg10
    S'\n'
    sS'rev'
    p1951
    I2767
    sS'file'
    p1952
    g48
    sa(dp1953
    S'line_number'
    p1954
    I293
    sg10
    S'def dispatch(req, cmd, args, hwnd):\n'
    p1955
    sS'rev'
    p1956
    I2791
    sS'file'
    p1957
    g54
    sa(dp1958
    S'line_number'
    p1959
    I255
    sg10
    S'    print "dispatch(%s)" % req\n'
    p1960
    sS'rev'
    p1961
    I2767
    sS'file'
    p1962
    g48
    sa(dp1963
    S'line_number'
    p1964
    I256
    sg10
    S"    if cmd == 'update':\n"
    p1965
    sS'rev'
    p1966
    I2767
    sS'file'
    p1967
    g48
    sa(dp1968
    S'line_number'
    p1969
    I296
    sg10
    S'        update(args, hwnd)\n'
    p1970
    sS'rev'
    p1971
    I2791
    sS'file'
    p1972
    g54
    sa(dp1973
    S'line_number'
    p1974
    I258
    sg10
    S"    elif cmd == 'remove':\n"
    p1975
    sS'rev'
    p1976
    I2767
    sS'file'
    p1977
    g48
    sa(dp1978
    S'line_number'
    p1979
    I259
    sg10
    S'        remove(args)\n'
    p1980
    sS'rev'
    p1981
    I2767
    sS'file'
    p1982
    g48
    sa(dp1983
    S'line_number'
    p1984
    I320
    sg10
    S"    elif cmd == 'error':\n"
    p1985
    sS'rev'
    p1986
    I3037
    sS'file'
    p1987
    g54
    sa(dp1988
    S'line_number'
    p1989
    I321
    sg10
    S'        logger.msg("**** Error: %s" % args[0])\n'
    p1990
    sS'rev'
    p1991
    I3037
    sS'file'
    p1992
    g54
    sa(dp1993
    S'line_number'
    p1994
    I260
    sg10
    S'    else:\n'
    p1995
    sS'rev'
    p1996
    I2767
    sS'file'
    p1997
    g48
    sa(dp1998
    S'line_number'
    p1999
    I323
    sg10
    S'        logger.msg("**** Error: unknown request \'%s\'" % req)\n'
    p2000
    sS'rev'
    p2001
    I3037
    sS'file'
    p2002
    g54
    sa(dp2003
    S'line_number'
    p2004
    I262
    sg10
    S'\n'
    sS'rev'
    p2005
    I2767
    sS'file'
    p2006
    g48
    sa(dp2007
    S'line_number'
    p2008
    I263
    sg10
    S'class Updater(threading.Thread):\n'
    p2009
    sS'rev'
    p2010
    I2767
    sS'file'
    p2011
    g48
    sa(dp2012
    S'line_number'
    p2013
    I303
    sg10
    S'    def __init__(self, hwnd):\n'
    p2014
    sS'rev'
    p2015
    I2791
    sS'file'
    p2016
    g54
    sa(dp2017
    S'line_number'
    p2018
    I304
    sg10
    S'        threading.Thread.__init__(self)\n'
    p2019
    sS'rev'
    p2020
    I2791
    sS'file'
    p2021
    g54
    sa(dp2022
    S'line_number'
    p2023
    I305
    sg10
    S'        self.hwnd = hwnd\n'
    p2024
    sS'rev'
    p2025
    I2791
    sS'file'
    p2026
    g54
    sa(dp2027
    S'line_number'
    p2028
    I306
    sg10
    S'\n'
    sS'rev'
    p2029
    I2791
    sS'file'
    p2030
    g54
    sa(dp2031
    S'line_number'
    p2032
    I264
    sg10
    S'    def run(self):\n'
    p2033
    sS'rev'
    p2034
    I2767
    sS'file'
    p2035
    g48
    sa(dp2036
    S'line_number'
    p2037
    I265
    sg10
    S'        while True:\n'
    p2038
    sS'rev'
    p2039
    I2767
    sS'file'
    p2040
    g48
    sa(dp2041
    S'line_number'
    p2042
    I266
    sg10
    S'            req = requests.get()\n'
    p2043
    sS'rev'
    p2044
    I2767
    sS'file'
    p2045
    g48
    sa(dp2046
    S'line_number'
    p2047
    I267
    sg10
    S"            s = req.split('|')\n"
    p2048
    sS'rev'
    p2049
    I2767
    sS'file'
    p2050
    g48
    sa(dp2051
    S'line_number'
    p2052
    I268
    sg10
    S'            cmd, args = s[0], s[1:]\n'
    p2053
    sS'rev'
    p2054
    I2767
    sS'file'
    p2055
    g48
    sa(dp2056
    S'line_number'
    p2057
    I269
    sg10
    S"            if cmd == 'terminate':\n"
    p2058
    sS'rev'
    p2059
    I2767
    sS'file'
    p2060
    g48
    sa(dp2061
    S'line_number'
    p2062
    I298
    sg10
    S"                logger.msg('Updater thread terminating')\n"
    p2063
    sS'rev'
    p2064
    I2775
    sS'file'
    p2065
    g48
    sa(dp2066
    S'line_number'
    p2067
    I271
    sg10
    S'                return\n'
    p2068
    sS'rev'
    p2069
    I2767
    sS'file'
    p2070
    g48
    sa(dp2071
    S'line_number'
    p2072
    I315
    sg10
    S'            dispatch(req, cmd, args, self.hwnd)\n'
    p2073
    sS'rev'
    p2074
    I2791
    sS'file'
    p2075
    g54
    sa(dp2076
    S'line_number'
    p2077
    I273
    sg10
    S'            gc.collect()\n'
    p2078
    sS'rev'
    p2079
    I2767
    sS'file'
    p2080
    g48
    sa(dp2081
    S'line_number'
    p2082
    I274
    sg10
    S'\n'
    sS'rev'
    p2083
    I2767
    sS'file'
    p2084
    g48
    sa(dp2085
    S'line_number'
    p2086
    I318
    sg10
    S'class PipeServer:\n'
    p2087
    sS'rev'
    p2088
    I2791
    sS'file'
    p2089
    g54
    sa(dp2090
    S'line_number'
    p2091
    I319
    sg10
    S'    def __init__(self, hwnd):\n'
    p2092
    sS'rev'
    p2093
    I2791
    sS'file'
    p2094
    g54
    sa(dp2095
    S'line_number'
    p2096
    I372
    sg10
    S'        self.hwnd = hwnd\n'
    p2097
    sS'rev'
    p2098
    I5139
    sS'file'
    p2099
    g54
    sa(dp2100
    S'line_number'
    p2101
    I320
    sg10
    S'        self.updater = Updater(hwnd)\n'
    p2102
    sS'rev'
    p2103
    I2791
    sS'file'
    p2104
    g54
    sa(dp2105
    S'line_number'
    p2106
    I321
    sg10
    S'        self.updater.start()\n'
    p2107
    sS'rev'
    p2108
    I2791
    sS'file'
    p2109
    g54
    sa(dp2110
    S'line_number'
    p2111
    I276
    sg10
    S'\n'
    sS'rev'
    p2112
    I2767
    sS'file'
    p2113
    g48
    sa(dp2114
    S'line_number'
    p2115
    I279
    sg10
    S'        # Create an event which we will use to wait on.\n'
    p2116
    sS'rev'
    p2117
    I2767
    sS'file'
    p2118
    g48
    sa(dp2119
    S'line_number'
    p2120
    I280
    sg10
    S'        # The "service stop" request will set this event.\n'
    p2121
    sS'rev'
    p2122
    I2767
    sS'file'
    p2123
    g48
    sa(dp2124
    S'line_number'
    p2125
    I281
    sg10
    S'        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)\n'
    p2126
    sS'rev'
    p2127
    I2767
    sS'file'
    p2128
    g48
    sa(dp2129
    S'line_number'
    p2130
    I388
    sg10
    S'\n'
    sS'rev'
    p2131
    I10994
    sS'file'
    p2132
    g4
    sa(dp2133
    S'line_number'
    p2134
    I283
    sg10
    S'        # We need to use overlapped IO for this, so we dont block when\n'
    p2135
    sS'rev'
    p2136
    I2767
    sS'file'
    p2137
    g48
    sa(dp2138
    S'line_number'
    p2139
    I284
    sg10
    S'        # waiting for a client to connect.  This is the only effective way\n'
    p2140
    sS'rev'
    p2141
    I2767
    sS'file'
    p2142
    g48
    sa(dp2143
    S'line_number'
    p2144
    I285
    sg10
    S'        # to handle either a client connection, or a service stop request.\n'
    p2145
    sS'rev'
    p2146
    I2767
    sS'file'
    p2147
    g48
    sa(dp2148
    S'line_number'
    p2149
    I286
    sg10
    S'        self.overlapped = pywintypes.OVERLAPPED()\n'
    p2150
    sS'rev'
    p2151
    I2767
    sS'file'
    p2152
    g48
    sa(dp2153
    S'line_number'
    p2154
    I393
    sg10
    S'\n'
    sS'rev'
    p2155
    I10994
    sS'file'
    p2156
    g4
    sa(dp2157
    S'line_number'
    p2158
    I288
    sg10
    S'        # And create an event to be used in the OVERLAPPED object.\n'
    p2159
    sS'rev'
    p2160
    I2767
    sS'file'
    p2161
    g48
    sa(dp2162
    S'line_number'
    p2163
    I289
    sg10
    S'        self.overlapped.hEvent = win32event.CreateEvent(None,0,0,None)\n'
    p2164
    sS'rev'
    p2165
    I2767
    sS'file'
    p2166
    g48
    sa(dp2167
    S'line_number'
    p2168
    I290
    sg10
    S'\n'
    sS'rev'
    p2169
    I2767
    sS'file'
    p2170
    g48
    sa(dp2171
    S'line_number'
    p2172
    I291
    sg10
    S'    def SvcStop(self):\n'
    p2173
    sS'rev'
    p2174
    I2767
    sS'file'
    p2175
    g48
    sa(dp2176
    S'line_number'
    p2177
    I398
    sg10
    S'        logger.msg("PipeServer.SvcStop")\n'
    p2178
    sS'rev'
    p2179
    I10994
    sS'file'
    p2180
    g4
    sa(dp2181
    S'line_number'
    p2182
    I293
    sg10
    S'        win32event.SetEvent(self.hWaitStop)\n'
    p2183
    sS'rev'
    p2184
    I2767
    sS'file'
    p2185
    g48
    sa(dp2186
    S'line_number'
    p2187
    I400
    sg10
    S"        requests.put('terminate|')\n"
    p2188
    sS'rev'
    p2189
    I10994
    sS'file'
    p2190
    g4
    sa(dp2191
    S'line_number'
    p2192
    I295
    sg10
    S'\n'
    sS'rev'
    p2193
    I2767
    sS'file'
    p2194
    g48
    sa(dp2195
    S'line_number'
    p2196
    I296
    sg10
    S'    def SvcDoRun(self):\n'
    p2197
    sS'rev'
    p2198
    I2767
    sS'file'
    p2199
    g48
    sa(dp2200
    S'line_number'
    p2201
    I403
    sg10
    S'        logger.msg("PipeServer.SvcDoRun")\n'
    p2202
    sS'rev'
    p2203
    I10994
    sS'file'
    p2204
    g4
    sa(dp2205
    S'line_number'
    p2206
    I297
    sg10
    S'        # We create our named pipe.\n'
    p2207
    sS'rev'
    p2208
    I2767
    sS'file'
    p2209
    g48
    sa(dp2210
    S'line_number'
    p2211
    I298
    sg10
    S'        pipeName = PIPENAME\n'
    p2212
    sS'rev'
    p2213
    I2767
    sS'file'
    p2214
    g48
    sa(dp2215
    S'line_number'
    p2216
    I299
    sg10
    S'        openMode = win32pipe.PIPE_ACCESS_DUPLEX | win32file.FILE_FLAG_OVERLAPPED\n'
    p2217
    sS'rev'
    p2218
    I2767
    sS'file'
    p2219
    g48
    sa(dp2220
    S'line_number'
    p2221
    I300
    sg10
    S'        pipeMode = win32pipe.PIPE_TYPE_MESSAGE\n'
    p2222
    sS'rev'
    p2223
    I2767
    sS'file'
    p2224
    g48
    sa(dp2225
    S'line_number'
    p2226
    I301
    sg10
    S'\n'
    sS'rev'
    p2227
    I2767
    sS'file'
    p2228
    g48
    sa(dp2229
    S'line_number'
    p2230
    I302
    sg10
    S'        # When running as a service, we must use special security for the pipe\n'
    p2231
    sS'rev'
    p2232
    I2767
    sS'file'
    p2233
    g48
    sa(dp2234
    S'line_number'
    p2235
    I303
    sg10
    S'        sa = pywintypes.SECURITY_ATTRIBUTES()\n'
    p2236
    sS'rev'
    p2237
    I2767
    sS'file'
    p2238
    g48
    sa(dp2239
    S'line_number'
    p2240
    I304
    sg10
    S'        # Say we do have a DACL, and it is empty\n'
    p2241
    sS'rev'
    p2242
    I2767
    sS'file'
    p2243
    g48
    sa(dp2244
    S'line_number'
    p2245
    I305
    sg10
    S'        # (ie, allow full access!)\n'
    p2246
    sS'rev'
    p2247
    I2767
    sS'file'
    p2248
    g48
    sa(dp2249
    S'line_number'
    p2250
    I306
    sg10
    S'        sa.SetSecurityDescriptorDacl ( 1, None, 0 )\n'
    p2251
    sS'rev'
    p2252
    I2767
    sS'file'
    p2253
    g48
    sa(dp2254
    S'line_number'
    p2255
    I307
    sg10
    S'\n'
    sS'rev'
    p2256
    I2767
    sS'file'
    p2257
    g48
    sa(dp2258
    S'line_number'
    p2259
    I308
    sg10
    S'        pipeHandle = win32pipe.CreateNamedPipe(pipeName,\n'
    p2260
    sS'rev'
    p2261
    I2767
    sS'file'
    p2262
    g48
    sa(dp2263
    S'line_number'
    p2264
    I309
    sg10
    S'            openMode,\n'
    p2265
    sS'rev'
    p2266
    I2767
    sS'file'
    p2267
    g48
    sa(dp2268
    S'line_number'
    p2269
    I310
    sg10
    S'            pipeMode,\n'
    p2270
    sS'rev'
    p2271
    I2767
    sS'file'
    p2272
    g48
    sa(dp2273
    S'line_number'
    p2274
    I311
    sg10
    S'            win32pipe.PIPE_UNLIMITED_INSTANCES,\n'
    p2275
    sS'rev'
    p2276
    I2767
    sS'file'
    p2277
    g48
    sa(dp2278
    S'line_number'
    p2279
    I312
    sg10
    S'            0, 0, 6000, # default buffers, and 6 second timeout.\n'
    p2280
    sS'rev'
    p2281
    I2767
    sS'file'
    p2282
    g48
    sa(dp2283
    S'line_number'
    p2284
    I313
    sg10
    S'            sa)\n'
    p2285
    sS'rev'
    p2286
    I2767
    sS'file'
    p2287
    g48
    sa(dp2288
    S'line_number'
    p2289
    I314
    sg10
    S'\n'
    sS'rev'
    p2290
    I2767
    sS'file'
    p2291
    g48
    sa(dp2292
    S'line_number'
    p2293
    I315
    sg10
    S'        # Loop accepting and processing connections\n'
    p2294
    sS'rev'
    p2295
    I2767
    sS'file'
    p2296
    g48
    sa(dp2297
    S'line_number'
    p2298
    I316
    sg10
    S'        while True:\n'
    p2299
    sS'rev'
    p2300
    I2767
    sS'file'
    p2301
    g48
    sa(dp2302
    S'line_number'
    p2303
    I317
    sg10
    S'            try:\n'
    p2304
    sS'rev'
    p2305
    I2767
    sS'file'
    p2306
    g48
    sa(dp2307
    S'line_number'
    p2308
    I318
    sg10
    S'                hr = win32pipe.ConnectNamedPipe(pipeHandle, self.overlapped)\n'
    p2309
    sS'rev'
    p2310
    I2767
    sS'file'
    p2311
    g48
    sa(dp2312
    S'line_number'
    p2313
    I319
    sg10
    S'            except pywintypes.error, inst:\n'
    p2314
    sS'rev'
    p2315
    I2767
    sS'file'
    p2316
    g48
    sa(dp2317
    S'line_number'
    p2318
    I427
    sg10
    S'                logger.msg("Error connecting pipe: %s" % inst)\n'
    p2319
    sS'rev'
    p2320
    I10994
    sS'file'
    p2321
    g4
    sa(dp2322
    S'line_number'
    p2323
    I321
    sg10
    S'                pipeHandle.Close()\n'
    p2324
    sS'rev'
    p2325
    I2767
    sS'file'
    p2326
    g48
    sa(dp2327
    S'line_number'
    p2328
    I322
    sg10
    S'                break\n'
    p2329
    sS'rev'
    p2330
    I2767
    sS'file'
    p2331
    g48
    sa(dp2332
    S'line_number'
    p2333
    I323
    sg10
    S'\n'
    sS'rev'
    p2334
    I2767
    sS'file'
    p2335
    g48
    sa(dp2336
    S'line_number'
    p2337
    I324
    sg10
    S'            if hr==winerror.ERROR_PIPE_CONNECTED:\n'
    p2338
    sS'rev'
    p2339
    I2767
    sS'file'
    p2340
    g48
    sa(dp2341
    S'line_number'
    p2342
    I325
    sg10
    S'                # Client is fast, and already connected - signal event\n'
    p2343
    sS'rev'
    p2344
    I2767
    sS'file'
    p2345
    g48
    sa(dp2346
    S'line_number'
    p2347
    I326
    sg10
    S'                win32event.SetEvent(self.overlapped.hEvent)\n'
    p2348
    sS'rev'
    p2349
    I2767
    sS'file'
    p2350
    g48
    sa(dp2351
    S'line_number'
    p2352
    I327
    sg10
    S'            # Wait for either a connection, or a service stop request.\n'
    p2353
    sS'rev'
    p2354
    I2767
    sS'file'
    p2355
    g48
    sa(dp2356
    S'line_number'
    p2357
    I328
    sg10
    S'            timeout = win32event.INFINITE\n'
    p2358
    sS'rev'
    p2359
    I2767
    sS'file'
    p2360
    g48
    sa(dp2361
    S'line_number'
    p2362
    I329
    sg10
    S'            waitHandles = self.hWaitStop, self.overlapped.hEvent\n'
    p2363
    sS'rev'
    p2364
    I2767
    sS'file'
    p2365
    g48
    sa(dp2366
    S'line_number'
    p2367
    I330
    sg10
    S'            rc = win32event.WaitForMultipleObjects(waitHandles, 0, timeout)\n'
    p2368
    sS'rev'
    p2369
    I2767
    sS'file'
    p2370
    g48
    sa(dp2371
    S'line_number'
    p2372
    I331
    sg10
    S'            if rc==win32event.WAIT_OBJECT_0:\n'
    p2373
    sS'rev'
    p2374
    I2767
    sS'file'
    p2375
    g48
    sa(dp2376
    S'line_number'
    p2377
    I332
    sg10
    S'                # Stop event\n'
    p2378
    sS'rev'
    p2379
    I2767
    sS'file'
    p2380
    g48
    sa(dp2381
    S'line_number'
    p2382
    I333
    sg10
    S'                return\n'
    p2383
    sS'rev'
    p2384
    I2767
    sS'file'
    p2385
    g48
    sa(dp2386
    S'line_number'
    p2387
    I334
    sg10
    S'            else:\n'
    p2388
    sS'rev'
    p2389
    I2767
    sS'file'
    p2390
    g48
    sa(dp2391
    S'line_number'
    p2392
    I335
    sg10
    S'                # read pipe and process request\n'
    p2393
    sS'rev'
    p2394
    I2767
    sS'file'
    p2395
    g48
    sa(dp2396
    S'line_number'
    p2397
    I336
    sg10
    S'                try:\n'
    p2398
    sS'rev'
    p2399
    I2767
    sS'file'
    p2400
    g48
    sa(dp2401
    S'line_number'
    p2402
    I337
    sg10
    S'                    hr, data = win32file.ReadFile(pipeHandle, PIPEBUFSIZE)\n'
    p2403
    sS'rev'
    p2404
    I2767
    sS'file'
    p2405
    g48
    sa(dp2406
    S'line_number'
    p2407
    I338
    sg10
    S'                    if not data:\n'
    p2408
    sS'rev'
    p2409
    I2767
    sS'file'
    p2410
    g48
    sa(dp2411
    S'line_number'
    p2412
    I339
    sg10
    S'                        raise SystemExit  # signal by dispatch terminate\n'
    p2413
    sS'rev'
    p2414
    I2767
    sS'file'
    p2415
    g48
    sa(dp2416
    S'line_number'
    p2417
    I340
    sg10
    S'                    win32pipe.DisconnectNamedPipe(pipeHandle)\n'
    p2418
    sS'rev'
    p2419
    I2767
    sS'file'
    p2420
    g48
    sa(dp2421
    S'line_number'
    p2422
    I341
    sg10
    S'                except win32file.error:\n'
    p2423
    sS'rev'
    p2424
    I2767
    sS'file'
    p2425
    g48
    sa(dp2426
    S'line_number'
    p2427
    I342
    sg10
    S'                    # Client disconnected without sending data\n'
    p2428
    sS'rev'
    p2429
    I2767
    sS'file'
    p2430
    g48
    sa(dp2431
    S'line_number'
    p2432
    I343
    sg10
    S'                    # or before reading the response.\n'
    p2433
    sS'rev'
    p2434
    I2767
    sS'file'
    p2435
    g48
    sa(dp2436
    S'line_number'
    p2437
    I344
    sg10
    S'                    # Thats OK - just get the next connection\n'
    p2438
    sS'rev'
    p2439
    I2767
    sS'file'
    p2440
    g48
    sa(dp2441
    S'line_number'
    p2442
    I345
    sg10
    S'                    continue\n'
    p2443
    sS'rev'
    p2444
    I2767
    sS'file'
    p2445
    g48
    sa(dp2446
    S'line_number'
    p2447
    I346
    sg10
    S'\n'
    sS'rev'
    p2448
    I2767
    sS'file'
    p2449
    g48
    sa(dp2450
    S'line_number'
    p2451
    I347
    sg10
    S'                try:\n'
    p2452
    sS'rev'
    p2453
    I2767
    sS'file'
    p2454
    g48
    sa(dp2455
    S'line_number'
    p2456
    I348
    sg10
    S'                    requests.put(data)\n'
    p2457
    sS'rev'
    p2458
    I2767
    sS'file'
    p2459
    g48
    sa(dp2460
    S'line_number'
    p2461
    I446
    sg10
    S"                    if data == 'terminate|':\n"
    p2462
    sS'rev'
    p2463
    I5139
    sS'file'
    p2464
    g54
    sa(dp2465
    S'line_number'
    p2466
    I457
    sg10
    S"                        logger.msg('PipeServer received terminate from pipe')\n"
    p2467
    sS'rev'
    p2468
    I10994
    sS'file'
    p2469
    g4
    sa(dp2470
    S'line_number'
    p2471
    I449
    sg10
    S'                        PostMessage(self.hwnd, win32con.WM_COMMAND, EXIT_CMD, 0)\n'
    p2472
    sS'rev'
    p2473
    I5139
    sS'file'
    p2474
    g54
    sa(dp2475
    S'line_number'
    p2476
    I450
    sg10
    S'                        break\n'
    p2477
    sS'rev'
    p2478
    I5139
    sS'file'
    p2479
    g54
    sa(dp2480
    S'line_number'
    p2481
    I349
    sg10
    S'                except SystemExit:\n'
    p2482
    sS'rev'
    p2483
    I2767
    sS'file'
    p2484
    g48
    sa(dp2485
    S'line_number'
    p2486
    I350
    sg10
    S'                    raise SystemExit # interrupted by thread2.terminate()\n'
    p2487
    sS'rev'
    p2488
    I2767
    sS'file'
    p2489
    g48
    sa(dp2490
    S'line_number'
    p2491
    I351
    sg10
    S'                except:\n'
    p2492
    sS'rev'
    p2493
    I2767
    sS'file'
    p2494
    g48
    sa(dp2495
    S'line_number'
    p2496
    I463
    sg10
    S'                    logger.msg("WARNING: something went wrong in requests.put")\n'
    p2497
    sS'rev'
    p2498
    I10994
    sS'file'
    p2499
    g4
    sa(dp2500
    S'line_number'
    p2501
    I464
    sg10
    S'                    logger.msg(traceback.format_exc())\n'
    p2502
    sS'rev'
    p2503
    I10994
    sS'file'
    p2504
    g4
    sa(dp2505
    S'line_number'
    p2506
    I355
    sg10
    S'                    status = "ERROR" \n'
    p2507
    sS'rev'
    p2508
    I2767
    sS'file'
    p2509
    g48
    sa(dp2510
    S'line_number'
    p2511
    I356
    sg10
    S'        # Clean up when we exit\n'
    p2512
    sS'rev'
    p2513
    I2767
    sS'file'
    p2514
    g48
    sa(dp2515
    S'line_number'
    p2516
    I357
    sg10
    S'        self.SvcStop()\n'
    p2517
    sS'rev'
    p2518
    I2767
    sS'file'
    p2519
    g48
    sa(dp2520
    S'line_number'
    p2521
    I358
    sg10
    S'\n'
    sS'rev'
    p2522
    I2767
    sS'file'
    p2523
    g48
    sa(dp2524
    S'line_number'
    p2525
    I425
    sg10
    S"RUNMUTEXNAME = 'thgtaskbar-' + GetUserName()\n"
    p2526
    sS'rev'
    p2527
    I2863
    sS'file'
    p2528
    g54
    sa(dp2529
    S'line_number'
    p2530
    I425
    sg10
    S'\n'
    sS'rev'
    p2531
    I2848
    sS'file'
    p2532
    g54
    sa(dp2533
    S'line_number'
    p2534
    I471
    sg10
    S'def ehook(etype, values, tracebackobj):\n'
    p2535
    sS'rev'
    p2536
    I10994
    sS'file'
    p2537
    g4
    sa(dp2538
    S'line_number'
    p2539
    I472
    sg10
    S'    elist = traceback.format_exception(etype, values, tracebackobj)\n'
    p2540
    sS'rev'
    p2541
    I10994
    sS'file'
    p2542
    g4
    sa(dp2543
    S'line_number'
    p2544
    I473
    sg10
    S"    logger.msg(''.join(elist))\n"
    p2545
    sS'rev'
    p2546
    I10994
    sS'file'
    p2547
    g4
    sa(dp2548
    S'line_number'
    p2549
    I474
    sg10
    S'\n'
    sS'rev'
    p2550
    I10994
    sS'file'
    p2551
    g4
    sa(dp2552
    S'line_number'
    p2553
    I134
    sg10
    S'def main():\n'
    p2554
    sS'rev'
    p2555
    I2626
    sS'file'
    p2556
    g48
    sa(dp2557
    S'line_number'
    p2558
    I424
    sg10
    S'    args = sys.argv[1:]\n'
    p2559
    sS'rev'
    p2560
    I5096
    sS'file'
    p2561
    g54
    sa(dp2562
    S'line_number'
    p2563
    I427
    sg10
    S'    sa = win32security.SECURITY_ATTRIBUTES() \n'
    p2564
    sS'rev'
    p2565
    I2848
    sS'file'
    p2566
    g54
    sa(dp2567
    S'line_number'
    p2568
    I429
    sg10
    S'    sa.SetSecurityDescriptorDacl(1, None, 0) # allow full access\n'
    p2569
    sS'rev'
    p2570
    I2863
    sS'file'
    p2571
    g54
    sa(dp2572
    S'line_number'
    p2573
    I430
    sg10
    S'    runmutex = win32event.CreateMutex(sa, 1, RUNMUTEXNAME)\n'
    p2574
    sS'rev'
    p2575
    I2863
    sS'file'
    p2576
    g54
    sa(dp2577
    S'line_number'
    p2578
    I430
    sg10
    S'    if GetLastError() == winerror.ERROR_ALREADY_EXISTS:\n'
    p2579
    sS'rev'
    p2580
    I2848
    sS'file'
    p2581
    g54
    sa(dp2582
    S'line_number'
    p2583
    I431
    sg10
    S'        print "another instance is already running"\n'
    p2584
    sS'rev'
    p2585
    I2848
    sS'file'
    p2586
    g54
    sa(dp2587
    S'line_number'
    p2588
    I432
    sg10
    S'        return\n'
    p2589
    sS'rev'
    p2590
    I2848
    sS'file'
    p2591
    g54
    sa(dp2592
    S'line_number'
    p2593
    I439
    sg10
    S'\n'
    sS'rev'
    p2594
    I5104
    sS'file'
    p2595
    g54
    sa(dp2596
    S'line_number'
    p2597
    I440
    sg10
    S'    logfilename = None\n'
    p2598
    sS'rev'
    p2599
    I5104
    sS'file'
    p2600
    g54
    sa(dp2601
    S'line_number'
    p2602
    I441
    sg10
    S'    for arg in args:\n'
    p2603
    sS'rev'
    p2604
    I5104
    sS'file'
    p2605
    g54
    sa(dp2606
    S'line_number'
    p2607
    I442
    sg10
    S"        if arg[0] == '-':\n"
    p2608
    sS'rev'
    p2609
    I5104
    sS'file'
    p2610
    g54
    sa(dp2611
    S'line_number'
    p2612
    I443
    sg10
    S'            pass\n'
    p2613
    sS'rev'
    p2614
    I5104
    sS'file'
    p2615
    g54
    sa(dp2616
    S'line_number'
    p2617
    I444
    sg10
    S'        else:\n'
    p2618
    sS'rev'
    p2619
    I5104
    sS'file'
    p2620
    g54
    sa(dp2621
    S'line_number'
    p2622
    I445
    sg10
    S'            logfilename = arg\n'
    p2623
    sS'rev'
    p2624
    I5104
    sS'file'
    p2625
    g54
    sa(dp2626
    S'line_number'
    p2627
    I446
    sg10
    S'    if logfilename:\n'
    p2628
    sS'rev'
    p2629
    I5104
    sS'file'
    p2630
    g54
    sa(dp2631
    S'line_number'
    p2632
    I447
    sg10
    S'        logger.setfile(logfilename)\n'
    p2633
    sS'rev'
    p2634
    I5104
    sS'file'
    p2635
    g54
    sa(dp2636
    S'line_number'
    p2637
    I492
    sg10
    S'    else:\n'
    p2638
    sS'rev'
    p2639
    I10994
    sS'file'
    p2640
    g4
    sa(dp2641
    S'line_number'
    p2642
    I493
    sg10
    S'        try:\n'
    p2643
    sS'rev'
    p2644
    I10994
    sS'file'
    p2645
    g4
    sa(dp2646
    S'line_number'
    p2647
    I494
    sg10
    S'            from win32com.shell import shell, shellcon\n'
    p2648
    sS'rev'
    p2649
    I10994
    sS'file'
    p2650
    g4
    sa(dp2651
    S'line_number'
    p2652
    I495
    sg10
    S'            appdir = shell.SHGetSpecialFolderPath(0, shellcon.CSIDL_APPDATA)\n'
    p2653
    sS'rev'
    p2654
    I10994
    sS'file'
    p2655
    g4
    sa(dp2656
    S'line_number'
    p2657
    I496
    sg10
    S'        except pywintypes.com_error:\n'
    p2658
    sS'rev'
    p2659
    I10994
    sS'file'
    p2660
    g4
    sa(dp2661
    S'line_number'
    p2662
    I497
    sg10
    S"            appdir = os.environ['APPDATA']\n"
    p2663
    sS'rev'
    p2664
    I10994
    sS'file'
    p2665
    g4
    sa(dp2666
    S'line_number'
    p2667
    I498
    sg10
    S"        logfilename = os.path.join(appdir, 'TortoiseHg', 'OverlayServerLog.txt')\n"
    p2668
    sS'rev'
    p2669
    I10994
    sS'file'
    p2670
    g4
    sa(dp2671
    S'line_number'
    p2672
    I499
    sg10
    S'        try:\n'
    p2673
    sS'rev'
    p2674
    I10994
    sS'file'
    p2675
    g4
    sa(dp2676
    S'line_number'
    p2677
    I500
    sg10
    S'            os.makedirs(os.path.dirname(logfilename))\n'
    p2678
    sS'rev'
    p2679
    I10994
    sS'file'
    p2680
    g4
    sa(dp2681
    S'line_number'
    p2682
    I501
    sg10
    S'        except EnvironmentError:\n'
    p2683
    sS'rev'
    p2684
    I10994
    sS'file'
    p2685
    g4
    sa(dp2686
    S'line_number'
    p2687
    I502
    sg10
    S'            pass\n'
    p2688
    sS'rev'
    p2689
    I10994
    sS'file'
    p2690
    g4
    sa(dp2691
    S'line_number'
    p2692
    I503
    sg10
    S'        logger.setfile(logfilename)\n'
    p2693
    sS'rev'
    p2694
    I10994
    sS'file'
    p2695
    g4
    sa(dp2696
    S'line_number'
    p2697
    I504
    sg10
    S'\n'
    sS'rev'
    p2698
    I10994
    sS'file'
    p2699
    g4
    sa(dp2700
    S'line_number'
    p2701
    I505
    sg10
    S'    sys.excepthook = ehook\n'
    p2702
    sS'rev'
    p2703
    I10994
    sS'file'
    p2704
    g4
    sa(dp2705
    S'line_number'
    p2706
    I448
    sg10
    S'\n'
    sS'rev'
    p2707
    I5104
    sS'file'
    p2708
    g54
    sa(dp2709
    S'line_number'
    p2710
    I135
    sg10
    S'    w=MainWindow()\n'
    p2711
    sS'rev'
    p2712
    I2626
    sS'file'
    p2713
    g48
    sa(dp2714
    S'line_number'
    p2715
    I136
    sg10
    S'    PumpMessages()\n'
    p2716
    sS'rev'
    p2717
    I2626
    sS'file'
    p2718
    g48
    sa(dp2719
    S'line_number'
    p2720
    I137
    sg10
    S'\n'
    sS'rev'
    p2721
    I2626
    sS'file'
    p2722
    g48
    sa(dp2723
    S'line_number'
    p2724
    I138
    sg10
    S"if __name__=='__main__':\n"
    p2725
    sS'rev'
    p2726
    I2626
    sS'file'
    p2727
    g48
    sa(dp2728
    S'line_number'
    p2729
    I139
    sg10
    S'    main()\n'
    p2730
    sS'rev'
    p2731
    I2626
    sS'file'
    p2732
    g48
    sasa.[command completed successfully Sat Sep 23 01:03:09 2017]
    tortoisehg% 
    
  8. Jivan Goyal

    Hi,

    it seems something gone wrong with my repository tracking, can you help me troubleshoot. Following are some errors that every time prompted:

        #!python
        ** Mercurial version (4.3.1).  TortoiseHg version (4.3.1)
        ** Command: --nofork annotate --listfile C:\Users\........\AppData\Local\Temp\THGF1CE.tmp
        ** CWD: C:\......\-Src
        ** Encoding: cp1252
        ** Extensions loaded: 
        ** Python version: 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)]
        ** Windows version: sys.getwindowsversion(major=6, minor=2, build=9200, platform=2, service_pack='')
        ** Processor architecture: x64
        ** Qt-4.8.7 PyQt-4.11.4 QScintilla-2.9
        Traceback (most recent call last):
          File "tortoisehg\hgqt\repomodel.pyo", line 351, in fetchMore
          File "tortoisehg\hgqt\graph.pyo", line 950, in build_nodes
          File "tortoisehg\hgqt\graph.pyo", line 629, in _iter_graphnodes
        ValueError: 10416 is not in list
    
        #!python
        ** Mercurial version (4.3.1).  TortoiseHg version (4.3.1)
        ** Command: --nofork annotate --listfile C:\Users\.....\AppData\Local\Temp\THG931E.tmp
        ** CWD: C:\.....\....-Src
        ** Encoding: cp1252
        ** Extensions loaded: 
        ** Python version: 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)]
        ** Windows version: sys.getwindowsversion(major=6, minor=2, build=9200, platform=2, service_pack='')
        ** Processor architecture: x64
        ** Qt-4.8.7 PyQt-4.11.4 QScintilla-2.9
        Traceback (most recent call last):
          File "tortoisehg\hgqt\repomodel.pyo", line 351, in fetchMore
          File "tortoisehg\hgqt\graph.pyo", line 950, in build_nodes
          File "tortoisehg\hgqt\graph.pyo", line 591, in _iter_graphnodes
          File "tortoisehg\hgqt\graph.pyo", line 674, in walk
          File "mercurial\context.pyo", line 904, in parents
          File "mercurial\util.pyo", line 823, in __get__
          File "mercurial\context.pyo", line 691, in _filenode
          File "mercurial\context.pyo", line 279, in filenode
          File "mercurial\context.pyo", line 274, in _fileinfo
        ManifestLookupError: src/........../...Service.cs@b0........d4: not found in manifest
    
  9. Jivan Goyal

    verified repository and observed:

    (#count) warnings encountered!

    (#count) integrity errors encountered!

    but, when tried recover then it shown:

    % hg recover --verbose no interrupted transaction available

  10. Jivan Goyal

    Yuya Nishihara,

    Thanks for your time for helping to troubleshoot the issue.

    I created new clone of repository and pulled fresh code again that works fine now.

    it seems hg keeps information regarding all revisions and due to some reason few rev information missing in corrupted repository. So, by taking fresh clone pulled all kind of information that required so that fixed the issue.

  11. Log in to comment