annotate contrib/win32/mercurial.ini @ 43623:94eac340d212

packaging: stage files and dynamically generate WiX installer Like we did for Inno, we want to make the WiX installer "dumb" and simply consume source files from a directory tree rather than have to define every single file in installer files. This will greatly decrease the amount of effort required to maintain the WiX installer since we don't have to think that much about keeping files in sync. This commit changes the WiX packager to populate a staging directory as part of packaging. After it does so, it scans that directory and dynamically generates WiX XML defining the content within. The IDs and GUIDs being generated are deterministic. So, upgrades should work as expected in Windows Installer land. (WiX has a "heat" tool that can generate XML by walking the filesystem but it doesn't have this deterministic property, sadly.) As part of this change, GUIDs are now effectively reset. So the next upgrade should be a complete wipe and replace. This could potentially cause issues. But in my local testing, I was able to upgrade an existing 5.1.2 install without issue. Compared to the previous commit, the installed files differ in the following: * A ReleaseNotes.txt file is now included * A hgrc.d/editor.rc file is now generated (mercurial.rc has been updated to reflect this logical change to the content source) * All files are marked as read-only. Previously, only a subset of files were. This should help prevent unwanted tampering. Although we may want to consider use cases like modifying template files... This change also means that Inno and WiX are now using very similar code for managing the install layout. This means that on disk both packages are nearly identical. The differences in install layout are as follows: * Inno has a Copying.txt vs a COPYING.rtf for WiX. (The WiX installer wants to use RTF.) * Inno has a Mercurial.url file that is an internet shortcut to www.mercurial-scm.org. (This could potentially be removed.) * Inno includes msvc[mpr]90.dll files and WiX does not. (WiX installs the MSVC runtime via merge modules.) * Inno includes unins000.{dat,exe} files. (WiX's state is managed by Windows Installer, which places things elsewhere.) Because file lists are dynamically generated now, the test ensuring things remain in sync has been deleted. Good riddance. While this is a huge step towards unifying the Windows installers, there's still some improvements that can be made. But I think it is worth celebrating the milestone of getting both Inno and WiX to essentially share core packaging code and workflows. That should make it much easier to change the installers going forward. This will aid support of Python 3. Differential Revision: https://phab.mercurial-scm.org/D7173
author Gregory Szorc <gregory.szorc@gmail.com>
date Mon, 11 Nov 2019 18:55:42 -0800
parents 3de4f17f4824
children 90f7d8276e26
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
1 ; System-wide Mercurial config file.
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
2 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
3 ; !!! Do Not Edit This File !!!
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
4 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
5 ; This file will be replaced by the installer on every upgrade.
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
6 ; Editing this file can cause strange side effects on Vista.
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
7 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
8 ; http://bitbucket.org/tortoisehg/stable/issue/135
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
9 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
10 ; To change settings you see in this file, override (or enable) them in
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
11 ; your user Mercurial.ini file, where USERNAME is your Windows user name:
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
12 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
13 ; XP or older - C:\Documents and Settings\USERNAME\Mercurial.ini
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
14 ; Vista or later - C:\Users\USERNAME\Mercurial.ini
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
15
4749
778bab992732 Convert default mercurial.ini file to Windows line endings
Lee Cantey <lcantey@gmail.com>
parents: 3432
diff changeset
16
5142
2ffe3e2a1ac2 merge with crew-stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4749 5081
diff changeset
17 [ui]
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
18 ; editor used to enter commit logs, etc. Most text editors will work.
43623
94eac340d212 packaging: stage files and dynamically generate WiX installer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 42541
diff changeset
19 ; editor = notepad
7662
8aa338cd0df3 Update mercurial.ini file packaged in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 5142
diff changeset
20 ; show changed files and be a bit more verbose if True
8aa338cd0df3 Update mercurial.ini file packaged in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 5142
diff changeset
21 ; verbose = True
31126
1b065fa21b00 config: update the Windows example config file
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 29665
diff changeset
22 ; colorize commands output
1b065fa21b00 config: update the Windows example config file
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 29665
diff changeset
23 ; color = auto
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
24
7662
8aa338cd0df3 Update mercurial.ini file packaged in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 5142
diff changeset
25 ; username data to appear in commits
8aa338cd0df3 Update mercurial.ini file packaged in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 5142
diff changeset
26 ; it usually takes the form: Joe User <joe.user@host.com>
8aa338cd0df3 Update mercurial.ini file packaged in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 5142
diff changeset
27 ; username = Joe User <j.user@example.com>
8aa338cd0df3 Update mercurial.ini file packaged in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 5142
diff changeset
28
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
29 ; In order to push/pull over ssh you must specify an ssh tool
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
30 ;ssh = "C:\Progra~1\TortoiseSVN\bin\TortoisePlink.exe" -ssh -2
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
31 ;ssh = C:\cygwin\bin\ssh
4749
778bab992732 Convert default mercurial.ini file to Windows line endings
Lee Cantey <lcantey@gmail.com>
parents: 3432
diff changeset
32
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
33 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
34 ; For more information about mercurial extensions, start here
29665
a98a913745b6 win32: update wiki link in mercurial.ini
Anton Shestakov <av6@dwimlabs.net>
parents: 29162
diff changeset
35 ; https://www.mercurial-scm.org/wiki/UsingExtensions
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
36 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
37 ; Extensions shipped with Mercurial
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
38 ;
4749
778bab992732 Convert default mercurial.ini file to Windows line endings
Lee Cantey <lcantey@gmail.com>
parents: 3432
diff changeset
39 [extensions]
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
40 ;acl =
19512
f84036df71ad win32: update Inno Setup installer script and extensions list
Pascal Quantin <pascal.quantin@gmail.com>
parents: 17278
diff changeset
41 ;blackbox =
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
42 ;bugzilla =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
43 ;children =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
44 ;churn =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
45 ;convert =
11269
5f01fd602542 win32text: mark this extension as deprecated
Martin Geisler <mg@aragost.com>
parents: 10474
diff changeset
46 ;eol =
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
47 ;extdiff =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
48 ;fetch =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
49 ;gpg =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
50 ;hgk =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
51 ;highlight =
17278
ef5d70655143 win32: update Inno Setup installer extensions list
Pascal Quantin <pascal.quantin@gmail.com>
parents: 16242
diff changeset
52 ;histedit =
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
53 ;interhg =
17278
ef5d70655143 win32: update Inno Setup installer extensions list
Pascal Quantin <pascal.quantin@gmail.com>
parents: 16242
diff changeset
54 ;largefiles =
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
55 ;keyword =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
56 ;mq =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
57 ;notify =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
58 ;pager =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
59 ;patchbomb =
10474
601a9d67825a Add progress extension to win32 default config file
Pascal Quantin <pascal.quantin@gmail.com>
parents: 9322
diff changeset
60 ;progress =
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
61 ;purge =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
62 ;rebase =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
63 ;record =
17278
ef5d70655143 win32: update Inno Setup installer extensions list
Pascal Quantin <pascal.quantin@gmail.com>
parents: 16242
diff changeset
64 ;relink =
ef5d70655143 win32: update Inno Setup installer extensions list
Pascal Quantin <pascal.quantin@gmail.com>
parents: 16242
diff changeset
65 ;schemes =
ef5d70655143 win32: update Inno Setup installer extensions list
Pascal Quantin <pascal.quantin@gmail.com>
parents: 16242
diff changeset
66 ;share =
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
67 ;transplant =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
68 ;win32mbcs =
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
69 ;zeroconf =
4749
778bab992732 Convert default mercurial.ini file to Windows line endings
Lee Cantey <lcantey@gmail.com>
parents: 3432
diff changeset
70
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
71 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
72 ; Define external diff commands
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
73 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
74 [extdiff]
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
75 ;cmd.bc3diff = C:\Program Files\Beyond Compare 3\BCompare.exe
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
76 ;cmd.vdiff = C:\Progra~1\TortoiseSVN\bin\TortoiseMerge.exe
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
77 ;cmd.vimdiff = gvim.exe
16242
55174ab81973 extdiff: escape filenames with vim/DirDiff and make quoting work with Windows
Thomas Arendsen Hein <thomas@intevation.de>
parents: 14159
diff changeset
78 ;opts.vimdiff = -f "+next" "+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))"
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
79
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
80
7663
b0a0eb28a933 Package hgk Tcl/Tk script in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 7662
diff changeset
81 [hgk]
b0a0eb28a933 Package hgk Tcl/Tk script in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 7662
diff changeset
82 ; Replace the following with your path to hgk, uncomment it and
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
83 ; install ActiveTcl (or another win32 port like tclkit)
7663
b0a0eb28a933 Package hgk Tcl/Tk script in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 7662
diff changeset
84 ; path="C:\Program Files\Mercurial\Contrib\hgk.tcl"
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
85 ; vdiff=vdiff
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
86
4749
778bab992732 Convert default mercurial.ini file to Windows line endings
Lee Cantey <lcantey@gmail.com>
parents: 3432
diff changeset
87
9322
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
88 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
89 ; The git extended diff format can represent binary files, file
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
90 ; permission changes, and rename information that the normal patch format
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
91 ; cannot describe. However it is also not compatible with tools which
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
92 ; expect normal patches. so enable git patches at your own risk.
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
93 ;
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
94 [diff]
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
95 ;git = false
81900431589f mercurial.ini: provide more useful info
Steve Borho <steve@borho.org>
parents: 7663
diff changeset
96 ;nodates = false
7662
8aa338cd0df3 Update mercurial.ini file packaged in win32 installer
Pascal Quantin <pascal.quantin@wavecom.com>
parents: 5142
diff changeset
97