Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.0, 1.0.1, and 1.0.2

iss: switch to hgrc.d directory for storing hgrc files

This is mandated by f5eacdad4a18

Changeset 6c12eb970ba7

Parent 907fa144d8a2

by Steve Borho

Changes to one file · Browse files at 6c12eb970ba7 Showing diff from parent 907fa144d8a2 Diff from another changeset...

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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
 ; Script generated by the Inno Setup Script Wizard.  ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!    #ifndef VERSION  #define VERSION "snapshot"  #endif    [Setup]  AppCopyright=Copyright 2008-2010 Steve Borho and others  AppName=TortoiseHg  AppVerName=TortoiseHg {#VERSION}  InfoAfterFile=contrib/win32/postinstall.txt  LicenseFile=COPYING.txt  ShowLanguageDialog=yes  AppPublisher=Steve Borho and others  AppPublisherURL=http://tortoisehg.org/  AppSupportURL=http://tortoisehg.org/  AppUpdatesURL=http://tortoisehg.org/  AppID=TortoiseHg  AppContact=Steve Borho <steve@borho.org>  OutputBaseFilename=TortoiseHg-{#VERSION}  DefaultDirName={pf}\TortoiseHg  SourceDir=..\..  VersionInfoDescription=TortoiseHg (with Mercurial)  VersionInfoCopyright=Copyright 2008-2010 Steve Borho and others  VersionInfoCompany=Steve Borho and others  InternalCompressLevel=max  SolidCompression=true  SetupIconFile=icons\thg_logo.ico  UninstallDisplayIcon={app}\thg_logo.ico  WizardImageFile=..\misc\install-wizard.bmp  WizardImageStretch=no  WizardImageBackColor=$ffffff  WizardSmallImageFile=..\misc\install-wizard-small.bmp  AllowNoIcons=true  DefaultGroupName=TortoiseHg  PrivilegesRequired=poweruser  AlwaysRestart=no  SetupLogging=yes  ArchitecturesInstallIn64BitMode=x64    [Types]  Name: full; Description: Full installation  Name: custom; Description: Custom installation; Flags: iscustom    [Components]  Name: main; Description: Main Files (includes 'hg' and 'hgtk' commands); Types: full custom; Flags: fixed  Name: help; Description: Help Files; Types: full  Name: hgbook; Description: The book 'Mercurial: The Definitive Guide' (PDF); Types: full  Name: shell; Description: Shell integration (overlay icons, context menu) [admin required]; Types: full; Flags: restart; Check: ShellInstallPossible    [Files]  Source: ..\build-hg\mercurial\help\*.txt; DestDir: {app}\help  Source: ..\build-hg\mercurial\templates\*.*; DestDir: {app}\templates; Flags: recursesubdirs createallsubdirs  Source: ..\build-hg\mercurial\locale\*.*; DestDir: {app}\locale; Flags: recursesubdirs createallsubdirs  Source: ..\build-hg\contrib\xml.rnc; DestDir: {app}/contrib  Source: ..\build-hg\i18n\*.*; DestDir: {app}\i18n  Source: ..\build-hg\doc\*.html; DestDir: {app}\docs; Flags: ignoreversion; Components: help  Source: ..\build-hg\doc\style.css; DestDir: {app}\docs; Flags: ignoreversion; Components: help  Source: {app}\Mercurial.ini; DestDir: {app}\backup; Flags: external skipifsourcedoesntexist uninsneveruninstall -Source: contrib\win32\mercurial.ini; DestDir: {app}; DestName: Mercurial.ini -Source: contrib\win32\mergepatterns.ini; DestDir: {app} -Source: contrib\mergetools.ini; DestDir: {app} +Source: contrib\win32\mercurial.ini; DestDir: {app}\hgrc.d; DestName: Mercurial.rc +Source: contrib\win32\mergepatterns.ini; DestDir: {app}\hgrc.d; DestName: MergePatterns.rc +Source: contrib\mergetools.ini; DestDir: {app}\hgrc.d; DestName: MergeTools.rc  Source: contrib\win32\mercurialuser.ini; DestDir: {%USERPROFILE}; DestName: Mercurial.ini; AfterInstall: FileExpandStringEx('{%USERPROFILE}\Mercurial.ini'); Flags: onlyifdoesntexist  Source: ReleaseNotes.txt; DestDir: {app}; DestName: ReleaseNotes.txt  Source: ..\extension-versions.txt; DestDir: {app}/contrib  Source: ..\contrib\*.exe; DestDir: {app}  Source: ..\contrib\*.dll; DestDir: {app}  Source: ..\contrib\TortoiseOverlays\*.*; DestDir: {app}/TortoiseOverlays  Source: contrib\refreshicons.cmd; DestDir: {app}/contrib  Source: dist\*.exe; Excludes: thgtaskbar.exe; DestDir: {app}; Flags: ignoreversion  Source: dist\thgtaskbar.exe; DestDir: {app}; Flags: ignoreversion; Components: shell  Source: dist\*.dll; DestDir: {app}; Flags: ignoreversion  Source: dist\library.zip; DestDir: {app}  Source: doc\build\pdf\*.pdf; DestDir: {app}/docs; Flags: ignoreversion; Components: help  Source: doc\build\chm\*.chm; DestDir: {app}/docs; Flags: ignoreversion; Components: help  Source: icons\*; DestDir: {app}\icons; Flags: ignoreversion recursesubdirs createallsubdirs  Source: dist\gtk\*; DestDir: {app}\gtk; Flags: ignoreversion recursesubdirs createallsubdirs  Source: locale\*.*; DestDir: {app}\locale; Flags: recursesubdirs createallsubdirs  Source: i18n\*.*; DestDir: {app}\i18n; Flags: recursesubdirs createallsubdirs  Source: win32\*.reg; DestDir: {app}\cmenu_i18n  Source: COPYING.txt; DestDir: {app}; DestName: Copying.txt  Source: icons\thg_logo.ico; DestDir: {app}  Source: ..\contrib\diff-scripts\*.*; DestDir: {app}\diff-scripts  Source: ..\misc\hgbook.pdf; DestDir: {app}/docs; Flags: ignoreversion; Components: hgbook  Source: ..\misc\ThgShellx86.dll; DestDir: {app}; DestName: ThgShell.dll; Check: not Is64BitInstallMode; Flags: ignoreversion restartreplace uninsrestartdelete; Components: shell  Source: ..\misc\ThgShellx86.dll; DestDir: {app}; DestName: ThgShellx86.dll; Check: Is64BitInstallMode; Flags: ignoreversion restartreplace uninsrestartdelete; Components: shell  Source: ..\misc\ThgShellx64.dll; DestDir: {app}; DestName: ThgShell.dll; Check: Is64BitInstallMode; Flags: ignoreversion restartreplace uninsrestartdelete; Components: shell    [INI]  Filename: {app}\Mercurial.url; Section: InternetShortcut; Key: URL; String: http://mercurial.selenic.com/  Filename: {app}\TortoiseHg.url; Section: InternetShortcut; Key: URL; String: http://tortoisehg.org/    [Icons]  Name: {group}\Start Taskbar App; Filename: {app}\thgtaskbar.exe; Components: shell  Name: {group}\TortoiseHg Book (chm); Filename: {app}\docs\TortoiseHg.chm; Components: help  Name: {group}\TortoiseHg Book (pdf); Filename: {app}\docs\TortoiseHg.pdf; Components: help  Name: {group}\TortoiseHg Web Site; Filename: {app}\TortoiseHg.url  Name: {group}\Mercurial Book; Filename: {app}\docs\hgbook.pdf; Components: hgbook  Name: {group}\Mercurial Command Reference; Filename: {app}\docs\hg.1.html; Components: help  Name: {group}\Mercurial Config Reference; Filename: {app}\docs\hgrc.5.html; Components: help  Name: {group}\Mercurial Web Site; Filename: {app}\Mercurial.url  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.10.17694-win32.msi"" /qn /norestart ALLUSERS=1"; Components: shell; StatusMsg: Installing TortoiseOverlays.dll ...  Filename: msiexec.exe; Parameters: "/i ""{app}\TortoiseOverlays\TortoiseOverlays-1.0.10.17694-x64.msi"" /qn /norestart ALLUSERS=1"; Check: Is64BitInstallMode; Components: shell; StatusMsg: Installing TortoiseOverlays.dll ...    [UninstallRun]  Filename: {app}\add_path.exe; Parameters: /del {app}    [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]  const   wm_Close = $0010;    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 IsUpgrade: Boolean;    function InitializeSetup(): Boolean;  var   ThgSwReg: String;   msg: String;   CRLF: String;  begin   CRLF := Chr(10) + Chr(13);   Result := True;     {abort installation if TortoiseHg 0.7 or earlier is installed}   if RegQueryStringValue(HKLM, 'Software\TortoiseHg', '', ThgSwReg) then   begin   IsUpgrade := True;   {hgproc was removed after 0.7, so it's a good guess}   if (FileExists(ThgSwReg + '\hgproc.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 versions of TortoiseHg and TortoiseOverlays,' + CRLF +   'then run the installer again to continue.';   MsgBox(msg, mbError, MB_OK);   Result := False; {quit and abort installation}   end;   end;  end;    var UserInfoPage: TInputQueryWizardPage;  var GetUserName: Boolean;    procedure InitializeWizard();  begin   if (not(FileExists(ExpandConstant('{%USERPROFILE}\Mercurial.ini')))) then   begin   // Create the page   UserInfoPage := CreateInputQueryPage(wpUserInfo,   'Personal Information', 'Who are you?',   'Please specify your name and email address, then click Next.');     // Add items (False means it's not a password edit)   UserInfoPage.Add('Full Name:', False);   UserInfoPage.Add('Email address:', False);     // Set initial values (optional)   UserInfoPage.Values[0] := ExpandConstant('{username}');   GetUserName := True;   end   else   GetUserName := False;  end;    procedure FileExpandStringEx(fn: String);  var   InFile: String;   i: Integer;   InFileLines: TArrayOfString;  begin   if (GetUserName) then   begin   InFile := ExpandConstant(fn);   LoadStringsFromFile(InFile, InFileLines);   for i:= 0 to GetArrayLength(InFileLines)-1 do   begin   InFileLines[i] := ExpandConstantEx(InFileLines[i],   'hgusername',   UserInfoPage.Values[0] + ' <' + UserInfoPage.Values[1] + '>');   end;   SaveStringsToFile(InFile, InFileLines, False);   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;    function TerminateThgTaskbar(): Boolean;  var   TaskbarWindow: HWND;   TaskbarMutex: String;   tries: Integer;  begin   { Terminate thgtaskbar.exe if it is running. Returns True, if successful }   TaskbarMutex := 'thgtaskbar,Global\thgtaskbar';   tries := 0;   while (tries < 4) and CheckForMutexes(TaskbarMutex) do begin   TaskbarWindow := FindWindowByWindowName('TortoiseHg Overlay Icon Server');   if TaskbarWindow <> 0 then   SendMessage(TaskbarWindow, wm_Close, 0, 0);   TaskbarWindow := FindWindowByWindowName('TortoiseHg RPC server');   if TaskbarWindow <> 0 then   SendMessage(TaskbarWindow, wm_Close, 0, 0);   Sleep(3000 { ms });   tries := tries + 1;   end;   Result := not CheckForMutexes(TaskbarMutex);  end;    function PrepareToInstall: String;  begin   if TerminateThgTaskbar() then   Result := ''   else   Result := 'The installer failed to shut down thgtaskbar.exe, and will now close.';  end;    procedure CurUninstallStepChanged(step: TUninstallStep);  begin   if step = usAppMutexCheck then   TerminateThgTaskbar();  end;    function ShellInstallPossible(): Boolean;  begin   if not IsAdminLoggedOn then begin   SuppressibleMsgBox(   'The shell integration install option (overlay icons, context menu) is unavailable (Administrator required)',   mbInformation, MB_OK, 0   );   Result := False;   end else Result := True;  end;    #include "registry.iss"