Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.8, 0.8.1, and 0.8.2

setup: add ini and iss files

Changeset 6cc0f3dbb34a

Parent ad5dfd632118

by Steve Borho

Changes to 2 files · Browse files at 6cc0f3dbb34a Showing diff from parent ad5dfd632118 Diff from another changeset...

Change 1 of 1 Show Entire File contrib/​win32/​mercurial.ini 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
@@ -0,0 +1,175 @@
+; System-wide Mercurial config file. + +[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 = "{app}\TortoisePlink.exe" -ssh -2 +;ssh = C:\cygwin\bin\ssh + +[merge-tools] +kdiff3.priority=-1 +kdiff3.args=-L1 base --L2 local --L3 other $base $local $other -o $output +kdiff3.regkey=Software\KDiff3 +kdiff3.regappend=\kdiff3.exe +kdiff3.fixeol=True +kdiff3.gui=True +beyondcompare3.priority=-2 +beyondcompare3.args=$local $other $base $output /ro /lefttitle=local /centertitle=base /righttitle=other /automerge /reviewconflicts /solo +beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3 +beyondcompare3.regname=ExePath +beyondcompare3.gui=True +diffmerge.priority=-7 +diffmerge.args=--nosplash --merge --title1=base --title2=local --title3=other $base $local $other +diffmerge.checkchanged=True +diffmerge.gui=True +p4merge.priority=-8 +p4merge.args=$base $local $other $output +p4merge.regkey=Software\Perforce\Environment +p4merge.regname=P4INSTROOT +p4merge.regappend=\p4merge.exe +p4merge.gui=True +tortoisemerge.priority=-9 +tortoisemerge.args=/base:$output /mine:$local /theirs:$other /merged:$output +tortoisemerge.regkey=Software\TortoiseSVN +tortoisemerge.gui=True +winmergeu.regkey=Software\Thingamahoochie\WinMerge\ +winmergeu.regname=Executable +winmergeu.priority=-10 +winmergeu.args=/e /ub /dl other /dr local $other $local $output +winmergeu.fixeol=True +winmergeu.gui=True + +; +; 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 = +;alias = +;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 = +;purge = +;rebase = +;record = +;transplant = +;win32mbcs = +;win32text = +;zeroconf = +; +; extra extensions provided by TortoiseHg +; +;qct = +;forest = + +; To use cleverencode/cleverdecode, you must enable win32text extension +; +; By default, we try to encode and decode all files that do not +; contain ASCII NUL characters. What this means is that we try to set +; line endings to Windows style on update, and to Unix style on +; commit. This lets us cooperate with Linux and Unix users, so +; everybody sees files with their native line endings. + +[encode] +; Encode files that don't contain NUL characters. + +; ** = cleverencode: + +; Alternatively, you can explicitly specify each file extension that +; you want encoded (any you omit will be left untouched), like this: + +; *.txt = dumbencode: + + +[decode] +; Decode files that don't contain NUL characters. + +; ** = cleverdecode: + +; Alternatively, you can explicitly specify each file extension that +; you want decoded (any you omit will be left untouched), like this: + +; **.txt = dumbdecode: + + +; +; Define external diff commands +; +[extdiff] +cmd.vdiff = {app}\kdiff3 +;cmd.vdiff = C:\Progra~1\TortoiseSVN\bin\TortoiseMerge.exe +;cmd.vimdiff = gvim.exe +;opts.vimdiff = -f '+next' '+execute "DirDiff ".argv(0)." ".argv(1)' + +[qct] +;See http://bitbucket.org/tortoisehg/stable/wiki/FAQ for details +;path="C:\Program Files\qct\qct.exe" + +[hgk] +;See http://bitbucket.org/tortoisehg/stable/wiki/FAQ for details +;path={app}\scripts\hgk.cmd +;vdiff=vdiff + +; +; 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 + +; +; Some optional defaults +; +[defaults] +;view = --limit 100 +;log = --limit 100 +;revert = --no-backup +;log = --style=changelog + +; +; 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
Change 1 of 1 Show Entire File contrib/​win32/​mercurial.iss 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
214
@@ -0,0 +1,214 @@
+; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +[Setup] +AppCopyright=Copyright 2005-2009 Matt Mackall and others +AppName=TortoiseHg +AppVerName=TortoiseHg-0.7 +InfoAfterFile=contrib/win32/postinstall.txt +LicenseFile=COPYING.txt +ShowLanguageDialog=yes +AppPublisher=TK Soh and others +AppPublisherURL=http://bitbucket.org/tortoisehg/stable/ +AppSupportURL=http://bitbucket.org/tortoisehg/stable/ +AppUpdatesURL=http://bitbucket.org/tortoisehg/stable/ +AppID=TortoiseHg +AppContact=teekaysoh@gmail.com +OutputBaseFilename=TortoiseHg-0.7 +DefaultDirName={pf}\TortoiseHg +SourceDir=..\.. +VersionInfoDescription=Mercurial distributed SCM +VersionInfoCopyright=Copyright 2005-2009 Matt Mackall and others +VersionInfoCompany=Matt Mackall and others +InternalCompressLevel=max +SolidCompression=true +SetupIconFile=..\icons\hgicon.ico +UninstallDisplayIcon={app}\hgicon.ico +WizardImageFile=..\icons\install-wizard.bmp +WizardImageStretch=no +WizardImageBackColor=$ffffff +WizardSmallImageFile=..\icons\install-wizard-small.bmp +AllowNoIcons=true +DefaultGroupName=TortoiseHg +PrivilegesRequired=poweruser +AlwaysRestart=yes +SetupLogging=yes + +[Files] +Source: contrib\mercurial.el; DestDir: {app}/contrib +Source: contrib\vim\*.*; DestDir: {app}/contrib/Vim +Source: contrib\zsh_completion; DestDir: {app}/contrib +Source: contrib\hgk; DestDir: {app}/contrib +Source: contrib\win32\ReadMe.html; DestDir: {app}; Flags: isreadme +Source: {app}\Mercurial.ini; DestDir: {app}\backup; Flags: external skipifsourcedoesntexist uninsneveruninstall +Source: contrib\win32\mercurial.ini; DestDir: {app}; DestName: Mercurial.ini; AfterInstall: FileExpandString('{app}\Mercurial.ini') +Source: ..\stable.snap; DestDir: {app}; DestName: ReleaseNotes.txt +Source: ..\contrib\*.exe; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete +Source: ..\contrib\TortoiseOverlays\*.*; DestDir: {app}/TortoiseOverlays; +Source: dist\*.exe; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete +Source: dist\*.dll; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete +Source: dist\*.pyd; DestDir: {app}; Flags: ignoreversion restartreplace uninsrestartdelete +Source: dist\library.zip; DestDir: {app} +Source: doc\*.html; DestDir: {app}\docs +Source: icons\*; DestDir: {app}\icons; Flags: ignoreversion recursesubdirs createallsubdirs +Source: dist\share\*; DestDir: {app}\share; Flags: ignoreversion recursesubdirs createallsubdirs +Source: dist\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs +Source: dist\etc\*; DestDir: {app}\etc; Flags: ignoreversion recursesubdirs createallsubdirs +Source: templates\*.*; DestDir: {app}\templates; Flags: recursesubdirs createallsubdirs +Source: locale\*.*; DestDir: {app}\locale; Flags: recursesubdirs createallsubdirs +Source: i18n\*.*; DestDir: {app}\i18n; Flags: +Source: CONTRIBUTORS; DestDir: {app}; DestName: Contributors.txt +Source: COPYING.txt; DestDir: {app}; DestName: Copying.txt +Source: ..\icons\hgicon.ico; DestDir: {app} +Source: ..\files\gtkrc; DestDir: {app}\etc\gtk-2.0; AfterInstall: EditOptions() + +[INI] +Filename: {app}\Mercurial.url; Section: InternetShortcut; Key: URL; String: http://www.selenic.com/mercurial/ +Filename: {app}\TortoiseHg.url; Section: InternetShortcut; Key: URL; String: http://bitbucket.org/tortoisehg/stable/ + +[Icons] +Name: {group}\TortoiseHg Web Site; Filename: {app}\TortoiseHg.url +Name: {group}\Mercurial Web Site; Filename: {app}\Mercurial.url +Name: {group}\Mercurial Command Reference; Filename: {app}\docs\hg.1.html +Name: {group}\Python Trace Collector; Filename: {app}\tracelog.exe +Name: {group}\Uninstall TortoiseHg; Filename: {uninstallexe} + +[Run] +Filename: {app}\add_path.exe; Parameters: {app}; StatusMsg: Adding the installation path to the search path... +Filename: msiexec.exe; Parameters: "/i ""{app}\TortoiseOverlays\TortoiseOverlays-1.0.4.11886-win32.msi"" /qn /norestart ALLUSERS=1"; StatusMsg: Installing TortoiseOverlays.dll ... +Filename: regsvr32.exe; Parameters: "/s ""{app}\tortoisehg.dll"""; StatusMsg: Installing shell extension... + +[UninstallRun] +Filename: {app}\add_path.exe; Parameters: /del {app} +Filename: regsvr32.exe; Parameters: "/s /u ""{app}\tortoisehg.dll""" + +[UninstallDelete] +Type: files; Name: {app}\Mercurial.url +Type: files; Name: {app}\TortoiseHg.url + +[Registry] +Root: HKLM; Subkey: Software\TortoiseHg; Flags: uninsdeletekey; ValueData: {app} +Root: HKLM; Subkey: Software\Mercurial; Flags: uninsdeletekey; ValueData: {app}\Mercurial.ini + +[Code] +procedure FileExpandString(fn: String); +var + InFile: String; + i: Integer; + InFileLines: TArrayOfString; +begin + InFile := ExpandConstant(fn); + LoadStringsFromFile(InFile, InFileLines); + for i:= 0 to GetArrayLength(InFileLines)-1 do + InFileLines[i] := ExpandConstant(InFileLines[i]); + SaveStringsToFile(InFile, InFileLines, False); +end; + +var ThemePage: TInputOptionWizardPage; +var IsUpgrade: Boolean; + +procedure InitializeWizard; +begin + ThemePage := CreateInputOptionPage(wpSelectComponents, + 'Theme Selection', '', + 'Please select a theme, then click Next.', + True, False); + ThemePage.Add('Neutrino (recommended, especially on Vista)'); + ThemePage.Add('Brushed'); + ThemePage.Add('Blue-Steel'); + ThemePage.Add('MS-Windows (original)'); + + case GetPreviousData('Theme', '') of + 'Neutrino': ThemePage.SelectedValueIndex := 0; + 'Brushed': ThemePage.SelectedValueIndex := 1; + 'Blue-Steel': ThemePage.SelectedValueIndex := 2; + 'MS-Windows': ThemePage.SelectedValueIndex := 3; + else + ThemePage.SelectedValueIndex := 0; + end; +end; + +procedure RegisterPreviousData(PreviousDataKey: Integer); +var + Theme: String; +begin + { Store the settings so we can restore them next time } + case ThemePage.SelectedValueIndex of + 0: Theme := 'Neutrino'; + 1: Theme := 'Brushed'; + 2: Theme := 'Blue-Steel'; + 3: Theme := 'MS-Windows'; + end; + SetPreviousData(PreviousDataKey, 'Theme', Theme); +end; + +procedure SetCommentMarker(var lines: TArrayOfString; option: String; selected: boolean); +var + i : integer; +begin + if selected then exit; + for i := 0 to pred(GetArrayLength(lines)) do + if pos(option, lines[i]) > 0 then + begin + lines[i][1] := '#'; + end; +end; + +procedure EditOptions(); +var + lines : TArrayOfString; + filename : String; +begin + filename := ExpandConstant(CurrentFilename); + LoadStringsFromFile(filename, lines); + + SetCommentMarker(lines, 'gtk-theme-name = "Neutrino"', ThemePage.SelectedValueIndex = 0); + SetCommentMarker(lines, 'gtk-theme-name = "Brushed"', ThemePage.SelectedValueIndex = 1); + SetCommentMarker(lines, 'gtk-theme-name = "Blue-Steel"', ThemePage.SelectedValueIndex = 2); + SetCommentMarker(lines, 'gtk-theme-name = "MS-Windows"', ThemePage.SelectedValueIndex = 3); + + SaveStringsToFile(filename, lines, False); +end; + +function InitializeSetup(): Boolean; +var + ThgSwReg: String; + CRLF: String; + msg: String; +begin + CRLF := chr(10) + chr(13); + Result := True; + + {abort installation if TortoiseHg 0.4 or earlier is installed} + if RegQueryStringValue(HKLM, 'Software\TortoiseHg', '', ThgSwReg) then + begin + IsUpgrade := True; + {gpyfm was unbundled after 0.4, so it's a good guess} + if (FileExists(ThgSwReg + '\gpyfm.exe')) then + begin + msg := 'TortoiseHg Setup Error:' + CRLF + CRLF + + 'The version of TortoiseHg installed is too old to upgrade in place.' + CRLF + + 'You must uninstall it before installing this version.' + CRLF + CRLF + + 'Please uninstall the existing version, then run the installer again ' + + 'to continue.'; + MsgBox(msg, mbError, MB_OK); + Result := False; {quit and abort installation} + end else begin + msg := 'Your current site-wide Mercurial.ini will be copied into' + CRLF + + ThgSwReg + '\backup' + CRLF + + 'After install you may merge changes back into the new Mercurial.ini' + MsgBox(msg, mbInformation, MB_OK); + end; + end; +end; + +function ShouldSkipPage(PageID: Integer): Boolean; +begin + { Skip wpSelectDir page if upgrading; show all others } + case PageID of + wpSelectDir: + Result := IsUpgrade; + else + Result := False; + end; +end;