Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9.2, 1.9.3, and 2.0

Merge with stable

Changeset f8db13c42758

Parents c82f1b25de67

Parents 117befc5cb56

by Steve Borho

Changes to 265 files · Browse files at f8db13c42758 Showing diff from parent c82f1b25de67 117befc5cb56 Diff from another changeset...

Change 1 of 1 Show Entire File .hgignore Stacked
 
38
39
40
 
 
 
38
39
40
41
42
@@ -38,3 +38,5 @@
 *~  tortoisehg/util/__version__.py  *.wixobj +tortoisehg/hgqt/workbench_rc.py +tortoisehg/hgqt/*_ui.py
Change 1 of 1 Show Entire File .hgtags Stacked
 
43
44
45
 
46
 
 
43
44
45
46
47
48
@@ -43,4 +43,6 @@
 d7070fe8ed54ffec748ba98918f59f40c2ae4976 1.1.6  b740366bf49f2ad67ff923fa30e875acfba05892 1.1.6.1  d5840485b34265572ffb4d5bb1226b1577163115 1.1.7 +653ff9fb4ccf16833bab58fbc765ff8829dc1265 1.9  edc8ec8b18a98abada33fb312e2c5cfb8e336eb4 1.1.8 +6f97499d3d53aaf4cc1ec3c626191b13eb3aed58 1.9.1
Change 1 of 1 Show Entire File CONTRIBUTING.txt Stacked
 
14
15
16
17
 
18
19
20
 
14
15
16
 
17
18
19
20
@@ -14,7 +14,7 @@
 application is still reasonably usable with the base library versions listed  below.   -PyGtk: 2.10 +PyQt: 4.6    === Python version ===  
Change 1 of 1 Show Entire File CREDITS.txt Stacked
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
@@ -0,0 +1,7 @@
+The history viewer of TortoiseHg is based on hgview +<http://www.logilab.org/project/hgview>, a tool developped by David +Douard <david.douard@logilab.fr> and others, with the financial +support of Logilab <http://www.logilab.fr> + +TortoiseHg Windows installers include TortoiseOverlays handlers, as +provided by the TortoiseSVN project <http://tortoisesvn.net/>
Change 1 of 1 Show Entire File MANIFEST.in Stacked
 
2
3
4
 
5
6
7
 
2
3
4
5
6
7
8
@@ -2,6 +2,7 @@
 include contrib/_hgtk  include contrib/nautilus-thg.py  include contrib/mergetools.rc +include contrib/tortoisehg.desktop  include COPYING.txt  recursive-include i18n *.po  recursive-include doc *
Change 1 of 1 Show Entire File ReleaseProcedure.txt Stacked
 
1
2
 
3
4
5
 
1
2
3
4
5
6
@@ -1,5 +1,6 @@
 Steps for making a release:   +* hg status -ar --rev 1.6:tip # find new files that WiX needs to know about  * Pull latest translations from Launchpad  * set revision number in tortoisehg/hgtk/gdialog.py (major release only)  * set revision number in doc/source/conf.py
 
2
3
4
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
7
8
9
10
11
 
 
12
13
14
15
16
17
18
19
20
21
22
 
 
 
 
 
 
 
 
 
 
 
 
 
23
24
25
 
28
29
30
31
32
33
34
35
36
37
38
 
155
156
157
158
 
159
160
161
 
203
204
205
206
207
208
209
210
 
 
 
 
 
 
 
 
 
 
211
212
213
 
350
351
352
353
 
354
355
356
357
358
 
359
360
361
 
425
426
427
428
429
430
 
431
432
433
434
435
436
 
 
 
 
437
438
439
 
451
452
453
 
 
 
 
 
 
 
 
 
 
 
 
 
 
454
455
456
 
2
3
4
 
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
21
22
23
24
25
26
27
 
 
 
 
 
 
 
 
 
 
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
46
47
48
 
 
 
 
 
49
50
51
 
168
169
170
 
171
172
173
174
 
216
217
218
 
 
 
 
 
219
220
221
222
223
224
225
226
227
228
229
230
231
 
368
369
370
 
371
372
373
374
375
 
376
377
378
379
 
443
444
445
 
446
 
447
448
449
450
451
452
453
454
455
456
457
458
459
460
 
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
@@ -2,24 +2,42 @@
 # messages printed. Takes an optional logfile as first command  # line parameter   -import gc +import sys + +if hasattr(sys, "frozen"): + class BlackHole(object): + closed = True + softspace = 0 + def write(self, data): + pass + def close(self): + pass + def flush(self): + pass + sys.stdout = BlackHole() + sys.stderr = BlackHole() +  import os -import sys  import time  import threading  import cStringIO  import Queue +import traceback +import gc   -from win32api import * -from win32gui import * - -import win32pipe -import win32con -import win32event -import win32file -import winerror -import pywintypes -import win32security +try: + from win32api import * + from win32gui import * + import win32pipe + import win32con + import win32event + import win32file + import winerror + import pywintypes + import win32security +except ImportError, e: + print 'Fatal error at startup', e + sys.exit(1)    from mercurial import demandimport  demandimport.ignore.append('win32com.shell') @@ -28,11 +46,6 @@
 from tortoisehg.util.i18n import agettext as _  from tortoisehg.util import thread2, paths, shlib   -if hasattr(sys, "frozen"): - # Give stdout/stderr closed attributes to prevent ui.py errors - sys.stdout.closed = True - sys.stderr.closed = True -  APP_TITLE = _('TortoiseHg Overlay Icon Server')    EXIT_CMD = 1025 @@ -155,7 +168,7 @@
  except:   pass   cnt += 1 - +   if self.pipethread.isAlive():   print "WARNING: unable to stop server after %d trys." % max_try   return False @@ -203,11 +216,16 @@
  for path in batch:   r = paths.find_root(path)   if r is None: - for n in os.listdir(path): - r = paths.find_root(os.path.join(path, n)) - if (r is not None): - roots.add(r) - notifypaths.add(r) + try: + for n in os.listdir(path): + r = paths.find_root(os.path.join(path, n)) + if (r is not None): + roots.add(r) + notifypaths.add(r) + except Exception, e: + # This exception raises in case of fixutf8 extension enabled + # and folder name contains '0x5c'(backslash). + logger.msg('Failed listdir %s (%s)' % (path, str(e)))   else:   roots.add(r);   notifypaths.add(path) @@ -350,12 +368,12 @@
  # Create an event which we will use to wait on.   # The "service stop" request will set this event.   self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) - +   # We need to use overlapped IO for this, so we dont block when   # waiting for a client to connect. This is the only effective way   # to handle either a client connection, or a service stop request.   self.overlapped = pywintypes.OVERLAPPED() - +   # And create an event to be used in the OVERLAPPED object.   self.overlapped.hEvent = win32event.CreateEvent(None,0,0,None)   @@ -425,15 +443,18 @@
  except SystemExit:   raise SystemExit # interrupted by thread2.terminate()   except: - import traceback   print "WARNING: something went wrong in requests.put" - print traceback.format_exc() + logger.msg(traceback.format_exc())   status = "ERROR"   # Clean up when we exit   self.SvcStop()    RUNMUTEXNAME = 'thgtaskbar-' + GetUserName()   +def ehook(etype, values, tracebackobj): + elist = traceback.format_exception(etype, values, tracebackobj) + logger.msg(''.join(elist)) +  def main():   args = sys.argv[1:]   sa = win32security.SECURITY_ATTRIBUTES() @@ -451,6 +472,20 @@
  logfilename = arg   if logfilename:   logger.setfile(logfilename) + elif hasattr(sys, "frozen"): + try: + from win32com.shell import shell, shellcon + appdir = shell.SHGetSpecialFolderPath(0, shellcon.CSIDL_APPDATA) + except pywintypes.com_error: + appdir = os.environ['APPDATA'] + logfilename = os.path.join(appdir, 'TortoiseHg', 'OverlayServerLog.txt') + try: + os.makedirs(os.path.dirname(logfilename)) + except EnvironmentError: + pass + logger.setfile(logfilename) + + sys.excepthook = ehook     w=MainWindow()   PumpMessages()
Change 1 of 1 Show Entire File contrib/​ipythg.py Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
@@ -0,0 +1,73 @@
+#!/usr/bin/env python +# ipythg.py - Run TortoiseHg Qt from IPython +# +# Copyright 2011 Yuya Nishihara <yuya@tcha.org> +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2, incorporated herein by reference. +"""Interactive Python shell for TortoiseHg + +? -> Introduction and overview of IPython's features. +%quickref -> Quick reference. +help -> Python's own help system. +object? -> Details about 'object'. ?object also works, ?? prints more. + +hg -> Run hg command in cmdui.Dialog. Usage: hg verify +thg -> Run thg command. Usage: thg log -R mercurial + +dialogs -> List of currently-opened dialogs. +repos -> Dict of repository objects. +run -> Module to run TortoiseHg dialogs. Usage: run.log(ui) +ui -> Mercurial's ui object. +""" +import os, sys, shlex +from IPython import ipapi +from IPython.Shell import IPShellQt4 +from PyQt4 import QtCore, QtGui + +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), + '..'))) +if 'HGPATH' in os.environ and os.path.isdir(os.environ['HGPATH']): + sys.path.insert(1, os.environ['HGPATH']) + +from mercurial import ui +from tortoisehg.hgqt import cmdui, thgrepo, run + +def _runhgcommand(self, arg): + def newdlg(ui): + return cmdui.Dialog(shlex.split(arg)) + run.qtrun(newdlg, self.user_ns['ui']) + +def _runthgcommand(self, arg): + run.runcommand(self.user_ns['ui'], shlex.split(arg)) + +def _banner(): + lines = __doc__.splitlines() + lines[2:2] = [run.shortlicense.strip(), ''] + return '\n'.join(lines) + '\n' + +def _execipyshell(ui): + """Setup IPython shell and enter mainloop""" + ns = {} + for mod in (QtCore, QtGui): + ns.update((k, v) for k, v in vars(mod).iteritems() + if not k.startswith('_')) + ns.update({'dialogs': run.qtrun._dialogs, 'repos': thgrepo._repocache, + 'run': run, 'ui': ui}) + shell = IPShellQt4(argv=[], user_ns=ns) + ip = ipapi.IPApi(shell.IP) + ip.expose_magic('hg', _runhgcommand) + ip.expose_magic('thg', _runthgcommand) + shell.mainloop(banner=_banner()) + +def _hookqtrun(ui): + """Hook qtrun() at dlgfunc() to hijack exec_()""" + run.qtrun._mainapp.exec_ = lambda: _execipyshell(ui) + +def main(): + os.environ['THGDEBUG'] = '1' + os.environ['THG_GUI_SPAWN'] = '1' + run.qtrun(_hookqtrun, ui.ui()) + +if __name__ == '__main__': + main()
 
1
2
 
3
4
5
 
10
11
12
 
 
 
 
 
 
 
 
 
13
14
15
 
38
39
40
41
 
42
43
44
45
46
47
 
 
 
 
 
 
 
 
 
 
 
48
49
50
 
1
 
2
3
4
5
 
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
47
48
49
 
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
@@ -1,5 +1,5 @@
 [merge-tools] -; Windows version of BeyondCompare +; Windows version of BeyondCompare 3  beyondcompare3.priority=-1  beyondcompare3.args=$local $other $base /mergeoutput=$output /ro /lefttitle=parent1 /centertitle=base /righttitle=parent2 /outputtitle=merged /automerge /reviewconflicts /solo  beyondcompare3.premerge=False @@ -10,6 +10,15 @@
 beyondcompare3.diff3args=$parent1 $parent2 $child /lefttitle='$plabel1' /centertitle='$clabel' /righttitle='$plabel2' /solo /ro  beyondcompare3.dirdiff=True   +; Windows version of BeyondCompare 2 (2-way diff only) +beyondcompare2.priority=-4 +beyondcompare2.args= /ro /title1="Original" /title2="Working copy" $local $other +beyondcompare2.regkey=Software\Scooter Software\Beyond Compare +beyondcompare2.regname=ExePath +beyondcompare2.gui=True +beyondcompare2.diffargs=/lro /title1='$plabel1' /title2='$clabel' $parent $child +beyondcompare2.dirdiff=True +  araxis.regkey=SOFTWARE\Classes\TypeLib\{46799e0a-7bd1-4330-911c-9660bb964ea2}\7.0\HELPDIR  araxis.regappend=\ConsoleCompare.exe  ;araxis.executable=${ProgramFiles}/Araxis/Araxis Merge/ConsoleCompare.exe @@ -38,13 +47,24 @@
 kdiff3.args=--auto --L1 base --L2 parent1 --L3 parent2 $base $local $other -o $output  kdiff3.regkey=Software\KDiff3  kdiff3.regappend=\kdiff3.exe -kdiff3.fixeol=True +kdiff3.fixeol=False  kdiff3.premerge=False  kdiff3.gui=True  kdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child  kdiff3.diff3args=--L1 '$plabel1' --L2 '$clabel' --L3 '$plabel2' $parent1 $child $parent2  kdiff3.dirdiff=True   +thgKdiff3.regkey=Software\TortoiseHg +thgKdiff3.regappend=\kdiff3.exe +thgKdiff3.priority=-4 +thgKdiff3.args=--auto --L1 base --L2 parent1 --L3 parent2 $base $local $other -o $output +thgKdiff3.fixeol=False +thgKdiff3.premerge=False +thgKdiff3.gui=True +thgKdiff3.diffargs=--L1 '$plabel1' --L2 '$clabel' $parent $child +thgKdiff3.diff3args=--L1 '$plabel1' --L2 '$clabel' --L3 '$plabel2' $parent1 $child $parent2 +thgKdiff3.dirdiff=True +  diffmerge.regkey=Software\SourceGear\SourceGear DiffMerge\  diffmerge.regname=Location  diffmerge.priority=-7
 
12
13
14
 
 
 
15
16
17
 
65
66
67
68
 
69
70
71
 
171
172
173
174
 
175
176
177
 
212
213
214
215
 
216
217
218
 
12
13
14
15
16
17
18
19
20
 
68
69
70
 
71
72
73
74
 
174
175
176
 
177
178
179
180
 
215
216
217
 
218
219
220
221
@@ -12,6 +12,9 @@
 import os  import sys   +thg_main = 'thg' +idstr_prefix = 'HgNautilus2' +  if gtk.gtk_version < (2, 14, 0):   # at least on 2.12.12, gtk widgets can be confused by control   # char markups (like "&#x1;"), so use cgi.escape instead @@ -65,7 +68,7 @@
  self.inv_dirs = set()     from tortoisehg.util import menuthg - self.hgtk = paths.find_in_path('hgtk') + self.hgtk = paths.find_in_path(thg_main)   self.menu = menuthg.menuThg()   self.notify = os.path.expanduser('~/.tortoisehg/notify')   try: @@ -171,7 +174,7 @@
  else: #bg   passcwd = self.cwd   for menu_info in menus: - idstr = 'HgNautilus::%02d%s' % (self.pos, menu_info.hgcmd) + idstr = '%s::%02d%s' % (idstr_prefix ,self.pos, menu_info.hgcmd)   self.pos += 1   if menu_info.isSep():   # can not insert a separator till now @@ -212,7 +215,7 @@
  return self.buildMenu(vfs_files, False)     def get_columns(self): - return nautilus.Column("HgNautilus::80hg_status", + return nautilus.Column(idstr_prefix + "::80hg_status",   "hg_status",   "Hg Status",   "Version control status"),
Change 1 of 1 Show Entire File contrib/​plot-annotate-colors.py Stacked
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
@@ -0,0 +1,200 @@
+#!/usr/bin/env python +# plot-annotate-colors.py - Display how annotation colors are assigned +# +# Copyright 2010 Yuya Nishihara <yuya@tcha.org> +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2, incorporated herein by reference. +import os, sys, math + +sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) + +from mercurial import hg, ui, cmdutil, util +from tortoisehg.util import colormap, hglib + +from PyQt4.QtCore import * +from PyQt4.QtGui import * + +SECS_PER_DAY = 24 * 60 * 60 + +class ColorPlot(QWidget): + """Display annotation colors as x-y graph + + :: + +-------------------------------------------------> age + | + | o ... filled by its color + | + | O ... size of circle describes number of lines + | + | * + | ... missing ctx is + | filled by yellow + | (error marker) + v + committer + """ + + def __init__(self, parent=None): + super(ColorPlot, self).__init__(parent) + self.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, + QSizePolicy.Expanding)) + pal = QPalette() + pal.setColor(self.backgroundRole(), QColor('black')) + self.setPalette(pal) + self.setAutoFillBackground(True) + + self._updatetimer = QTimer(self, singleShot=True) + self._updatetimer.timeout.connect(self.update) + + self._maxhues = None + self._maxsaturations = None + self._mindate = None + self._maxcolors = 0 + + self._latestdate = None + self._fctxs = None + + def paintEvent(self, event): + if self._fctxs is None: + return + + mindate = None + if self._mindate: + mindate = self._latestdate - self._mindate * SECS_PER_DAY + palette, cm = colormap._makeannotatepalette( + list(sorted(set(self._fctxs), key=lambda fctx: -fctx.date()[0])), + now=self._latestdate, maxcolors=self._maxcolors, + maxhues=self._maxhues, maxsaturations=self._maxsaturations, + mindate=mindate) + + weights = {} + for fctx in self._fctxs: + try: + weights[fctx] += 1 + except KeyError: + weights[fctx] = 1 + + p = QPainter(self) + p.setRenderHint(QPainter.Antialiasing) + for fctx, w in weights.iteritems(): + i = abs(hash(fctx.user())) + j = self._latestdate - fctx.date()[0] + c = cm.get_color(fctx, self._latestdate) + if c not in palette: + b = QBrush(QColor('yellow'), Qt.Dense4Pattern) # error marker + else: + b = QBrush(QColor(c)) + p.setPen(QPen(b, math.sqrt(w) * 2, Qt.SolidLine, Qt.RoundCap)) + p.drawPoint(j / SECS_PER_DAY + 2, + i / (sys.maxint / (self.height() - 4)) + 2) + + p.setPen(QColor('yellow')) + p.setFont(QFont('monospace', 8)) + p.drawText(2, self.height() - 8, + 'maxsaturations: %d' % cm._maxsaturations) + + def sizeHint(self): + return QSize(365, 200) + + @pyqtSlot(int) + def setMaxHues(self, value): + self._maxhues = value or None + self._updatetimer.start(100) + + @pyqtSlot(int) + def setMaxSaturations(self, value): + self._maxsaturations = value or None + self._updatetimer.start(100) + + @pyqtSlot(int) + def setMinDate(self, value): + self._mindate = value or None + self._updatetimer.start(100) + + @pyqtSlot(int) + def setMaxColors(self, value): + self._maxcolors = value + self._updatetimer.start(100) + + def plot(self, repo, canonpath, rev='.'): + latestfctx = repo[rev][canonpath] + self._fctxs = [fctx for fctx, line in latestfctx.annotate(follow=True)] + self._latestdate = latestfctx.date()[0] + self._updatetimer.start(100) + +class ColorPlotter(QWidget): + def __init__(self, parent=None): + super(ColorPlotter, self).__init__(parent) + self.setLayout(QVBoxLayout(self)) + self._plot = ColorPlot(self) + self.layout().addWidget(self._plot) + + form = QFormLayout() + self.layout().addLayout(form) + + self._maxhues_edit = QSpinBox(self, minimum=0, maximum=360, + specialValueText='inf') + self._maxhues_edit.valueChanged.connect(self._plot.setMaxHues) + self._maxhues_edit.setValue(8) + form.addRow('Max Hues (committers):', self._maxhues_edit) + + self._maxsats_edit = QSpinBox(self, minimum=0, maximum=255, + specialValueText='inf') + self._maxsats_edit.valueChanged.connect(self._plot.setMaxSaturations) + self._maxsats_edit.setValue(16) + form.addRow('Max Saturations (ages):', self._maxsats_edit) + + self._mindate_edit = QSpinBox(self, minimum=0, maximum=720, + specialValueText='n/a') + self._mindate_edit.valueChanged.connect(self._plot.setMinDate) + self._mindate_edit.setValue(365) + form.addRow('Minimal revision age to include', self._mindate_edit) + + self._maxcols_edit = QSpinBox(self, minimum=0, maximum=255) + self._maxcols_edit.valueChanged.connect(self._plot.setMaxColors) + self._maxcols_edit.setValue(32) + form.addRow('Max Colors (palette size):', self._maxcols_edit) + + @pyqtSlot(unicode) + def setPath(self, path): + spath = hglib.fromunicode(path) + reporoot = cmdutil.findrepo(os.path.abspath(spath)) + if not reporoot: + QMessageBox.warning(self, 'Repository Not Found', + 'Repository not found for path: %s' % path) + repo = hg.repository(ui.ui(), reporoot) + canonpath = util.canonpath(repo.root, os.getcwd(), spath) + self._plot.plot(repo, canonpath) + +class ColorPlotterWindow(QMainWindow): + def __init__(self, parent=None): + super(ColorPlotterWindow, self).__init__(parent) + self._plotter = ColorPlotter(self) + self.setCentralWidget(self._plotter) + + self.setMenuBar(QMenuBar()) + filemenu = self.menuBar().addMenu('&File') + filemenu.addAction('&Open', self._openFile, QKeySequence.Open) + + @pyqtSlot() + def _openFile(self): + path = QFileDialog.getOpenFileName(self, 'File to Annotate') + if path: + self.setPath(path) + + @pyqtSlot(unicode) + def setPath(self, path): + self.setWindowFilePath(path) + self._plotter.setPath(path) + +def main(args=sys.argv): + app = QApplication(args) + w = ColorPlotterWindow() + w.show() + if len(args) > 1: + QTimer.singleShot(100, lambda: w.setPath(args[1])) + return app.exec_() + +if __name__ == '__main__': + sys.exit(main())
Change 1 of 1 Show Entire File contrib/​tortoisehg.desktop Stacked
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
@@ -0,0 +1,8 @@
+[Desktop Entry] +Type=Application +Name=TortoiseHg +GenericName=Version Control GUI +Comment=GUI application for using Mercurial +Icon=tortoisehg_logo +Exec=thg --nofork +Categories=Development;RevisionControl;
 
5
6
7
8
 
9
10
11
 
16
17
18
19
20
 
 
 
 
 
21
22
23
 
24
25
26
 
63
64
65
 
 
 
66
67
68
 
72
73
74
75
 
76
77
78
 
 
79
80
81
 
5
6
7
 
8
9
10
11
 
16
17
18
 
 
19
20
21
22
23
24
25
 
26
27
28
29
 
66
67
68
69
70
71
72
73
74
 
78
79
80
 
81
82
83
84
85
86
87
88
89
@@ -5,7 +5,7 @@
 Name: tortoisehg  Version: hg  Release: hg -Summary: Mercurial GUI command line tool hgtk +Summary: Mercurial GUI command line tool thg  Group: Development/Tools  License: GPLv2  # Few files are under the more permissive GPLv2+ @@ -16,11 +16,14 @@
 # subpackage has to be arch-specific (because of lib64)  # BuildArch: noarch  BuildRequires: python, python-devel, gettext, python-sphinx -Requires: python >= 2.4, python-iniparse, mercurial >= 1.3, gnome-python2-gconf -Requires: gnome-python2-gtksourceview, pycairo, pygobject2, pygtk2 >= 2.10 +BuildRequires: PyQt4-devel +Requires: python >= 2.4, python-iniparse, mercurial >= 1.6 +# gconf needs at util/shlib.py for browse_url(url). +Requires: gnome-python2-gconf +Requires: PyQt4 >= 4.6, qscintilla-python    %description -This package contains the hgtk command line tool which provides a +This package contains the thg command line tool which provides a  graphical user interface to the Mercurial distributed revision control system.    %package nautilus @@ -63,6 +66,9 @@
 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d  install contrib/mergetools.rc $RPM_BUILD_ROOT%{_sysconfdir}/mercurial/hgrc.d/thgmergetools.rc   +ln -s tortoisehg/icons/svg/thg_logo.svg %{buildroot}%{_datadir}/pixmaps/%{name}_logo.svg +desktop-file-install --dir=%{buildroot}%{_datadir}/applications contrib/%{name}.desktop +  %find_lang %{name}    %clean @@ -72,10 +78,12 @@
   %defattr(-,root,root,-)  %doc COPYING.txt doc/build/html/ -%{_bindir}/hgtk +%{_bindir}/thg  %{python_sitelib}/tortoisehg/  %{python_sitelib}/tortoisehg-*.egg-info  %{_datadir}/pixmaps/tortoisehg/ +%{_datadir}/pixmaps/%{name}_logo.svg +%{_datadir}/applications/%{name}.desktop    # /usr/share/zsh/site-functions/ is owned by zsh package which we don't want to  # require. We also don't want to create a sub-package just for this dependency.
Change 1 of 1 Show Entire File contrib/​win32/​config.py Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,35 +0,0 @@
-""" -config.py - Copyright (C) 2009 Steve Borho <steve@borho.org> - -This software may be used and distributed according to the terms -of the GNU General Public License, incorporated herein by reference. -""" - -# This version of config.py is used in the binary installer -# distributions of TortoiseHg on Windows. Since we no longer need to -# worry about Python shell extensions, we can use the path of the -# current executable to find our package data. - -import os -import sys -import win32api, win32process - -proc = win32api.GetCurrentProcess() -try: - # This will fail on windows < NT - procpath = win32process.GetModuleFileNameEx(proc, 0) -except: - procpath = win32api.GetModuleFileName(0) - -bin_path = os.path.dirname(procpath) -license_path = os.path.join(bin_path, 'COPYING.txt') -locale_path = os.path.join(bin_path, 'locale') -icon_path = os.path.join(bin_path, 'icons') - -enc = sys.getfilesystemencoding() -if enc: - bin_path = bin_path.encode(enc) - license_path = license_path.encode(enc) - locale_path = locale_path.encode(enc) - icon_path = icon_path.encode(enc)
Change 1 of 1 Show Entire File contrib/​win32/​localtags Stacked
 
1
 
 
@@ -1,1 +0,0 @@
-275690997c5f2ace0476775b3b59fe50b639d3de 0.9.2-1
Change 1 of 1 Show Entire File contrib/​win32/​mercurial.rc Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,120 +0,0 @@
-; System-wide Mercurial config file. -; -; See http://www.selenic.com/mercurial/hgrc.5.html or the file -; 'hgrc.5.html' in the 'docs' subdirectory for help about the syntax -; and semantics of mercurial.ini files. -; -; !!! Do Not Edit This File !!! -; -; This file will be replaced by the installer on every upgrade. -; Editing this file can cause strange side effects on Vista. -; -; http://bitbucket.org/tortoisehg/stable/issue/135 -; -; To change settings you see in this file, override (or enable) them in -; your user Mercurial.ini file, where USERNAME is your Windows user name: -; -; XP or older - C:\Documents and Settings\USERNAME\Mercurial.ini -; Vista or later - C:\Users\USERNAME\Mercurial.ini - -[ui] -; editor used to enter commit logs, etc. Most any text editor -; will suffice. -editor = notepad - -; In order to push/pull over ssh you must specify a ssh tool -ssh = "TortoisePlink.exe" -ssh -2 -;ssh = C:\cygwin\bin\ssh - -; -; For more information about mercurial extensions, start here -; http://www.selenic.com/mercurial/wiki/index.cgi/UsingExtensions -; - -[extensions] -; extensions shipped with Mercurial by default -; -;acl = -;bookmarks = -;bugzilla = -;children = -;churn = -; Warning: the color extension is not recommended for Windows -;color = -;convert = -;extdiff = -;fetch = -;gpg = -;graphlog = -;hgcia = -;hgk = -;highlight = -;interhg = -;keyword = -;mq = -;notify = -;pager = -;parentrevspec = -;patchbomb = -;progress = -;purge = -;rebase = -;record = -;schemes = -;transplant = -;win32mbcs = -;win32text = -;zeroconf = -; Extra extensions bundled with TortoiseHg -;fold = -;hgcr-gui = -;perfarce = -;hgeol = -;mercurial_keyring = - -; fixfrozenexts is enabled by default. It allows extension help -; to work "out of the box" from binary installers. -fixfrozenexts = - -; -; Define external diff commands, for hg command line use only -; -[extdiff] -;kdiff3 = - -; The git extended diff format will properly store binary files, -; file permission changes, and rename information that the normal -; patch format cannot cover. However it is also not 100% compatible -; with tools which expect normal patches. so enable these at your -; own risk. -; -[diff] -;git = false -;nodates = false - -; -; Keyword extension example configuration. To use, one must -; enable the keyword extension, then uncomment and modify these -; two sections. Before using the keyword extension, be sure to -; thoroughly read it's documentation and understand how it works, -; and why it is not a core feature of Mercurial. -; -; http://www.selenic.com/mercurial/wiki/index.cgi/KeywordExtension -; http://www.selenic.com/mercurial/wiki/index.cgi/KeywordPlan -; -; If you encounter strange problems using Mercurial, a good first -; debugging step would be to disable this extension. -; -[keyword] -; expand keywords in all python files in working dir -;**.py = - -[keywordmaps] -; See documentation for examples - -; The schemes extension must be enabled to use one of these shortcuts. -; See http://mercurial.selenic.com/wiki/SchemesExtension -[schemes] -;bb = http://bitbucket.org/ -;bb+ssh = ssh://hg@bitbucket.org/ -;py = http://code.python.org/hg/
Change 1 of 1 Show Entire File contrib/​win32/​mergepatterns.rc Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,24 +0,0 @@
-[merge-patterns] -**.doc = docdiff -**.docx = docdiff -**.docm = docdiff -**.ods = docdiff -**.odt = docdiff -**.sxw = docdiff - -[diff-patterns] -**.doc = docdiff -**.docx = docdiff -**.docm = docdiff -**.ppt = docdiff -**.pptx = docdiff -**.pptm = docdiff -**.xls = docdiff -**.xlsx = docdiff -**.xlsm = docdiff -**.xlsb = docdiff -**.xlam = docdiff -**.ods = docdiff -**.odt = docdiff -**.sxw = docdiff -**.nb = docdiff
Change 1 of 1 Show Entire File contrib/​win32/​setup.cfg Stacked
 
1
2
3
4
5
6
 
 
 
 
 
 
 
@@ -1,6 +0,0 @@
-[py2exe] -excludes=pywin, pywin.dialogs, pywin.dialogs.list, pyreadline -includes=cairo, pango, pangocairo, atk, gobject, dbhash, gtk.keysyms, gio -packages=ctypes, email, hgext, hgext.convert, encodings, tortoisehg.hgtk, tortoisehg.hgtk.logview, tortoisehg.util, iniparse, pygments, dulwich, nntplib - -dll_excludes=iconv.dll, intl.dll, libatk-1.0-0.dll, libgdk_pixbuf-2.0-0.dll, libgdk-win32-2.0-0.dll, libglib-2.0-0.dll, libgmodule-2.0-0.dll, libgobject-2.0-0.dll, libgthread-2.0-0.dll, libgtk-win32-2.0-0.dll, libpango-1.0-0.dll, libpangowin32-1.0-0.dll, libcairo-2.dll, libglade-2.0-0.dll, libpangocairo-1.0-0.dll, libpangoft2-1.0-0.dll, libgio-2.0-0.dll, mswsock.dll, powrprof.dll, shfolder.dll, credui.dll, msvcp60.dll, secur32.dll
 
 
Change 1 of 1 Show Entire File contrib/​wix/​TortoiseOverlaysDefines.wxi Stacked
 
1
2
3
4
5
6
7
8
 
 
 
 
 
 
 
 
 
@@ -1,8 +0,0 @@
-<Include> - <?define TOverlaysVersion = 1.1.2.19334 ?> - <?define TOverlaysSrcDir = ..\contrib\TortoiseOverlays ?> - <?define TOverlaysSrcFilenameX86 = TortoiseOverlays-$(var.TOverlaysVersion)-win32.msm ?> - <?define TOverlaysSrcFilenameX64 = TortoiseOverlays-$(var.TOverlaysVersion)-x64.msm ?> - - <?define TOverlaysRegistryKey = Software\TortoiseOverlays ?> -</Include>
Removed image
Removed image
Change 1 of 1 Show Entire File contrib/​wix/​cmenu-i18n.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?include guids.wxi ?> - - <?define thgcmenulangs = - cs;da;de;en_GB;en_US;es;fa;fr;he;hr;it;ja;ko;nl;nn;pl;pt;pt_BR;ru;tr;uk;zh_CN;zh_TW - ?> - <!-- lang 'ca' is used for key path --> - - <Fragment> - <DirectoryRef Id="i18ndir"> - <Directory Id="cmenuI18n" Name="cmenu" FileSource="$(var.SourceDir)"> - <Component Id="cmenuI18n" Guid="$(var.cmenuI18n.guid)"> - <File Name="thg-cmenu-ca.reg" KeyPath="yes"/> - <?foreach LANG in $(var.thgcmenulangs) ?> - <File Name="thg-cmenu-$(var.LANG).reg" /> - <?endforeach?> - </Component> - </Directory> - </DirectoryRef> - </Fragment> - -</Wix>
Change 1 of 1 Show Entire File contrib/​wix/​contrib.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?include guids.wxi ?> - - <Fragment> - <ComponentGroup Id="contribFolder"> - <ComponentRef Id="contrib" /> - <ComponentRef Id="contrib.vim" /> - </ComponentGroup> - </Fragment> - - <Fragment> - <DirectoryRef Id="INSTALLDIR"> - <Directory Id="contribdir" Name="contrib" FileSource="$(var.SourceDir)"> - <Component Id="contrib" Guid="$(var.contrib.guid)"> - <File Name="bash_completion" KeyPath="yes" /> - <File Name="hgk" /> - <File Name="hgweb.fcgi" /> - <File Name="hgweb.wsgi" /> - <File Name="logo-droplets.svg" /> - <File Name="mercurial.el" /> - <File Name="sample.hgrc" /> - <File Name="tcsh_completion" /> - <File Name="tcsh_completion_build.sh" /> - <File Name="xml.rnc" /> - <File Name="zsh_completion" /> - </Component> - <Directory Id="vimdir" Name="vim"> - <Component Id="contrib.vim" Guid="$(var.contrib.vim.guid)"> - <File Name="hg-menu.vim" KeyPath="yes" /> - <File Name="HGAnnotate.vim" /> - <File Name="hgcommand.vim" /> - <File Name="patchreview.txt" /> - <File Name="patchreview.vim" /> - <File Name="hgtest.vim" /> - </Component> - </Directory> - </Directory> - </DirectoryRef> - </Fragment> - -</Wix>
Change 1 of 1 Show Entire File contrib/​wix/​doc.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?include guids.wxi ?> - - <Fragment> - <ComponentGroup Id="docFolder"> - <ComponentRef Id="doc.hg.1.html" /> - <ComponentRef Id="doc.hgignore.5.html" /> - <ComponentRef Id="doc.hgrc.5.html" /> - <ComponentRef Id="doc.style.css" /> - </ComponentGroup> - </Fragment> - - <Fragment> - <DirectoryRef Id="INSTALLDIR"> - <Directory Id="docdir" Name="doc" FileSource="$(var.SourceDir)"> - <Component Id="doc.hg.1.html" Guid="$(var.doc.hg.1.html.guid)"> - <File Name="hg.1.html" KeyPath="yes"> - <Shortcut Id="hg1StartMenu" Directory="ProgramMenuDir" - Name="Mercurial Command Reference" - Icon="hgIcon.ico" IconIndex="0" Advertise="yes" - /> - </File> - </Component> - <Component Id="doc.hgignore.5.html" Guid="$(var.doc.hgignore.5.html.guid)"> - <File Name="hgignore.5.html" KeyPath="yes"> - <Shortcut Id="hgignore5StartMenu" Directory="ProgramMenuDir" - Name="Mercurial Ignore Files" - Icon="hgIcon.ico" IconIndex="0" Advertise="yes" - /> - </File> - </Component> - <Component Id="doc.hgrc.5.html" Guid="$(var.doc.hgrc.5.html)"> - <File Name="hgrc.5.html" KeyPath="yes"> - <Shortcut Id="hgrc5StartMenu" Directory="ProgramMenuDir" - Name="Mercurial Configuration Files" - Icon="hgIcon.ico" IconIndex="0" Advertise="yes" - /> - </File> - </Component> - <Component Id="doc.style.css" Guid="$(var.doc.style.css)"> - <File Name="style.css" KeyPath="yes" /> - </Component> - </Directory> - </DirectoryRef> - </Fragment> - -</Wix>
Change 1 of 1 Show Entire File contrib/​wix/​guids.wxi Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,81 +0,0 @@
-<Include> - <!-- These are component GUIDs used for TortoiseHg installers. - YOU MUST CHANGE ALL GUIDs below when copying this file - and replace 'TortoiseHg' in this notice with the name of - your project. Component GUIDs have global namespace! --> - - <!-- contrib.wxs --> - <?define contrib.guid = {D3BC122A-163C-4ef9-91C2-62E04B128A16} ?> - <?define contrib.vim.guid = {503B4329-50F4-48BE-A8D2-8E5EB531927E} ?> - - <!-- doc.wxs --> - <?define doc.hg.1.html.guid = {6289D803-14D9-4AF8-AE67-4DB12D1EA5A6} ?> - <?define doc.hgignore.5.html.guid = {4E80FFF0-C28A-460F-ABC4-85BC25422B80} ?> - <?define doc.hgrc.5.html = {F392839B-CEB6-462E-8F23-A85D48F99BD3} ?> - <?define doc.style.css = {5C276050-DDDD-49FB-86ED-C636FD629242} ?> - - <!-- help.wxs --> - <?define helpFolder.guid = {B43FC643-9B06-4FF5-AFD4-9EEB13B5F83A} ?> - - <!-- i18n.wxs --> - <?define i18nFolder.guid = {3115A038-CA56-4413-97C1-6F0070D6034C} ?> - - <!-- templates.wxs --> - <?define templates.root.guid = {C609F85B-91CD-463f-8C07-57931D53B99F} ?> - <?define templates.atom.guid = {0155E267-F0D5-4115-A7D4-F217599B06C7} ?> - <?define templates.coal.guid = {310F768C-0817-4a07-907C-89AB8FDAE9DE} ?> - <?define templates.gitweb.guid = {5651A560-B483-4A0B-9525-BE0814B1088E} ?> - <?define templates.monoblue.guid = {00FFEE20-2950-4C46-8E5A-DC700DCFC921} ?> - <?define templates.paper.guid = {F81420D7-C77F-4624-B649-CD341665BC04} ?> - <?define templates.raw.guid = {F71E0FEB-32F9-4b18-91A5-A59722C682DC} ?> - <?define templates.rss.guid = {23DA0B15-6463-400b-95E0-CD5FAD6B75B5} ?> - <?define templates.spartan.guid = {0686468F-D950-422f-A904-1B09FFD3C852} ?> - <?define templates.static.guid = {9AC0E261-7563-4147-9974-12022C1CBD4E} ?> - - <!-- cmenu-i18n.wxs --> - <?define cmenuI18n.guid = {B0AB4947-248C-4c6b-841C-49284EF99022} ?> - - <!-- icons.wxs --> - <?define Icons.guid = {30E997E7-FB02-4d34-AF61-A6FD6C93E268} ?> - <?define SvgIcons.guid = {7C87CCC7-8377-49c8-ACFD-1F246ED14747} ?> - - <!-- thg-i18n.wxs --> - <?define thgI18nFolder.guid = {69E6E182-BCD2-4b03-A941-7B9A054DF7AF} ?> - - <!-- tortoisehg.wxs --> - <?define ProductUpgradeCode = {838657CF-C9EC-452D-800D-0E70FC021D0A} ?> - - <?define ComponentMainExecutableGUID = {5A98EB92-2C82-406E-81A5-1161CA87ED8E} ?> - - <?define thgshellx86dll.guid = {1126CF42-3994-428B-A746-464E1BC680F3} ?> - <?define thgshellx64dll.guid = {59FD2A49-BA62-40CC-B155-D11DB11EE611} ?> - - <?define CmenuShellRegistrationX86.guid = {287A355F-3DF6-4f55-9DD5-FABD09498B0C} ?> - <?define CmenuShellRegistrationX64.guid = {46DF4532-7BFF-427a-BC59-F3B4D1022F56} ?> - - <?define OverlaysShellRegistrationX86.guid = {5592F837-8C78-43f0-AD8D-2E2EA4B17E45} ?> - <?define OverlaysShellRegistrationX64.guid = {9B1300FC-3D05-4c82-991D-96277404C4BA} ?> - <?define OverlayServerEXE.guid = {DC5D9CC4-8330-4146-99EC-30D3AA255DD4} ?> - - <?define ExtensionVersions.guid = {1996AB0D-634D-4DC8-9581-326151F38B11} ?> - <?define COPYING.guid = {382A8405-CB7B-42E8-8B9D-88B5C5283E73} ?> - - <?define docdiffEXE.guid = {4BA6389A-6A0B-483B-A3FE-86EE436FDD31} ?> - <?define KDiff3EXE.guid = {B2A5EFD4-A385-45E0-8467-46B955979672} ?> - <?define TortoisePlinkEXE.guid = {A18BFE4D-BED0-4EF9-97CC-5B4326E3CD2F} ?> - <?define PageantEXE.guid = {EA7EF381-076C-47CE-8F51-355DB7F86D1A} ?> - - <?define chmFile.guid = {A26038DC-C686-4296-9335-FA4B9ABC769C} ?> - <?define pdfFile.guid = {1C5792DA-C48F-4F7F-9CD8-FC467995B8E4} ?> - <?define hgbook.guid = {A5F6D094-BCFD-4AC0-8675-7DF8CC94FEE5} ?> - - <?define mercurial.rc.guid = {28ACE5D7-FFCE-488E-A94A-8F13A21DD25D} ?> - <?define mergetools.rc.guid = {30CC047C-48B4-4D91-B8EC-79975327A9C7} ?> - <?define mergepatterns.rc.guid = {05860DA7-8391-43A4-A4E7-6E9E084D11C6} ?> - <?define paths.rc.guid = {3872C21C-3DB7-4A63-B088-785CBDBA47BD} ?> - <?define cacert.pem.guid = {6E5ED0E2-DD8C-4CD7-B065-A686357D0330} ?> - - <?define ProgramMenuDir.guid = {D5A63320-1238-489B-B68B-CF053E9577CA} ?> - <?define ThgAppData.guid = {94B8FBB5-4AE3-4960-B3D8-94BEFC6366E9} ?> - -</Include>
Change 1 of 1 Show Entire File contrib/​wix/​help.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?include guids.wxi ?> - - <Fragment> - <DirectoryRef Id="INSTALLDIR"> - <Directory Id="helpdir" Name="help" FileSource="$(var.SourceDir)"> - <Component Id="helpFolder" Guid="$(var.helpFolder.guid)"> - <File Name="config.txt" KeyPath="yes" /> - <File Name="dates.txt" /> - <File Name="diffs.txt" /> - <File Name="environment.txt" /> - <File Name="extensions.txt" /> - <File Name="glossary.txt" /> - <File Name="hgweb.txt" /> - <File Name="merge-tools.txt" /> - <File Name="multirevs.txt" /> - <File Name="patterns.txt" /> - <File Name="revisions.txt" /> - <File Name="revsets.txt" /> - <File Name="subrepos.txt" /> - <File Name="templates.txt" /> - <File Name="urls.txt" /> - </Component> - </Directory> - </DirectoryRef> - </Fragment> - -</Wix>
Change 1 of 1 Show Entire File contrib/​wix/​i18n.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?include guids.wxi ?> - - <?define hg_po_langs = - da;de;el;fr;it;ja;pt_BR;sv;zh_CN;zh_TW - ?> - - <Fragment> - <DirectoryRef Id="INSTALLDIR"> - <Directory Id="i18ndir" Name="i18n" FileSource="$(var.SourceDir)"> - <Component Id="i18nFolder" Guid="$(var.i18nFolder.guid)"> - <File Name="hggettext" KeyPath="yes" /> - <?foreach LANG in $(var.hg_po_langs) ?> - <File Id="hg.$(var.LANG).po" - Name="$(var.LANG).po" - /> - <?endforeach?> - </Component> - </Directory> - </DirectoryRef> - </Fragment> - -</Wix>
Change 1 of 1 Show Entire File contrib/​wix/​icons.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?include guids.wxi ?> - - <Fragment> - <DirectoryRef Id="INSTALLDIR"> - - <Directory Id="IconsDirectory" Name="icons" FileSource="$(var.SourceDir)"> - - <Component Id='Icons' Guid='$(var.Icons.guid)'> - <File Name="branch.ico" KeyPath="yes" /> - <File Name="detect_rename.ico" /> - <File Name="fileadd.ico" /> - <File Name="filedelete.ico" /> - <File Name="filemodify.ico" /> - <File Name="general.ico" /> - <File Name="hg.ico" /> - <File Name="hg_60.ico" /> - <File Name="hgB.ico" /> - <File Name="ignore.ico" /> - <File Name="menuabout.ico" /> - <File Name="menuadd.ico" /> - <File Name="menublame.ico" /> - <File Name="menucheckout.ico" /> - <File Name="menuclone.ico" /> - <File Name="menucommit.ico" /> - <File Name="menucreaterepos.ico" /> - <File Name="menudelete.ico" /> - <File Name="menudiff.ico" /> - <File Name="menuhelp.ico" /> - <File Name="menuimport.ico" /> - <File Name="menulog.ico" /> - <File Name="menumerge.ico" /> - <File Name="menupatch.ico" /> - <File Name="menurelocate.ico" /> - <File Name="menurepobrowse.ico" /> - <File Name="menurevert.ico" /> - <File Name="menurevisiongraph.ico" /> - <File Name="menusettings.ico" /> - <File Name="menushowchanged.ico" /> - <File Name="menusynch.ico" /> - <File Name="menuunmerge.ico" /> - <File Name="proxy.ico" /> - <File Name="python.ico" /> - <File Name="README.txt" /> - <File Name="refresh_overlays.ico" /> - <File Name="settings_repo.ico" /> - <File Name="settings_user.ico" /> - <File Name="shelve.ico" /> - <File Name="thg_logo.ico" /> - <File Name="thg_logo_92x50.png" /> - <File Name="TortoiseMerge.ico" /> - </Component> - - <Directory Id="SvgDirectory" Name="svg"> - <Component Id='SvgIcons' Guid='$(var.SvgIcons.guid)'> - <File Name="add.svg" KeyPath="yes" /> - <File Name="checkout.svg" /> - <File Name="clone.svg" /> - <File Name="commit.svg" /> - <File Name="detect_rename.svg" /> - <File Name="ignore.svg" /> - <File Name="init.svg" /> - <File Name="log.svg" /> - <File Name="merge.svg" /> - <File Name="proxy.svg" /> - <File Name="recovery.svg" /> - <File Name="refresh_overlays.svg" /> - <File Name="remove.svg" /> - <File Name="repobrowse.svg" /> - <File Name="revert.svg" /> - <File Name="shelve.svg" /> - <File Name="status.svg" /> - <File Name="sync.svg" /> - <File Name="thg_logo.svg" /> - </Component> - - </Directory> - - </Directory> - - </DirectoryRef> - </Fragment> - -</Wix>
Change 1 of 1 Show Entire File contrib/​wix/​locale.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?define hglocales = - da;de;el;fr;it;ja;pt_BR;sv;zh_CN;zh_TW - ?> - - <Fragment> - <ComponentGroup Id="localeFolder"> - <?foreach LOC in $(var.hglocales) ?> - <ComponentRef Id="hg.locale.$(var.LOC)"/> - <?endforeach?> - </ComponentGroup> - </Fragment> - - <Fragment> - <DirectoryRef Id="INSTALLDIR"> - <Directory Id="localedir" Name="locale" FileSource="$(var.SourceDir)"> - <?foreach LOC in $(var.hglocales) ?> - <Directory Id="hg.locale.$(var.LOC)" Name="$(var.LOC)"> - <Directory Id="hg.locale.$(var.LOC).LC_MESSAGES" Name="LC_MESSAGES"> - <Component Id="hg.locale.$(var.LOC)" Guid="*"> - <File Id="hg.mo.$(var.LOC)" Name="hg.mo" KeyPath="yes" /> - </Component> - </Directory> - </Directory> - <?endforeach?> - </Directory> - </DirectoryRef> - </Fragment> - -</Wix>
Change 1 of 1 Show Entire File contrib/​wix/​sdk_build_extensions.cmd Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,26 +0,0 @@
-:: %1 - TortoiseHg Version first level -:: %2 - second level -:: %3 - third level -:: %4 - platform (x86 or x64) -:: %5 - msi product id (GUID) - -set _SDKBIN_=%PROGRAMFILES%\Microsoft SDKs\Windows\v7.0\Bin -if exist "%_SDKBIN_%" goto :ok -set _SDKBIN_=%ProgramW6432%\Microsoft SDKs\Windows\v7.0\Bin -if exist "%_SDKBIN_%" goto :ok -echo Microsoft Windows SDK 7 SP1 not installed -pause -exit 1 -:ok - -cd win32\shellext - -call "%_SDKBIN_%\SetEnv.cmd" /xp /%4 /release -set DEBUG=1 -set THG_PLATFORM=%4 -set THG_EXTRA_CPPFLAGS=/DTHG_PRODUCT_ID=%5 -set THG_EXTRA_RCFLAGS=/dTHG_VERSION_FIRST=%1 /dTHG_VERSION_SECOND=%2 /dTHG_VERSION_THIRD=%3 /dTHG_PRODUCT_ID="%5" -nmake /f Makefile.nmake clean -nmake /f Makefile.nmake -move ThgShell%4.dll .. -move terminate-%4.exe ..
Change 1 of 1 Show Entire File contrib/​wix/​shell-register-cmenu.wxi Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,56 +0,0 @@
-<Include> - <!-- cmenu COM component --> - <RegistryValue - Root='HKCR' Key='CLSID\$(var.CLSID_TortoiseHgCmenu)' - Type='string' Value='TortoiseHg' - /> - <RegistryValue - Root='HKCR' Key='CLSID\$(var.CLSID_TortoiseHgCmenu)\InProcServer32' - Type='string' Name='ThreadingModel' Value='Apartment' - /> - - <!-- cmenu registration --> - <RegistryValue - Root='HKCR' Key='Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - <RegistryValue - Root='HKCR' Key='Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - <RegistryValue - Root='HKCR' Key='Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - <RegistryValue - Root='HKCR' Key='Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - <RegistryValue - Root='HKCR' Key='InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - <RegistryValue - Root='HKCR' Key='LibraryLocation\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - <RegistryValue - Root='HKCR' Key='LibraryFolder\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - <RegistryValue - Root='HKCR' Key='LibraryFolder\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - <RegistryValue - Root='HKCR' Key='*\shellex\ContextMenuHandlers\TortoiseHgCMenu' - Type='string' Value='$(var.CLSID_TortoiseHgCmenu)' - /> - - <!-- Mark all as approved --> - <RegistryValue - Root='HKLM' Key='Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved' - Type='string' Name='$(var.CLSID_TortoiseHgCmenu)' Value='TortoiseHg' - /> - -</Include>
Change 1 of 1 Show Entire File contrib/​wix/​shell-register-overlays.wxi Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,40 +0,0 @@
-<Include> - <!-- overlay components --> - <?foreach CLSID in $(var.OverlayCLSIDList) ?> - <RegistryValue - Root='HKCR' Key='CLSID\$(var.CLSID)' - Type='string' Value='TortoiseHg' - /> - <RegistryValue - Root='HKCR' Key='CLSID\$(var.CLSID)\InProcServer32' - Type='string' Name='ThreadingModel' Value='Apartment' - /> - <?endforeach?> - - <!-- register overlay components with TortoiseOverlays --> - <RegistryValue - Root='HKLM' Key='$(var.TOverlaysRegistryKey)\Normal' - Type='string' Name='TortoiseHgMsi' Value='$(var.CLSID_TortoiseHgNormal)' - /> - <RegistryValue - Root='HKLM' Key='$(var.TOverlaysRegistryKey)\Added' - Type='string' Name='TortoiseHgMsi' Value='$(var.CLSID_TortoiseHgAdded)' - /> - <RegistryValue - Root='HKLM' Key='$(var.TOverlaysRegistryKey)\Modified' - Type='string' Name='TortoiseHgMsi' Value='$(var.CLSID_TortoiseHgModified)' - /> - <RegistryValue - Root='HKLM' Key='$(var.TOverlaysRegistryKey)\Unversioned' - Type='string' Name='TortoiseHgMsi' Value='$(var.CLSID_TortoiseHgUnversioned)' - /> - - <!-- Mark all as approved --> - <?foreach CLSID in $(var.OverlayCLSIDList) ?> - <RegistryValue - Root='HKLM' Key='Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved' - Type='string' Name='$(var.CLSID)' Value='TortoiseHg' - /> - <?endforeach?> - -</Include>
Change 1 of 1 Show Entire File contrib/​wix/​templates.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,212 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?include guids.wxi ?> - - <Fragment> - <ComponentGroup Id="templatesFolder"> - - <ComponentRef Id="templates.root" /> - - <ComponentRef Id="templates.atom" /> - <ComponentRef Id="templates.coal" /> - <ComponentRef Id="templates.gitweb" /> - <ComponentRef Id="templates.monoblue" /> - <ComponentRef Id="templates.paper" /> - <ComponentRef Id="templates.raw" /> - <ComponentRef Id="templates.rss" /> - <ComponentRef Id="templates.spartan" /> - <ComponentRef Id="templates.static" /> - - </ComponentGroup> - </Fragment> - - <Fragment> - <DirectoryRef Id="INSTALLDIR"> - - <Directory Id="templatesdir" Name="templates" FileSource="$(var.SourceDir)"> - - <Component Id="templates.root" Guid="$(var.templates.root.guid)"> - <File Name="map-cmdline.changelog" KeyPath="yes" /> - <File Name="map-cmdline.compact" /> - <File Name="map-cmdline.default" /> - <File Name="map-cmdline.xml" /> - <File Name="template-vars.txt" /> - </Component> - - <Directory Id="templates.atomdir" Name="atom"> - <Component Id="templates.atom" Guid="$(var.templates.atom.guid)"> - <File Id="atom.changelog.tmpl" Name="changelog.tmpl" KeyPath="yes" /> - <File Id="atom.changelogentry.tmpl" Name="changelogentry.tmpl" /> - <File Id="atom.error.tmpl" Name="error.tmpl" /> - <File Id="atom.filelog.tmpl" Name="filelog.tmpl" /> - <File Id="atom.header.tmpl" Name="header.tmpl" /> - <File Id="atom.map" Name="map" /> - <File Id="atom.tagentry.tmpl" Name="tagentry.tmpl" /> - <File Id="atom.tags.tmpl" Name="tags.tmpl" /> - </Component> - </Directory> - - <Directory Id="templates.coaldir" Name="coal"> - <Component Id="templates.coal" Guid="$(var.templates.coal.guid)"> - <File Id="coal.header.tmpl" Name="header.tmpl" KeyPath="yes" /> - <File Id="coal.map" Name="map" /> - </Component> - </Directory> - - <Directory Id="templates.gitwebdir" Name="gitweb"> - <Component Id="templates.gitweb" Guid="$(var.templates.gitweb.guid)"> - <File Id="gitweb.branches.tmpl" Name="branches.tmpl" KeyPath="yes" /> - <File Id="gitweb.changelog.tmpl" Name="changelog.tmpl" /> - <File Id="gitweb.changelogentry.tmpl" Name="changelogentry.tmpl" /> - <File Id="gitweb.changeset.tmpl" Name="changeset.tmpl" /> - <File Id="gitweb.error.tmpl" Name="error.tmpl" /> - <File Id="gitweb.fileannotate.tmpl" Name="fileannotate.tmpl" /> - <File Id="gitweb.filediff.tmpl" Name="filediff.tmpl" /> - <File Id="gitweb.filelog.tmpl" Name="filelog.tmpl" /> - <File Id="gitweb.filerevision.tmpl" Name="filerevision.tmpl" /> - <File Id="gitweb.footer.tmpl" Name="footer.tmpl" /> - <File Id="gitweb.graph.tmpl" Name="graph.tmpl" /> - <File Id="gitweb.header.tmpl" Name="header.tmpl" /> - <File Id="gitweb.index.tmpl" Name="index.tmpl" /> - <File Id="gitweb.manifest.tmpl" Name="manifest.tmpl" /> - <File Id="gitweb.map" Name="map" /> - <File Id="gitweb.notfound.tmpl" Name="notfound.tmpl" /> - <File Id="gitweb.search.tmpl" Name="search.tmpl" /> - <File Id="gitweb.shortlog.tmpl" Name="shortlog.tmpl" /> - <File Id="gitweb.summary.tmpl" Name="summary.tmpl" /> - <File Id="gitweb.tags.tmpl" Name="tags.tmpl" /> - <File Id="gitweb.help.tmpl" Name="help.tmpl" /> - <File Id="gitweb.helptopics.tmpl" Name="helptopics.tmpl" /> - </Component> - </Directory> - - <Directory Id="templates.monobluedir" Name="monoblue"> - <Component Id="templates.monoblue" Guid="$(var.templates.monoblue.guid)"> - <File Id="monoblue.branches.tmpl" Name="branches.tmpl" KeyPath="yes" /> - <File Id="monoblue.changelog.tmpl" Name="changelog.tmpl" /> - <File Id="monoblue.changelogentry.tmpl" Name="changelogentry.tmpl" /> - <File Id="monoblue.changeset.tmpl" Name="changeset.tmpl" /> - <File Id="monoblue.error.tmpl" Name="error.tmpl" /> - <File Id="monoblue.fileannotate.tmpl" Name="fileannotate.tmpl" /> - <File Id="monoblue.filediff.tmpl" Name="filediff.tmpl" /> - <File Id="monoblue.filelog.tmpl" Name="filelog.tmpl" /> - <File Id="monoblue.filerevision.tmpl" Name="filerevision.tmpl" /> - <File Id="monoblue.footer.tmpl" Name="footer.tmpl" /> - <File Id="monoblue.graph.tmpl" Name="graph.tmpl" /> - <File Id="monoblue.header.tmpl" Name="header.tmpl" /> - <File Id="monoblue.index.tmpl" Name="index.tmpl" /> - <File Id="monoblue.manifest.tmpl" Name="manifest.tmpl" /> - <File Id="monoblue.map" Name="map" /> - <File Id="monoblue.notfound.tmpl" Name="notfound.tmpl" /> - <File Id="monoblue.search.tmpl" Name="search.tmpl" /> - <File Id="monoblue.shortlog.tmpl" Name="shortlog.tmpl" /> - <File Id="monoblue.summary.tmpl" Name="summary.tmpl" /> - <File Id="monoblue.tags.tmpl" Name="tags.tmpl" /> - <File Id="monoblue.help.tmpl" Name="help.tmpl" /> - <File Id="monoblue.helptopics.tmpl" Name="helptopics.tmpl" /> - </Component> - </Directory> - - <Directory Id="templates.paperdir" Name="paper"> - <Component Id="templates.paper" Guid="$(var.templates.paper.guid)"> - <File Id="paper.branches.tmpl" Name="branches.tmpl" KeyPath="yes" /> - <File Id="paper.changeset.tmpl" Name="changeset.tmpl" /> - <File Id="paper.error.tmpl" Name="error.tmpl" /> - <File Id="paper.fileannotate.tmpl" Name="fileannotate.tmpl" /> - <File Id="paper.filediff.tmpl" Name="filediff.tmpl" /> - <File Id="paper.filelog.tmpl" Name="filelog.tmpl" /> - <File Id="paper.filelogentry.tmpl" Name="filelogentry.tmpl" /> - <File Id="paper.filerevision.tmpl" Name="filerevision.tmpl" /> - <File Id="paper.footer.tmpl" Name="footer.tmpl" /> - <File Id="paper.graph.tmpl" Name="graph.tmpl" /> - <File Id="paper.header.tmpl" Name="header.tmpl" /> - <File Id="paper.index.tmpl" Name="index.tmpl" /> - <File Id="paper.manifest.tmpl" Name="manifest.tmpl" /> - <File Id="paper.map" Name="map" /> - <File Id="paper.notfound.tmpl" Name="notfound.tmpl" /> - <File Id="paper.search.tmpl" Name="search.tmpl" /> - <File Id="paper.shortlog.tmpl" Name="shortlog.tmpl" /> - <File Id="paper.shortlogentry.tmpl" Name="shortlogentry.tmpl" /> - <File Id="paper.tags.tmpl" Name="tags.tmpl" /> - <File Id="paper.help.tmpl" Name="help.tmpl" /> - <File Id="paper.helptopics.tmpl" Name="helptopics.tmpl" /> - </Component> - </Directory> - - <Directory Id="templates.rawdir" Name="raw"> - <Component Id="templates.raw" Guid="$(var.templates.raw.guid)"> - <File Id="raw.changeset.tmpl" Name="changeset.tmpl" KeyPath="yes" /> - <File Id="raw.error.tmpl" Name="error.tmpl" /> - <File Id="raw.fileannotate.tmpl" Name="fileannotate.tmpl" /> - <File Id="raw.filediff.tmpl" Name="filediff.tmpl" /> - <File Id="raw.index.tmpl" Name="index.tmpl" /> - <File Id="raw.manifest.tmpl" Name="manifest.tmpl" /> - <File Id="raw.map" Name="map" /> - <File Id="raw.notfound.tmpl" Name="notfound.tmpl" /> - </Component> - </Directory> - - <Directory Id="templates.rssdir" Name="rss"> - <Component Id="templates.rss" Guid="$(var.templates.rss.guid)"> - <File Id="rss.changelog.tmpl" Name="changelog.tmpl" KeyPath="yes" /> - <File Id="rss.changelogentry.tmpl" Name="changelogentry.tmpl" /> - <File Id="rss.error.tmpl" Name="error.tmpl" /> - <File Id="rss.filelog.tmpl" Name="filelog.tmpl" /> - <File Id="rss.filelogentry.tmpl" Name="filelogentry.tmpl" /> - <File Id="rss.header.tmpl" Name="header.tmpl" /> - <File Id="rss.map" Name="map" /> - <File Id="rss.tagentry.tmpl" Name="tagentry.tmpl" /> - <File Id="rss.tags.tmpl" Name="tags.tmpl" /> - </Component> - </Directory> - - <Directory Id="templates.spartandir" Name="spartan"> - <Component Id="templates.spartan" Guid="$(var.templates.spartan.guid)"> - <File Id="spartan.branches.tmpl" Name="branches.tmpl" KeyPath="yes" /> - <File Id="spartan.changelog.tmpl" Name="changelog.tmpl" /> - <File Id="spartan.changelogentry.tmpl" Name="changelogentry.tmpl" /> - <File Id="spartan.changeset.tmpl" Name="changeset.tmpl" /> - <File Id="spartan.error.tmpl" Name="error.tmpl" /> - <File Id="spartan.fileannotate.tmpl" Name="fileannotate.tmpl" /> - <File Id="spartan.filediff.tmpl" Name="filediff.tmpl" /> - <File Id="spartan.filelog.tmpl" Name="filelog.tmpl" /> - <File Id="spartan.filelogentry.tmpl" Name="filelogentry.tmpl" /> - <File Id="spartan.filerevision.tmpl" Name="filerevision.tmpl" /> - <File Id="spartan.footer.tmpl" Name="footer.tmpl" /> - <File Id="spartan.graph.tmpl" Name="graph.tmpl" /> - <File Id="spartan.header.tmpl" Name="header.tmpl" /> - <File Id="spartan.index.tmpl" Name="index.tmpl" /> - <File Id="spartan.manifest.tmpl" Name="manifest.tmpl" /> - <File Id="spartan.map" Name="map" /> - <File Id="spartan.notfound.tmpl" Name="notfound.tmpl" /> - <File Id="spartan.search.tmpl" Name="search.tmpl" /> - <File Id="spartan.shortlog.tmpl" Name="shortlog.tmpl" /> - <File Id="spartan.shortlogentry.tmpl" Name="shortlogentry.tmpl" /> - <File Id="spartan.tags.tmpl" Name="tags.tmpl" /> - </Component> - </Directory> - - <Directory Id="templates.staticdir" Name="static"> - <Component Id="templates.static" Guid="$(var.templates.static.guid)"> - <File Id="static.background.png" Name="background.png" KeyPath="yes" /> - <File Id="static.coal.file.png" Name="coal-file.png" /> - <File Id="static.coal.folder.png" Name="coal-folder.png" /> - <File Id="static.excanvas.js" Name="excanvas.js" /> - <File Id="static.graph.js" Name="graph.js" /> - <File Id="static.hgicon.png" Name="hgicon.png" /> - <File Id="static.hglogo.png" Name="hglogo.png" /> - <File Id="static.style.coal.css" Name="style-coal.css" /> - <File Id="static.style.gitweb.css" Name="style-gitweb.css" /> - <File Id="static.style.monoblue.css" Name="style-monoblue.css" /> - <File Id="static.style.paper.css" Name="style-paper.css" /> - <File Id="static.style.css" Name="style.css" /> - </Component> - </Directory> - - </Directory> - - </DirectoryRef> - </Fragment> - - </Wix>
Change 1 of 1 Show Entire File contrib/​wix/​thg-i18n.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?include guids.wxi ?> - - <?define thg_po_langs = - cs;da;de;en_GB;es;fa;fr;he;hr;hu;it;ja;ko;nl;nn;oc;pl;pt;pt_BR;ru;sv;tr;uk;zh_CN;zh_TW - ?> - <!-- lang 'ca' is used for key path --> - - <Fragment> - <DirectoryRef Id="i18ndir" FileSource="$(var.SourceDir)"> - <Directory Id="thgI18nFolder" Name="tortoisehg"> - <Component Id="thgI18nFolder" Guid="$(var.thgI18nFolder.guid)"> - <File Id="thg.ca.po" Name="ca.po" KeyPath="yes" /> - <?foreach LANG in $(var.thg_po_langs) ?> - <File Id="thg.$(var.LANG).po" Name="$(var.LANG).po" /> - <?endforeach?> - </Component> - </Directory> - </DirectoryRef> - </Fragment> - -</Wix>
Change 1 of 1 Show Entire File contrib/​wix/​thg-locale.wxs Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?> -<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> - - <?define thglocales = - ca;cs;da;de;en_GB;es;fa;fr;he;hr;hu;it;ja;nl;nn;pl;pt;pt_BR;ru;sv;tr;uk;zh_CN;zh_TW - ?> - - <Fragment> - <ComponentGroup Id="thgLocaleFolder"> - <?foreach LOC in $(var.thglocales) ?> - <ComponentRef Id="thg.locale.$(var.LOC)"/> - <?endforeach?> - </ComponentGroup> - </Fragment> - - <?foreach LOC in $(var.thglocales) ?> - <Fragment> - <DirectoryRef Id="localedir" FileSource="$(var.SourceDir)"> - <Directory Id="thg.locale.$(var.LOC)" Name="$(var.LOC)"> - <Directory Id="thg.locale.$(var.LOC).LC_MESSAGES" Name="LC_MESSAGES"> - <Component Id="thg.locale.$(var.LOC)" Guid="*"> - <File Id="tortoisehg.mo.$(var.LOC)" Name="tortoisehg.mo" KeyPath="yes" /> - </Component> - </Directory> - </Directory> - </DirectoryRef> - </Fragment> - <?endforeach?> - -</Wix>
Show Entire File contrib/​wix/​tortoisehg.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 1 Show Entire File doc/​Build.bat Stacked
 
2
3
4
5
 
6
7
8
 
2
3
4
 
5
6
7
8
@@ -2,7 +2,7 @@
 setlocal    if not exist %hhc_compiler%. ( - set hhc_compiler="%ProgramFiles%\HTML Help Workshop\hhc.exe" + set hhc_compiler=hhc.exe  )  set PDFLATEX=PdfLatex  set SPHINXBUILD=sphinx-build
 
2
3
4
5
 
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
 
2
3
4
 
5
6
7
8
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
11
12
 
133
134
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
@@ -2,42 +2,11 @@
 ===============    .. module:: common.dialog - :synopsis: Common features to all the dialog + :synopsis: Features common to many dialogs    These features are common to many TortoiseHg tools, so we document them  here just once.   -Keyboard Accelerators ---------------------- - -We define a few keyboard accelerators that all of the TortoiseHg tools support. - -:kbd:`Ctrl-Q` - quit the application, including all open windows - -:kbd:`Ctrl-W` - close the current window (same as :kbd:`Ctrl-Q` if only one window is open) - -:kbd:`Ctrl-D` - visual diff of currently selected file or changeset - -:kbd:`Ctrl-Enter` - activation - -:kbd:`Ctrl-.` and :kbd:`Ctrl-,` - select next or previous file in a file list - -:kbd:`Ctrl-[` and :kbd:`Ctrl-]` - page up or down a text pane - -:kbd:`F5`, :kbd:`Ctrl-R` - refresh - -On `Mac OS X <http://bitbucket.org/tortoisehg/stable/wiki/MacOSX>`_, the -apple (command) key is used as the modifier instead of :kbd:`Ctrl`. -However some keyboard accelerators are internal to GTK+ so you must use -the control key to access cut-paste functionality, for instance. -  Visual Diffs  ------------   @@ -164,46 +133,4 @@
 `merge-patterns <http://www.selenic.com/mercurial/hgrc.5.html#merge-patterns>`_  section.   - -Treeview searches ------------------ - -Many TortoiseHg dialogs use treeviews to present lists of data to the -user. The file lists in the status, commit, shelve, and changelog tools -are treeviews. The changelog graph pane is a treeview. And even the -annotate pane in the datamine tool is a treeview. - -Most of the TortoiseHg treeviews are configured for live searches. -Ensure that the treeview has focus (by clicking on a row), and begin -typing a search phrase. A small entry window will appear containing the -text you have typed, and the treeview will immediately jump to the first -row that matches the text you have entered thus far. As you enter more -characters, the search is refined. (Do not hit return to 'complete' the -search, before using the keys mentioned below, or the entry window will -disappear, ending the search instead.) - -* :kbd:`Ctrl-F` opens the search window explicitly -* :kbd:`Ctrl-G` advances the search to the next match -* :kbd:`Shift-Ctrl-G` searches backwards -* The mouse scroll wheel will advance forwards and backwards through - matching lines - -Hg command dialog ------------------ - -Many TortoiseHg tools use the *hgcmd* dialog to execute Mercurial -commands that could potentially be interactive. - -.. figure:: figures/hgcmd.jpg - :alt: Mercurial command dialog - - Interactive Mercurial Command Dialog - -.. note:: - Error messages are given a dark red color for contrast - -When the Mercurial command has completed, the dialog gives focus to its -:guilabel:`Close` button. So pressing :kbd:`Enter` is all that is -required to close the window. -  .. vim: noet ts=4
 
49
50
51
52
 
53
54
 
55
56
57
 
49
50
51
 
52
53
 
54
55
56
57
@@ -49,9 +49,9 @@
 # built documents.  #  # The short X.Y version. -version = '1.1' +version = '2.0'  # The full version, including alpha/beta/rc tags. -release = '1.1.8' +release = '1.9.0'    # The language for content autogenerated by Sphinx. Refer to documentation  # for a list of supported languages.
 
7
8
9
 
10
11
12
13
14
15
16
17
18
 
7
8
9
10
11
12
13
 
 
 
14
15
16
@@ -7,12 +7,10 @@
    common   explorer + workbench   init   clone   commit - shelve - changelog - datamine   synchronize   serve   guess
Change 1 of 1 Show Entire File doc/​source/​datamine.txt Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,136 +0,0 @@
-Datamine -======== - -.. module:: datamine.dialog - :synopsis: Dialog used to search repository history - -The datamine application is used to inspect the revision history of your -repository. It is a tabbed application that supports two tab types, -*Search* and *Annotate*. - - -Search Tabs ------------ - -.. figure:: figures/search.png - :alt: Search dialog - - Search tabs - -The search tab is used to search (*grep*) through your entire revision -history for keywords, variable names, functions, etc... - -The text entry fields have these purposes: - - :guilabel:`regexp` - Regular expression search criteria. - :guilabel:`includes` - Comma separated list of paths to include in your search. If no - paths are given, the search is assumed to be repository wide. In - other words, specifying an include path actually narrows the - search criteria. - :guilabel:`excludes` - Comma separated list of paths to exclude from your search. - Exclusion patterns are applied after inclusion patterns. - -The toggle buttons below the entry fields are for: - - :guilabel:`Follow copies and renames` - follow searches through copies and renames out of inclusion filters - :guilabel:`Ignore case` - Perform the search without case considerations - :guilabel:`Show line numbers` - Show line numbers at the front of the matching lines - :guilabel:`Show all matching revisions` - Show every instance where the search criteria matches in a file, - not just the most recent revision. It shows +/- to indicate - whether the change adds or removes your search text. - -Search tabs are named after the search string most recently used to -start a search. The :guilabel:`New Search` toolbar button will -obviously open a new search tab while the :guilabel:`Stop` button will -terminate an ongoing search (the :guilabel:`Stop` button is only -sensitive when a search is in progress). - -Matches -^^^^^^^ - -Each match will be a link to a changeset and will have a descriptive -tooltip (author, date/time, summary). Right clicking on a matched line -will bring up a context menu with these features: - - :guilabel:`display change` - open a changeset window with this changeset, to see the full context - :guilabel:`annotate file` - open an annotation tab for this file at this revision - :guilabel:`file history` - open a changelog window with this file's revision history - :guilabel:`view file at revision` - open the current file at the specified revision in your favorite - text editor. - - -Annotate Tabs -------------- - -.. figure:: figures/annotate.png - :alt: Annotate tabs - - Annotate tabs - - -The revision graph has a simple context menu for opening the entire -changeset in the changeset browser. Activating a row in the revision -graph updates the file annotation to that revision. - -In the bottom pane is the actual annotation. Each line in the annotation -is also a link to the changeset which provided that line. Activating a -row will zoom the changelog (top pane) to the changeset that introduced -that line and change focus to the top pane. - -The color scheme in the annotation pane is two dimensional. Authors -determine hue, and age determines saturation. The older a change, the -lighter the color. - -By right-clicking on the annotate pane's column headers (Line, Rev, -Source) you can bring up a menu for showing two optional columns: -:guilabel:`filename` and :guilabel:`user`. - -Following Renames -^^^^^^^^^^^^^^^^^ - -The annotation data will automatically follow lines of code back through -copies and renames to find the initial changeset that introduced the -line. The graph log pane will also attempt to follow renames and -copies, so some lines in the graph may correlate to different filenames -than the original annotated file path. Renames are indicated in the -graph by color changes within a column. - -Configurables -^^^^^^^^^^^^^ - -The annotate tabs support the following configurations defined primarily -for other tools: - -:menuselection:`Changelog --> Author Coloring` - Give each author a separate color in the changelog graph -:menuselection:`Changelog --> Long Summary` - Concatenates lines of commit message together to reach an 80 - character summary. -:menuselection:`TortoiseHg --> Tab width` - Number of spaces to expand tabs in diffs and annotate output - -From command line ------------------ - -The datamine tool can be started from command line :: - - hgtk datamine - - aliases: annotate, blame - - repository search and annotate tool - - use "hgtk -v help datamine" to show global options - -.. vim: noet ts=4
 
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
 
50
51
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
54
55
@@ -50,62 +50,6 @@
 :command:`hg debugsetparents <number of tip revision>`.  You can find the number of the tip revision by running :command:`hg log -l 2`.   -Hgcr-gui -======== - -`CodeReview <http://bitbucket.org/glimchb/hgcr-gui/wiki/Home>`_ management tool - -* This extension allows you to manage reviews for your code in any project you like. -* It helps to keep the review management inside the mercurial. -* One can add files to the review, remove them and notify reviewr that files are ready for review. -* The reviewer can mark the code as 'completed' review cycle and return the message to the developer. -* The project manager can check the review status - which files are reviewd and which are not yet. -* The extension will automatically spot the files that were changed since their last review and notify about that. -* This extension uses GUI from TortoiseHg but also implements command line interface. -* Code review database is stored in .code-review file in your repository root directory as a map of file and revision when review was done. - -**Usage**:: - - hg cr [OPTIONS] [FILES] - - Code Review Plugin (requires Mercurial 1.3.x and TortoiseHg 0.9) - - options: - - -c --complete Mark CR as complete - -a --add Add files to CR list - -r --remove Remove files from CR list - -l --list Print files in CR list - - use "hg -v help cr" to show global options - -.. note:: - To start GUI don't give any options. - -**More Details** - -* I've implemented the review around files and not changesets, because at the end, - I want to be able to tell for the specific project if all the files went through - code review process or not - the project status. -* Suppose you have some project that you are in charge and many developers do - write code for it. And there is a group of reviewrs that review the developers code. -* Is is very difficult to keep track of changes developers do, but simple to find - out what files have already been reviewd (by reviewers) and what were not. -* Using this extension, Developer can mark his files (when finished development - process) as "Ready for review" and send notice to reviewer. -* Reviewer will pick up the changeset (because changesets are stored in the code - review database) and perform code review (put notes inside the developer's code). -* Afterwards Reviewr will mark the files as "Review Completed" and return the - notice to the developer. -* The project manager can follow every time what is going on with his/her project. - -**Installation** - -You may want to add it to your Mercurial.ini or a repository's hgrc like this:: - - [extensions] - hgcr-gui= -  Perfarce  ========  
 
7
8
9
10
 
11
12
13
14
15
16
17
 
18
19
20
 
 
21
22
23
 
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
74
75
76
 
87
88
89
90
91
92
93
94
95
96
 
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
 
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
 
7
8
9
 
10
11
12
13
14
15
16
 
17
18
19
 
20
21
22
23
24
 
33
34
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
37
38
 
 
 
 
 
 
 
 
 
 
 
 
 
39
40
41
42
 
53
54
55
 
 
 
 
56
57
58
 
72
73
74
 
75
76
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
79
80
 
105
106
107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
@@ -7,17 +7,18 @@
    A Windows shell extension for the Mercurial revision control system,   similar to the Tortoise clients for Subversion and CVS. It also - includes an hgtk application for command line use on many platforms. + includes a thg application for command line use on many platforms.    *What comes included in the TortoiseHg binary installer for Windows?*     `Mercurial <http://mercurial.selenic.com/wiki/>`_,   `kdiff3 <http://kdiff3.sourceforge.net/>`_,   `TortoisePlink <http://www.chiark.greenend.org.uk/%7Esgtatham/putty/>`_ - four bonus extensions: hgfold, hgcr-gui, perfarce, mercurial-keyring. + bonus extensions: hgfold, perfarce, mercurial-keyring. fixfrozenexts,   python-svn for hgsubversion and convert extensions, and dulwich for   hg-git use. - See :file:`extension-versions.txt` in installer root for more details + See :file:`extension-versions.txt` in the TortoiseHg folder for more + details on the exact versions packaged.    *Is Mercurial on Windows compatible with the index service and virus scanners?*   @@ -32,45 +33,10 @@
  locale you would like to use, double-click on it, and confirm all   requests.   -*Can I configure the toolbars in TortoiseHg applications?* - - TortoiseHg dialogs are PyGtk applications, so they can be configured by - modifying the gtkrc file that is installed as - :file:`C:\\Program Files\\TortoiseHg\\gtk\\etc\\gtk-2.0\\gtkrc`:: - - gtk-toolbar-icon-size = GTK_ICON_SIZE_LARGE_TOOLBAR - # Pick an icon size from: - # GTK_ICON_SIZE_MENU - # GTK_ICON_SIZE_SMALL_TOOLBAR - # GTK_ICON_SIZE_LARGE_TOOLBAR (default) - # GTK_ICON_SIZE_BUTTON - # GTK_ICON_SIZE_DND - # GTK_ICON_SIZE_DIALOG - gtk-toolbar-style = GTK_TOOLBAR_BOTH - # Pick a toolbar style from: - # GTK_TOOLBAR_ICONS - # GTK_TOOLBAR_TEXT - # GTK_TOOLBAR_BOTH (default) - # GTK_TOOLBAR_BOTH_HORIZ - - These settings are applied globally to all TortoiseHg applications. -  *How do I do merges and arbitrary version checkouts?*     Merges and updates are intended to be done within the - :guilabel:`Repository Explorer`, using changeset context menus - -*How do I use TortoiseHg's shelve extension from the hg command line?* - - Enable the extension in your Mercurial.ini file:: - - [extensions] - tortoisehg.util.hgshelve= - -*Why can't I connect to an ssh server (TortoisePlink.exe* ``...cannot execute specified...`` *error message)?* - - See `ssh <http://bitbucket.org/tortoisehg/stable/wiki/ssh>`_. - + :guilabel:`Workbench`, using changeset context menus    *Why can't I connect to an ssh server (remote: bash: <server name>: command not found)?*   @@ -87,10 +53,6 @@
  diff tools and make them available for selection from the   :guilabel:`Visual Diff Tool` item in the settings tool.   -*I'm a CLI user, how do I disable the shell extension (overlay icons and context menus)?* - - Simply ask the installer to remove the shell extension entirely. -  *How is TortoiseHg configured?*     TortoiseHg gets configuration settings from two systems. @@ -110,31 +72,9 @@
  editor = gvim   tabwidth = 4   longsummary = True - graphlimit = 500   authorcolor = True   authorcolor.steve = blue   -*Is it possible to change fonts?* - - In some cases, yes. The gtools based dialogs (commit, status, - shelve) allow some font configuration. :: - - [gtools] - # font used in changeset viewer and commit log text - fontcomment = courier 10 - # font used for diffs in status and commit tools - fontdiff = courier 10 - # font used in file lists in status and commit tools - fontlist = courier 9 - # font used in command output window - fontlog = courier 10 - -*How do I switch GTK themes?* - - You can download new themes and copy them into the - :file:`gtk\\share\\themes` directory of your install and then enable - them in :file:`gtk\\etc\\gtk-2.0\\gtkrc`. -  *Where do TortoiseHg extensions look for external Python modules on Windows?*     TortoiseHg includes an entire Python distribution bundled up as @@ -165,20 +105,4 @@
  [extensions]   00setSysPath = C:\path\to\setsyspath.py   -*How do I fix odd characters in dialogs?* - - The default font of the MS-Windows theme may cause problems in some - environments. In order to fix this issue, add following setting to - TortoiseHg's :file:`gtkrc` file:: - - style "msw-default" - { - font_name = "MS UI Gothic 9" - } - - You can find :file:`gtkrc` file in your TortoiseHg install directory: - i.e. :file:`C:\\Program Files\\TortoiseHg\\gtk\\etc\\gtk-2.0\\gtkrc` - - Also see the :guilabel:`Fonts` page of the settings tool -  .. vim: noet ts=4
 
14
15
16
 
17
18
19
20
21
22
23
 
14
15
16
17
18
19
20
 
21
22
23
@@ -14,10 +14,10 @@
    preface   intro + whatsnew   quick   daily   settings - recovery   patches   extensions   nonhg
Show Entire File doc/​source/​intro.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
 
34
35
36
37
38
39
40
 
41
42
43
 
58
59
60
61
 
62
63
64
 
65
66
67
 
 
68
69
70
71
72
 
 
73
74
75
76
 
 
 
 
 
 
77
78
79
 
34
35
36
 
 
 
 
37
38
39
40
 
55
56
57
 
58
59
60
 
61
62
 
 
63
64
65
66
67
 
 
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
@@ -34,10 +34,7 @@
   :doc:`settings` describes how to configure TortoiseHg.   -:doc:`recovery` describes the recovery operations one can perform on a -project. - -:doc:`nonhg` describes how to use TortoiseHg as a client to +:doc:`nonhg` describes how to use TortoiseHg as a client for  non-Mercurial servers.    :doc:`faq` has a list of common questions and their answers. @@ -58,22 +55,28 @@
 Mailing Lists:    * `Users <https://lists.sourceforge.net/lists/listinfo/tortoisehg-discuss>`_ - Announcements, user Q&A, and feature discussions. -* `Developers <https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop>`_ - Patches, bug reports, development discussions. +* `Developers <thg-dev@googlegroups.com>`_ - Patches, bug reports, development discussions.  * `Issues <https://lists.sourceforge.net/lists/listinfo/tortoisehg-issues>`_ - Notifications from the issue tracker.   -And our `wiki <http://bitbucket.org/tortoisehg/stable/wiki/Home>`_ on Bitbucket. +And our `wiki <http://bitbucket.org/tortoisehg/thg/wiki/Home>`_ on Bitbucket.   -Acknowledgement -=============== +Acknowledgements +================    Thanks to the many people who contribute to the TortoiseHg project. It  takes a community of developers, translators, and users to build a -truly useful tool. Especially users who care enough to report bugs and -file feature requests. +truly useful tool (especially users who care enough to report bugs and +file feature requests).    The TortoiseHg installer for Windows includes the TortoiseOverlays handler,  as provided by the `TortoiseSVN <http://tortoisesvn.net>`_ project.   +The history viewer of TortoiseHg is based on hgview +`hgview <http://www.logilab.org/project/hgview>`_, a tool developped by +`David Douard <david.douard@logilab.fr>`_ and others, with the financial +support of `Logilab <http://www.logilab.fr>`_. + +  Conventions used in this manual  ===============================  
Show Entire File doc/​source/​quick.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 1 Show Entire File doc/​source/​recovery.txt Stacked
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,41 +0,0 @@
-******** -Recovery -******** - -.. module:: recovery.dialog - :synopsis: Dialog used to perform recovery operations - -.. figure:: figures/recover.png - :alt: Recovery dialog - - Recovery Dialog - -The toolbar buttons equate to a Mercurial command - -:guilabel:`clean` - :command:`hg update --clean` - performs a clean checkout of the - current (first) working directory parent revision. Undoes an - aborted or partially completed merge. This will destroy all - changes, please use carefully. You should shelve any changes you - wish to keep before using this command. - - -:guilabel:`rollback` - :command:`hg rollback` - undo operation for the most recent - repository transaction, which is usually a commit or a pull. There - is no way to know for certain what operation will be rolled back, so - only use this in situations where you know what the last transaction - was. - - -:guilabel:`recover` - :command:`hg recover` - recover from a badly aborted transaction. - This is rarely necessary, and Mercurial will inform you if it ever - needs to be performed. - - -:guilabel:`verify` - :command:`hg verify` - perform a consistency check of the contents of your - repository. Completely safe. - -.. vim: noet ts=4
Show Entire File doc/​source/​shelve.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​whatsnew.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​workbench.txt Stacked
renamed from doc/source/changelog.txt
(No changes)
Show Entire File hgtk Stacked
(No changes)
 
18
19
20
21
22
23
24
 
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
 
18
19
20
 
21
22
23
 
163
164
165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
167
168
@@ -18,7 +18,6 @@
  inkscape:export-filename="E:\src\mercurial\thg\thg-init-icon\icons\tortoise\init-32.png"   inkscape:export-xdpi="90"   inkscape:export-ydpi="90" - sodipodi:docbase="E:\src\thg\thg-icons\icons\tortoise"   sodipodi:docname="init.svg"   inkscape:output_extension="org.inkscape.output.svg.inkscape"   style="display:inline"> @@ -164,22 +163,6 @@
  </rdf:RDF>   </metadata>   <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Original Bitmap" - style="display:none" - sodipodi:insensitive="true"> - <image - style="display:inline" - y="0" - x="0" - id="image4474" - height="32" - width="32" - sodipodi:absref="E:\src\mercurial\thg\thg-init-icon\icons\tortoise\menucreaterepos.ico" - xlink:href="E:\src\mercurial\thg\thg-init-icon\icons\tortoise\menucreaterepos.ico" /> - </g> - <g   inkscape:label="Cylinder"   inkscape:groupmode="layer"   id="layer1"
Show Entire File icons/​svg/​proxy.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​svg/​thg_logo.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File setup.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tests/​__init__.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tests/​colormap_test.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Change 1 of 1 Show Entire File tests/​fixtures/​euc-jp-path.diff Stacked
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
@@ -0,0 +1,9 @@
+# HG changeset patch +# User test +# Date 0 0 +# Node ID b124d3c17d0d93e83d26c00d7a176c02c42d73d1 +# Parent 0000000000000000000000000000000000000000 +add aloha + +diff --git a/����ϡ� b/����ϡ� +new file mode 100644
Show Entire File tests/​fixtures/​subdirs.diff Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tests/​hglib_encoding_test.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tests/​qt_manifestmodel_test.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tests/​wconfig_test.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File thg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​__init__.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​about.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​annotate.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​archive.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​backout.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​bisect.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​blockmatcher.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​bookmark.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​branchop.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​bugreport.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​chunks.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​clone.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​cmdui.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​commit.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​compress.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​csinfo.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​cslist.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​decorators.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​docklog.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​filedialogs.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​filelistmodel.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​filelistview.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​filerevmodel.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​fileview.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​graph.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​grep.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​guess.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​hgemail.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​hgemail.ui Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​hgignore.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​hginit.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​htmldelegate.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​htmlui.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​i18n.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​icons/​README Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Added image
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Added image
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Added image
Added image
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Added image
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Added image
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​icons/​log.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Added image
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Added image
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​icons/​repobrowse.svg Stacked
copied from icons/svg/repobrowse.svg
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Added image
This file's diff was not loaded because this changeset is very large. Load changes
Added image
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​icons/​status.svg Stacked
renamed from icons/svg/status.svg
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​icons/​tag.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​icons/​up.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​lexers.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​license.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​logcolumns.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​manifestmodel.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​merge.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​modeltest.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​p4pending.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​pathedit.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​pbranch.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​postreview.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​postreview.ui Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​purge.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​qdelete.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​qfold.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​qrename.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​qreorder.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​qscilib.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​qtlib.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​quickbar.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​quickop.py Stacked
copied from tortoisehg/hgtk/quickop.py
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​rebase.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​rename.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​repofilter.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​repomodel.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​reporegistry.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​repotreeitem.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​repotreemodel.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​repoview.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​repowidget.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​resolve.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​revdetails.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​revert.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​revpanel.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​revset.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​run.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​serve.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​serve.ui Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​settings.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​shellconf.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​shelve.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​status.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​sync.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​tag.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​thgimport.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​thgrepo.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​thgstrip.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​thread.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​update.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​visdiff.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​wctxactions.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​webconf.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​webconf.ui Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​workbench.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgqt/​workbench.qrc Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​datamine.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​util/​colormap.py Stacked
renamed from tortoisehg/hgtk/logview/colormap.py
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​util/​hglib.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​util/​hgshelve.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​util/​menuthg.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​util/​patchctx.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​util/​paths.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​util/​wconfig.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​config.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​docdiff.py Stacked
renamed from contrib/docdiff.py
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​hg.cmd Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​localtags Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​mercurial.rc Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​mergepatterns.rc Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​setup.cfg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​CShellExtCMenu.h Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​thg.cmd Stacked
This file's diff was not loaded because this changeset is very large. Load changes
 
 
This file's diff was not loaded because this changeset is very large. Load changes
Added image
Added image
Show Entire File win32/​wix/​cmenu-i18n.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​contrib.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​defines.wxi Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​dist.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​doc.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​guids.wxi Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​help.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​i18n.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​icons.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​locale.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​templates.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​thg-i18n.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​thg-locale.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​wix/​tortoisehg.wxs Stacked
This file's diff was not loaded because this changeset is very large. Load changes