Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 2.0.3, 2.0.4, and 2.0.5

stable Merge with hgtk

Changeset fcadbfb1d6bd

Parents ecbe2d08b7f9

Parents 5cf3e36d5c10

by Steve Borho

Changes to 410 files · Browse files at fcadbfb1d6bd Showing diff from parent ecbe2d08b7f9 5cf3e36d5c10 Diff from another changeset...

Change 1 of 1 Show Entire File .hgignore Stacked
 
38
39
40
 
 
 
 
38
39
40
41
42
43
@@ -38,3 +38,6 @@
 *~  tortoisehg/util/__version__.py  *.wixobj +tortoisehg/hgqt/*_rc.py +tortoisehg/hgqt/*_ui.py +thgw
Change 1 of 1 Show Entire File .hgtags Stacked
 
46
47
48
 
 
 
 
 
 
 
 
46
47
48
49
50
51
52
53
54
55
@@ -46,3 +46,10 @@
 edc8ec8b18a98abada33fb312e2c5cfb8e336eb4 1.1.8  065d9654030e19ba2c92a9c3616f37d2ab427caa 1.1.9  031e24094f5337ffdb4eee32f54773ecd5a1adc1 1.1.9.1 +653ff9fb4ccf16833bab58fbc765ff8829dc1265 1.9 +6f97499d3d53aaf4cc1ec3c626191b13eb3aed58 1.9.1 +dc23fbf831944fdf894cade250161131c11c9ce4 1.9.2 +36a2bd08a405438ec776ad506c71fe581b8ce0b5 1.9.3 +81a60ce2dba7178e834ac46b0c996bee38380e77 2.0 +ee531052f78b11dafe1d8c7ab9cfb95b4854be38 2.0.1 +5333ccf1184864720c1d3690df94fa47df80bf02 2.0.2
Change 1 of 1 Show Entire File CONTRIBUTING.txt Stacked
 
14
15
16
17
 
 
18
19
20
21
22
 
 
 
 
 
14
15
16
 
17
18
19
20
21
22
23
24
25
26
27
@@ -14,9 +14,14 @@
 application is still reasonably usable with the base library versions listed  below.   -PyGtk: 2.10 +PyQt: 4.7 +Qt: 4.6    === Python version ===    TortoiseHg needs to run on Python 2.4, to stay consistent with Mercurial  itself. + +Mercurial on Windows requires ctypes, which is included with Python 2.5 +and later releases. If you are using Python 2.4 on Windows, you must +install the ctypes back port.
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 INSTALL.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
 
 
1
2
 
 
 
 
 
 
 
 
 
 
 
3
4
5
6
7
8
9
 
 
10
11
 
 
 
 
 
12
@@ -1,25 +1,12 @@
 ** Please do not run setup.py **   -On Linux, the suggested methods for using TortoiseHg are to either -install a package built for your distribution, or run directly out of a -cloned repository. For details, see: - -http://bitbucket.org/tortoisehg/stable/wiki/download - -http://bitbucket.org/tortoisehg/stable/wiki/hgtk - -http://bitbucket.org/tortoisehg/stable/wiki/nautilus - -  On Windows, we prefer you use the more recent stable release, which  can always be found at http://tortoisehg.org   +On Linux, the suggested methods for using TortoiseHg are to either +install a package built for your distribution, or run directly out of a +cloned repository.   -If you ran setup.py and are now having troubles with icons, you have two -choices: +For source install details, see:   -1) Find the tortoisehg/util/config.py file that was installed and -manually edit it to fixup the paths. - -2) Delete the installation and use one of the preferred install methods. - +http://bitbucket.org/tortoisehg/thg/wiki/developers/Hacking
Change 1 of 1 Show Entire File MANIFEST.in Stacked
 
2
3
4
 
5
6
 
 
7
8
 
2
3
4
5
6
 
7
8
9
10
@@ -2,7 +2,9 @@
 include contrib/_hgtk  include contrib/nautilus-thg.py  include contrib/mergetools.rc +include contrib/tortoisehg.desktop  include COPYING.txt -recursive-include i18n *.po +include tortoisehg/hgqt/*.ui +recursive-include i18n *.po *.py  recursive-include doc *  recursive-exclude doc/build *
Change 1 of 1 Show Entire File ReleaseProcedure.txt Stacked
 
1
2
 
3
4
5
6
 
7
8
9
 
1
2
3
4
 
5
6
7
8
9
10
@@ -1,9 +1,10 @@
 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  * tag stable branch of repository, push +* update url in qtlib.openhelpcontents() (major release only)  * build pdf hgbook, check into thg-winbuild (major release only)  * build release installer  * commit extension versions, tag, push thg-winbuild
 
287
288
289
 
290
291
292
 
295
296
297
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
298
299
300
 
287
288
289
290
291
292
293
 
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
@@ -287,6 +287,7 @@
 def get_config():   show_taskbaricon = True   hgighlight_taskbaricon = True + version2cmenu = False   try:   from _winreg import HKEY_CURRENT_USER, OpenKey, QueryValueEx   hkey = OpenKey(HKEY_CURRENT_USER, r'Software\TortoiseHg') @@ -295,6 +296,24 @@
  except EnvironmentError: pass   try: hgighlight_taskbaricon = QueryValueEx(hkey, 'HighlightTaskbarIcon')[0] in t   except EnvironmentError: pass + + # Upgrade user's context menu, once per major release + try: version2cmenu = QueryValueEx(hkey, 'ContextMenuVersion')[0] == '2' + except EnvironmentError: pass + try: + if not version2cmenu: + from _winreg import CreateKey, SetValueEx, REG_SZ + try: promoted = QueryValueEx(hkey, 'PromotedItems')[0] + except EnvironmentError: promoted = '' + plist = [i.strip() for i in promoted.split(',')] + hkey = CreateKey(HKEY_CURRENT_USER, r'Software\TortoiseHg') + if u'log' in plist: + idx = plist.index(u'log') + plist[idx] = u'workbench' + SetValueEx(hkey, 'PromotedItems', 0, REG_SZ, ','.join(plist)) + SetValueEx(hkey, 'ContextMenuVersion', 0, REG_SZ, '2') + except EnvironmentError: + pass   except (ImportError, WindowsError):   pass   return (show_taskbaricon, hgighlight_taskbaricon)
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
16
17
18
 
25
26
27
 
28
29
30
 
37
38
39
 
40
41
 
42
43
44
 
46
47
48
 
49
50
51
 
58
59
60
 
61
62
63
 
68
69
70
 
71
72
73
 
76
77
78
 
79
80
81
 
83
84
85
 
86
87
88
 
148
149
150
 
 
 
 
 
 
 
 
 
 
 
 
 
1
 
2
3
4
5
 
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
 
44
45
46
47
48
49
50
 
57
58
59
60
61
 
62
63
64
65
 
67
68
69
70
71
72
73
 
80
81
82
83
84
85
86
 
91
92
93
94
95
96
97
 
100
101
102
103
104
105
106
 
108
109
110
111
112
113
114
 
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
@@ -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,9 +10,28 @@
 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 + +; The Araxis Merge tool is configured to work with newer versions of Araxis Merge +; if you are using Araxis Merge 2008 or later, create a [merge-tools] section +; in your mercurial.ini file, and add one of the two following "araxis.executable" +; lines, depending on whether you have installed a 32 or a 64 bit version +; of Araxis Merge and whether you are on a 32 or 64 bit version of windows +; +;araxis.executable=${ProgramFiles}/Araxis/Araxis Merge/ConsoleCompare.exe +;araxis.executable=${ProgramFiles(x86)}/Araxis/Araxis Merge/ConsoleCompare.exe +; +; Please remember to remove the leading ";" to uncomment the line +;  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  araxis.priority=-2  araxis.args=/3 /a2 /wait /merge /title1:"Parent 1" /title2:"Merge Result: "$output /title3:"Parent 2" $local $base $other $output  araxis.premerge=False @@ -25,6 +44,7 @@
 araxis.dir3diff=True    UltraCompare.regkey=Software\Microsoft\Windows\CurrentVersion\App Paths\UC.exe +UltraCompare.regkeyalt=Software\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\UC.exe  UltraCompare.args = $base $local $other -title1 base -title3 other  UltraCompare.priority = -2  UltraCompare.gui = True @@ -37,8 +57,9 @@
 kdiff3.priority=-3  kdiff3.args=--auto --L1 base --L2 parent1 --L3 parent2 $base $local $other -o $output  kdiff3.regkey=Software\KDiff3 +kdiff3.regkeyalt=Software\Wow6432Node\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 @@ -46,6 +67,7 @@
 kdiff3.dirdiff=True    diffmerge.regkey=Software\SourceGear\SourceGear DiffMerge\ +diffmerge.regkeyalt=Software\Wow6432Node\SourceGear\SourceGear DiffMerge\  diffmerge.regname=Location  diffmerge.priority=-7  diffmerge.args=-nosplash -merge -title1=local -title2=merged -title3=other $local $base $other -result=$output @@ -58,6 +80,7 @@
 p4merge.priority=-8  p4merge.args=$base $local $other $output  p4merge.regkey=Software\Perforce\Environment +p4merge.regkeyalt=Software\Wow6432Node\Perforce\Environment  p4merge.regname=P4INSTROOT  p4merge.regappend=\p4merge.exe  p4merge.gui=True @@ -68,6 +91,7 @@
 tortoisemerge.priority=-9  tortoisemerge.args=/base:$base /mine:$local /theirs:$other /merged:$output  tortoisemerge.regkey=Software\TortoiseSVN +tortoisemerge.regkeyalt=Software\Wow6432Node\TortoiseSVN  tortoisemerge.checkchanged=True  tortoisemerge.gui=True  tortoisemerge.diffargs=/base:$parent /mine:$child /basename:'$plabel1' /minename:'$clabel' @@ -76,6 +100,7 @@
 ecmerge.priority=-10  ecmerge.args=$base $local $other --mode=merge3 --title0=base --title1=local --title2=other --to=$output  ecmerge.regkey=Software\Elli\xc3\xa9 Computing\Merge +ecmerge.regkeyalt=Software\Wow6432Node\Elli\xc3\xa9 Computing\Merge  ecmerge.gui=True  ecmerge.diffargs=$parent $child --mode=diff2 --title1='$plabel1' --title2='$clabel'  ecmerge.diff3args=$child $parent1 $parent2 --mode=diff3 --title0='$clabel' --title1='$plabel1' --title2='$plabel2' @@ -83,6 +108,7 @@
 ecmerge.dir3diff=True    winmergeu.regkey=Software\Thingamahoochie\WinMerge\ +winmergeu.regkeyalt=Software\Wow6432Node\Thingamahoochie\WinMerge\  winmergeu.regname=Executable  winmergeu.priority=-10  winmergeu.args=/e /x /wl /ub /dl other /dr local $other $local $output @@ -148,3 +174,15 @@
 tkdiff.diffargs=-L '$plabel1' $parent -L '$clabel' $child  tkdiff.diff3args=  tkdiff.dirdiff=False + + +; Telelogic Rhapsody DiffMerge Tool +rhapsody_diffmerge.regkey=Software\Telelogic\Rhapsody\DiffMerge\ +rhapsody_diffmerge.regkeyalt=Software\Wow6432Node\Telelogic\Rhapsody\DiffMerge\ +rhapsody_diffmerge.regname=Install Path +rhapsody_diffmerge.priority=-110 +rhapsody_diffmerge.args=-xmerge $other $local -base $base -out $output +rhapsody_diffmerge.checkchanged=True +rhapsody_diffmerge.gui=True +rhapsody_diffmerge.diffargs=-xcompare $parent $child +rhapsody_diffmerge.diff3args=
 
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 = -;eol = -;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 = {C9044E0F-73AC-4F48-BD38-C9CF112DF5E7} ?> - <?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
213
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
@@ -1,213 +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.bookmarks.tmpl" Name="bookmarks.tmpl" /> - <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 3 Show Entire File doc/​Build.bat Stacked
 
2
3
4
5
 
 
 
 
6
7
8
 
27
28
29
 
 
30
31
32
 
66
67
68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
70
71
 
2
3
4
 
5
6
7
8
9
10
11
 
30
31
32
33
34
35
36
37
 
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
@@ -2,7 +2,10 @@
 setlocal    if not exist %hhc_compiler%. ( - set hhc_compiler="%ProgramFiles%\HTML Help Workshop\hhc.exe" + set hhc_compiler=hhc.exe +) +if not exist %qcollectiongenerator%. ( + set qcollectiongenerator=qcollectiongenerator.exe  )  set PDFLATEX=PdfLatex  set SPHINXBUILD=sphinx-build @@ -27,6 +30,8 @@
  echo. html to make standalone HTML files   echo. htmlhelp to make HTML files and a HTML help project   echo. chm to make CHM file + echo. qthelp to make HTML files and a qthelp project + echo. qhc to make QHC file   echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter   echo. pdf to make PDF file, you can set PAPER=a4 or PAPER=letter   echo. @@ -66,6 +71,25 @@
  goto end  )   +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %OUTPUTDIR%/qthelp + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %OUTPUTDIR%/qthelp, like this: + echo.^> qcollectiongenerator %OUTPUTDIR%\qthelp\foo.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %OUTPUTDIR%\qthelp\foo.ghc + goto end +) + +if "%1" == "qhc" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %OUTPUTDIR%/qthelp + %qcollectiongenerator% %OUTPUTDIR%/qthelp/TortoiseHg.qhcp + echo. + echo.Build finished. The QHC file is in %OUTPUTDIR%/qthelp. + goto end +) +  if "%1" == "latex" (   %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %OUTPUTDIR%/latex   echo.
Change 1 of 3 Show Entire File doc/​Makefile Stacked
 
6
7
8
 
 
9
10
11
12
13
14
 
15
16
17
 
19
20
21
 
 
22
23
24
 
56
57
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
60
61
 
6
7
8
9
10
11
12
13
14
15
 
16
17
18
19
 
21
22
23
24
25
26
27
28
 
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
@@ -6,12 +6,14 @@
 SPHINXBUILD = sphinx-build  PAPER =   +QCOLLECTIONGENERATOR = qcollectiongenerator +  # Internal variables.  PAPEROPT_a4 = -D latex_paper_size=a4  PAPEROPT_letter = -D latex_paper_size=letter  ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source   -.PHONY: help clean html web pickle htmlhelp latex changes linkcheck +.PHONY: help clean html web pickle htmlhelp qthelp qhc latex changes linkcheck    help:   @echo "Please use \`make <target>' where <target> is one of" @@ -19,6 +21,8 @@
  @echo " pickle to make pickle files"   @echo " json to make JSON files"   @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " qhc to make QHC file"   @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"   @echo " changes to make an overview over all changed/added/deprecated items"   @echo " linkcheck to check all external links for integrity" @@ -56,6 +60,21 @@
  @echo "Build finished; now you can run HTML Help Workshop with the" \   ".hhp project file in build/htmlhelp."   +qthelp: + mkdir -p build/qthelp build/doctrees + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in build/qthelp, like this:" + @echo "# qcollectiongenerator build/qthelp/foo.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile build/qthelp/foo.qhc" + +qhc: qthelp + $(QCOLLECTIONGENERATOR) build/qthelp/TortoiseHg.qhcp + @echo "Build finished. To view the help file:" + @echo "# assistant -collectionFile build/qthelp/TortoiseHg.qhc" +  latex:   mkdir -p build/latex build/doctrees   $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex
Change 1 of 2 Show Entire File doc/​ReadMe.txt Stacked
 
4
5
6
7
8
9
 
 
 
10
11
12
 
51
52
53
54
 
55
56
57
 
4
5
6
 
 
 
7
8
9
10
11
12
 
51
52
53
 
54
55
56
57
@@ -4,9 +4,9 @@
 is the python-sphinx package. On Windows your best bet is  easy_install. To build without warnings, you need sphinx 0.6 or later.   -To build PDF files you need latex packages. On Ubuntu this is -texlive-latex-extra and all of it's dependencies. On Windows the best -choice is miktex. +To build PDF files you need latex packages. On Ubuntu these are +texlive-latex-extra, texlive-fonts-recommended and all of their +dependencies. On Windows the best choice is miktex.    Once all of the prerequisites are in place, you can use the makefile to  build targets: html htmlhelp latex @@ -51,7 +51,7 @@
    :guilabel:`Commit`   -- To indicate a menu choise use :menuselection: and -->, for example: +- To indicate a menu choice use :menuselection: and -->, for example:     :menuselection:`TortoiseHg... --> About`  
Change 1 of 1 Show Entire File doc/​source/​archive.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
@@ -0,0 +1,62 @@
+Archiving +========= + +.. module:: archive.dialog + :synopsis: Dialog used to make an archive of a repository + +You can choose from quite a lot of formats to make an archive of a repository. +There are the usual compressed formats. But it's also possible to make a plain +folder of files in another place than the Working Directory (it's like a clone, +but without the .hg folder). Can be useful for doing builds for example (think +'svn export'). One can make an archive with only the files of the selected rev. +Some people seem to use this to send changes to external people that do not have +access to the repository. + +From the changelog context menu in the Workbench select +:menuselection:`Archive...` for the choosen changeset, or, +within the folder, type :command:`thg archive`. + +.. figure:: figures/archive.png + :alt: Archive dialog + + Repository Archive Dialog + +:guilabel:`Revision` + To select the revision you wish to archive or export. +:guilabel:`Only files modified/created in this revision` + To limit the number of files in the archive. +:guilabel:`Destination path` + The filename or directory where the archive will be created. It is filled + with the name of the current repository, suffixed with the revision number + of the selected revision, and has the appropriate extension of the selected + archive type. +:guilabel:`Archive types` + Here you can choose the type of archive to create, ranging from a plain + folder with files to a variety of standard archive type. +:guilabel:`Hg command` + This field displays the command that will be executed by the dialog. +:guilabel:`Always show output` + To have an logging output pane with the results of the command while it runs. + +Archiving a repository means create an archive file or subdirectory with the +contents of the selected revision. + +From command line +----------------- + +The archive tool can be started from command line :: + + thg archive + +The syntax is :: + + thg archive -r [REV] -t [TYPE] [DEST] + +where [REV] is the revision to archive, [TYPE] is the type of archive to create, +and [DEST] is the name of the file or filder to create. + +See `hg.1.html#archive <http://www.selenic.com/mercurial/hg.1.html#archive>`_ +for details, or type :command:`hg help archive` at the command line or in the +Output Log of the Workbench. + +.. vim: noet ts=4
 
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
 
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
@@ -6,53 +6,55 @@
   To clone a repository you have to run the clone dialog.  From the explorer context menu select :menuselection:`TortoiseHg... --> Clone a repository` -or type :command:`hgtk clone`. +or type :command:`thg clone`.    .. figure:: figures/clone.png   :alt: Clone dialog     Clone Dialog   -:guilabel:`Source Path` +:guilabel:`Source`   It is the path (or URL) of the repository that will be cloned. Use   the :guilabel:`Browse...` to choose a local folder. -:guilabel:`Destination Path` +:guilabel:`Destination`   It is the path of destination directory, a folder with the same name   of source repository will be created within this directory.   -Under the :guilabel:`Advanced options` expander you will find: +Under the :guilabel:`Options` expander you will find:    :guilabel:`Clone To Revision`   You can limit the clone up to this revision. Even the tags created   after this revision will not be imported. -:guilabel:`do not update the new working directory` +:guilabel:`Do not update the new working directory`   If checked, after the clone the working directory will be empty. It   is useful when you have to clone a repository with the purpose of   central repository, or backup, where you have only, in the future,   to *push* and *pull*. -:guilabel:`use pull protocol to copy metadata` +:guilabel:`Use pull protocol to copy metadata`   When the source and destination are on the same filesystem,   Mercurial tries to use hardlinks. Some filesystems, such as AFS   implement hardlink incorrectly, but do not report errors. Use this   option to avoid hardlinks. -:guilabel:`use uncompressed transfer` +:guilabel:`Use uncompressed transfer`   To use uncompressed transfer (fast over LAN). -:guilabel:`use proxy server` +:guilabel:`Include patch queue` + To also clone an MQ patch repository along with the main repository. +:guilabel:`Use proxy server`   To use the proxy server configured in :menuselection:`TortoiseHg... --> Global Settings --> Proxy`.   This is enabled only if a proxy is configured. -:guilabel:`Remote Cmd` - Specify a Mercurial command to run on the remote side. +:guilabel:`Remote command` + Specify a Mercurial command to run on the remote side.    From command line  -----------------    The clone tool can be started from command line ::   - hgtk clone + thg clone    The syntax is ::   - hgtk clone [SOURCE] [DEST] + thg clone [SOURCE] [DEST]    where [SOURCE] and [DEST] are, the paths of source repository and destination folder.  
Show Entire File doc/​source/​commit.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
 
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
 
42
43
44
45
 
46
47
48
49
50
51
52
 
53
54
 
55
56
57
 
42
43
44
 
45
46
47
48
49
50
51
 
52
53
 
54
55
56
57
@@ -42,16 +42,16 @@
   # General information about the project.  project = u'TortoiseHg' -copyright = u'2010, Steve Borho and others' +copyright = u'2011, Steve Borho and others'    # The version info for the project you're documenting, acts as replacement for  # |version| and |release|, also used in various other places throughout the  # built documents.  #  # The short X.Y version. -version = '1.1' +version = '2.0'  # The full version, including alpha/beta/rc tags. -release = '1.1.9' +release = '2.0.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
19
 
20
21
 
7
8
9
10
11
12
13
14
15
 
 
 
16
17
18
19
20
21
22
@@ -7,15 +7,16 @@
    common   explorer + nautilus + workbench   init   clone   commit   shelve - changelog - datamine - synchronize + sync   serve   guess   ignore + archive    .. vim: noet ts=4
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
 
16
17
18
19
 
20
21
 
22
23
24
 
30
31
32
33
 
34
35
36
 
39
40
41
42
 
43
44
45
 
16
17
18
 
19
20
 
21
22
23
24
 
30
31
32
 
33
34
35
36
 
39
40
41
 
42
43
44
45
@@ -16,9 +16,9 @@
   If you have a bit of Python knowledge, you can also use::   - hgtk --debugger <command> + thg --debugger <command>   -To disable the forking behavior of hgtk, you can either set an +To disable the forking behavior of thg, you can either set an  environment variable **THG_HGTK_SPAWN**, or add the command line  parameter '--nofork'.   @@ -30,7 +30,7 @@
 into a :command:`cmd.exe` window, while inside the repository::     set THGDEBUG=1 - hgtk --nofork log + thg --nofork log    Linux/MacOSX  ~~~~~~~~~~~~ @@ -39,7 +39,7 @@
 into your shell window, while inside the repository::     export THGDEBUG=1 - hgtk --nofork log + thg --nofork log      
Show Entire File doc/​source/​explorer.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​extensions.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​faq.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Added image
doc/​source/​figures/​clone.png
size changed from 541x167 to 527x189
Removed image
Added image
Removed image
Added image
Added image
doc/​source/​figures/​commit.png
size changed from 830x560 to 938x587
mode changed from RGB to RGBA
Removed image
Added image
Added image
Added image
Added image
doc/​source/​figures/​email.png
size changed from 666x486 to 590x544
Removed image
Added image
Added image
Added image
doc/​source/​figures/​guess.png
renamed from doc/source/figures/guess.jpg
Removed image
Added image
doc/​source/​figures/​ignore.jpg
size changed from 444x388 to 562x466
Removed image
Added image
doc/​source/​figures/​import.png
size changed from 516x426 to 504x453
mode changed from RGB to RGBA
Removed image
Added image
doc/​source/​figures/​init.png
size changed from 419x150 to 546x239
Removed image
Added image
Added image
Added image
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​patchqueue.png
size changed from 462x249 to 695x266
mode changed from RGB to RGBA
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​serve.png
size changed from 516x336 to 516x438
mode changed from RGB to RGBA
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​settings.png
size changed from 592x536 to 677x712
mode changed from RGB to RGBA
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​share.png
size changed from 538x165 to 527x189
mode changed from RGB to RGBA
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​shell-config-cmenu.png
size changed from 421x343 to 631x440
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​shell-config-icons.png
size changed from 421x343 to 631x440
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​shelve.png
size changed from 830x528 to 805x541
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
doc/​source/​figures/​synchronize.png
size changed from 671x528 to 741x299
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
Show Entire File doc/​source/​guess.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​ignore.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​index.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​init.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​intro.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​nautilus.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​nonhg.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​patches.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​preface.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​quick.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​recovery.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​serve.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File doc/​source/​settings.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
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/​sync.txt Stacked
renamed from doc/source/synchronize.txt
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
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File hgtk Stacked
(No changes)
Show Entire File i18n/​__init__.py Stacked
(No changes)
Show Entire File i18n/​msgfmt.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​ca.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​cs.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​da.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​de.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​en_AU.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​en_GB.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​es.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​et.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​fa.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​fr.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​he.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​hr.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​hu.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​it.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​ja.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​ko.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​nb.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​nl.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​nn.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​oc.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​pl.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​pt.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​pt_BR.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​ru.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​sv.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​tr.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​uk.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​zh_CN.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File i18n/​tortoisehg/​zh_TW.po Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
Show Entire File icons/​README.txt Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
Show Entire File icons/​fallback.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this 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
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
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​scalable/​actions/​hg-grep.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
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​scalable/​actions/​hg-init.svg Stacked
copied from icons/svg/init.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
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
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 icons/​scalable/​actions/​hg-remove.svg Stacked
copied from icons/svg/remove.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
Show Entire File icons/​scalable/​actions/​hg-revert.svg Stacked
renamed from icons/svg/revert.svg
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​scalable/​actions/​hg-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
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
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
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
Show Entire File icons/​scalable/​apps/​thg-logo.svg Stacked
copied from icons/svg/thg_logo.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
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 icons/​svg/​add.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​svg/​checkout.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​svg/​clone.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​svg/​commit.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​svg/​init.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
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/​recovery.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​svg/​remove.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​svg/​repobrowse.svg Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File icons/​svg/​sync.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
Show Entire File tests/​fixtures/​euc-jp-path.diff Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tests/​fixtures/​reporegistry.xml Stacked
This file's diff was not loaded because this changeset is very large. Load changes
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/​qt_repotreemodel_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
Change 1 of 1 Show Entire File tortoisehg/​hgqt/​__init__.py Stacked
 
 
 
 
1
2
@@ -0,0 +1,2 @@
+# load icon resources +import icons_rc
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/​dnd.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
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/​mq.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/​qqueue.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/​rejects.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/​hgtk/​datamine.py Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File tortoisehg/​hgtk/​shellconf.py Stacked
(No 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/​hgversion.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/​version.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
Change 1 of 1 Show Entire File win32/​localtags Stacked
 
 
 
1
@@ -0,0 +1,1 @@
+275690997c5f2ace0476775b3b59fe50b639d3de 0.9.2-1
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/​shellext/​CShellExtDnd.cpp Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​CShellExtDnd.h Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​Makefile.nmake Stacked
This file's diff was not loaded because this changeset is very large. Load changes
Show Entire File win32/​shellext/​ShellExt.cpp 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/​ThgCLSIDs.h 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 image was not loaded automatically because this changeset is very large. Click to load this image...
This image was not loaded automatically because this changeset is very large. Click to load this 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