##// END OF EJS Templates
branching: merge with stable
Martin von Zweigbergk -
r47182:1c667958 merge default
parent child Browse files
Show More
@@ -1,61 +1,61
1 1 Requirements
2 2 ============
3 3
4 4 Building the Inno installer requires a Windows machine.
5 5
6 6 The following system dependencies must be installed:
7 7
8 8 * Python 2.7 (download from https://www.python.org/downloads/)
9 9 * Microsoft Visual C++ Compiler for Python 2.7
10 10 (https://www.microsoft.com/en-us/download/details.aspx?id=44266)
11 11 * Inno Setup (http://jrsoftware.org/isdl.php) version 5.4 or newer.
12 12 Be sure to install the optional Inno Setup Preprocessor feature,
13 13 which is required.
14 14 * Python 3.5+ (to run the ``packaging.py`` script)
15 15
16 16 Building
17 17 ========
18 18
19 19 The ``packaging.py`` script automates the process of producing an
20 20 Inno installer. It manages fetching and configuring the
21 21 non-system dependencies (such as py2exe, gettext, and various
22 22 Python packages).
23 23
24 24 The script requires an activated ``Visual C++ 2008`` command prompt.
25 25 A shortcut to such a prompt was installed with ``Microsoft Visual C++
26 26 Compiler for Python 2.7``. From your Start Menu, look for
27 27 ``Microsoft Visual C++ Compiler Package for Python 2.7`` then launch
28 28 either ``Visual C++ 2008 32-bit Command Prompt`` or
29 29 ``Visual C++ 2008 64-bit Command Prompt``.
30 30
31 31 From the prompt, change to the Mercurial source directory. e.g.
32 32 ``cd c:\src\hg``.
33 33
34 34 Next, invoke ``packaging.py`` to produce an Inno installer. You will
35 35 need to supply the path to the Python interpreter to use.::
36 36
37 $ python3.exe contrib\packaging\packaging.py \
37 $ py -3 contrib\packaging\packaging.py \
38 38 inno --python c:\python27\python.exe
39 39
40 40 .. note::
41 41
42 42 The script validates that the Visual C++ environment is
43 43 active and that the architecture of the specified Python
44 44 interpreter matches the Visual C++ environment and errors
45 45 if not.
46 46
47 47 If everything runs as intended, dependencies will be fetched and
48 48 configured into the ``build`` sub-directory, Mercurial will be built,
49 49 and an installer placed in the ``dist`` sub-directory. The final
50 50 line of output should print the name of the generated installer.
51 51
52 52 Additional options may be configured. Run
53 53 ``packaging.py inno --help`` to see a list of program flags.
54 54
55 55 MinGW
56 56 =====
57 57
58 58 It is theoretically possible to generate an installer that uses
59 59 MinGW. This isn't well tested and ``packaging.py`` and may properly
60 60 support it. See old versions of this file in version control for
61 61 potentially useful hints as to how to achieve this.
@@ -1,152 +1,153
1 1 <?xml version='1.0' encoding='windows-1252'?>
2 2 <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
3 3
4 4 <!-- Copyright 2010 Steve Borho <steve@borho.org>
5 5
6 6 This software may be used and distributed according to the terms of the
7 7 GNU General Public License version 2 or any later version. -->
8 8
9 9 <?include guids.wxi ?>
10 10 <?include defines.wxi ?>
11 11
12 12 <?if $(var.Platform) = "x64" ?>
13 13 <?define PFolder = ProgramFiles64Folder ?>
14 14 <?else?>
15 15 <?define PFolder = ProgramFilesFolder ?>
16 16 <?endif?>
17 17
18 18 <Product Id='*'
19 19 Name='Mercurial $(var.Version) ($(var.Platform))'
20 20 UpgradeCode='$(var.ProductUpgradeCode)'
21 21 Language='1033' Codepage='1252' Version='$(var.Version)'
22 22 Manufacturer='Matt Mackall and others'>
23 23
24 24 <Package Id='*'
25 25 Keywords='Installer'
26 26 Description="Mercurial distributed SCM (version $(var.Version))"
27 27 Comments='$(var.Comments)'
28 28 Platform='$(var.Platform)'
29 29 Manufacturer='Matt Mackall and others'
30 30 InstallerVersion='300' Languages='1033' Compressed='yes' SummaryCodepage='1252' />
31 31
32 32 <Media Id='1' Cabinet='mercurial.cab' EmbedCab='yes' DiskPrompt='CD-ROM #1'
33 33 CompressionLevel='high' />
34 34 <Property Id='DiskPrompt' Value="Mercurial $(var.Version) Installation [1]" />
35 35
36 36 <Condition Message='Mercurial MSI installers require Windows XP or higher'>
37 37 VersionNT >= 501
38 38 </Condition>
39 39
40 40 <Property Id="INSTALLDIR">
41 41 <ComponentSearch Id='SearchForMainExecutableComponent'
42 Guid='$(var.ComponentMainExecutableGUID)' />
42 Guid='$(var.ComponentMainExecutableGUID)'
43 Type='directory' />
43 44 </Property>
44 45
45 46 <!--Property Id='ARPCOMMENTS'>any comments</Property-->
46 47 <Property Id='ARPCONTACT'>mercurial@mercurial-scm.org</Property>
47 48 <Property Id='ARPHELPLINK'>https://mercurial-scm.org/wiki/</Property>
48 49 <Property Id='ARPURLINFOABOUT'>https://mercurial-scm.org/about/</Property>
49 50 <Property Id='ARPURLUPDATEINFO'>https://mercurial-scm.org/downloads/</Property>
50 51 <Property Id='ARPHELPTELEPHONE'>https://mercurial-scm.org/wiki/Support</Property>
51 52 <Property Id='ARPPRODUCTICON'>hgIcon.ico</Property>
52 53
53 54 <Property Id='INSTALLEDMERCURIALPRODUCTS' Secure='yes'></Property>
54 55 <Property Id='REINSTALLMODE'>amus</Property>
55 56
56 57 <!--Auto-accept the license page-->
57 58 <Property Id='LicenseAccepted'>1</Property>
58 59
59 60 <Directory Id='TARGETDIR' Name='SourceDir'>
60 61 <Directory Id='$(var.PFolder)' Name='PFiles'>
61 62 <Directory Id='INSTALLDIR' Name='Mercurial'>
62 63 <Component Id='MainExecutable' Guid='$(var.ComponentMainExecutableGUID)' Win64='$(var.IsX64)'>
63 64 <CreateFolder />
64 65 <Environment Id="Environment" Name="PATH" Part="last" System="yes"
65 66 Permanent="no" Value="[INSTALLDIR]" Action="set" />
66 67 </Component>
67 68 </Directory>
68 69 </Directory>
69 70
70 71 <Directory Id="ProgramMenuFolder" Name="Programs">
71 72 <Directory Id="ProgramMenuDir" Name="Mercurial $(var.Version)">
72 73 <Component Id="ProgramMenuDir" Guid="$(var.ProgramMenuDir.guid)" Win64='$(var.IsX64)'>
73 74 <RemoveFolder Id='ProgramMenuDir' On='uninstall' />
74 75 <RegistryValue Root='HKCU' Key='Software\Mercurial\InstallDir' Type='string'
75 76 Value='[INSTALLDIR]' KeyPath='yes' />
76 77 <Shortcut Id='UrlShortcut' Directory='ProgramMenuDir' Name='Mercurial Web Site'
77 78 Target='[ARPHELPLINK]' Icon="hgIcon.ico" IconIndex='0' />
78 79 </Component>
79 80 </Directory>
80 81 </Directory>
81 82
82 83 <!-- Install VCRedist merge modules on Python 2. On Python 3,
83 84 vcruntimeXXX.dll is part of the install layout and gets picked up
84 85 as a regular file. -->
85 86 <?if $(var.PythonVersion) = "2" ?>
86 87 <?if $(var.Platform) = "x86" ?>
87 88 <Merge Id='VCRuntime' DiskId='1' Language='1033'
88 89 SourceFile='$(var.VCRedistSrcDir)\microsoft.vcxx.crt.x86_msm.msm' />
89 90 <Merge Id='VCRuntimePolicy' DiskId='1' Language='1033'
90 91 SourceFile='$(var.VCRedistSrcDir)\policy.x.xx.microsoft.vcxx.crt.x86_msm.msm' />
91 92 <?else?>
92 93 <Merge Id='VCRuntime' DiskId='1' Language='1033'
93 94 SourceFile='$(var.VCRedistSrcDir)\microsoft.vcxx.crt.x64_msm.msm' />
94 95 <Merge Id='VCRuntimePolicy' DiskId='1' Language='1033'
95 96 SourceFile='$(var.VCRedistSrcDir)\policy.x.xx.microsoft.vcxx.crt.x64_msm.msm' />
96 97 <?endif?>
97 98 <?endif?>
98 99 </Directory>
99 100
100 101 <Feature Id='Complete' Title='Mercurial' Description='The complete package'
101 102 Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR' >
102 103 <Feature Id='MainProgram' Title='Program' Description='Mercurial command line app'
103 104 Level='1' Absent='disallow' >
104 105 <ComponentRef Id='MainExecutable' />
105 106 <ComponentRef Id='ProgramMenuDir' />
106 107 <ComponentGroupRef Id="hg.group.ROOT" />
107 108 <ComponentGroupRef Id="hg.group.defaultrc" />
108 109 <ComponentGroupRef Id="hg.group.helptext" />
109 110 <?ifdef MercurialHasLib?>
110 111 <ComponentGroupRef Id="hg.group.lib" />
111 112 <?endif?>
112 113 <ComponentGroupRef Id="hg.group.templates" />
113 114 <?if $(var.PythonVersion) = "2" ?>
114 115 <MergeRef Id='VCRuntime' />
115 116 <MergeRef Id='VCRuntimePolicy' />
116 117 <?endif?>
117 118 </Feature>
118 119 <?ifdef MercurialExtraFeatures?>
119 120 <?foreach EXTRAFEAT in $(var.MercurialExtraFeatures)?>
120 121 <FeatureRef Id="$(var.EXTRAFEAT)" />
121 122 <?endforeach?>
122 123 <?endif?>
123 124 <Feature Id='Locales' Title='Translations' Description='Translations' Level='1'>
124 125 <ComponentGroupRef Id="hg.group.locale" />
125 126 </Feature>
126 127 <Feature Id='Documentation' Title='Documentation' Description='HTML man pages' Level='1'>
127 128 <ComponentGroupRef Id="hg.group.doc" />
128 129 </Feature>
129 130 <Feature Id='Misc' Title='Miscellaneous' Description='Contributed scripts' Level='1'>
130 131 <ComponentGroupRef Id="hg.group.contrib" />
131 132 </Feature>
132 133 </Feature>
133 134
134 135 <UIRef Id="WixUI_FeatureTree" />
135 136 <UIRef Id="WixUI_ErrorProgressText" />
136 137
137 138 <WixVariable Id="WixUILicenseRtf" Value="contrib\packaging\wix\COPYING.rtf" />
138 139
139 140 <Icon Id="hgIcon.ico" SourceFile="contrib/win32/mercurial.ico" />
140 141
141 142 <Upgrade Id='$(var.ProductUpgradeCode)'>
142 143 <UpgradeVersion
143 144 IncludeMinimum='yes' Minimum='0.0.0' IncludeMaximum='no' OnlyDetect='no'
144 145 Property='INSTALLEDMERCURIALPRODUCTS' />
145 146 </Upgrade>
146 147
147 148 <InstallExecuteSequence>
148 149 <RemoveExistingProducts After='InstallInitialize'/>
149 150 </InstallExecuteSequence>
150 151
151 152 </Product>
152 153 </Wix>
@@ -1,71 +1,71
1 1 WiX Installer
2 2 =============
3 3
4 4 The files in this directory are used to produce an MSI installer using
5 5 the WiX Toolset (http://wixtoolset.org/).
6 6
7 7 The MSI installers require elevated (admin) privileges due to the
8 8 installation of MSVC CRT libraries into the Windows system store. See
9 9 the Inno Setup installers in the ``inno`` sibling directory for installers
10 10 that do not have this requirement.
11 11
12 12 Requirements
13 13 ============
14 14
15 15 Building the WiX installers requires a Windows machine. The following
16 16 dependencies must be installed:
17 17
18 18 * Python 2.7 (download from https://www.python.org/downloads/)
19 19 * Microsoft Visual C++ Compiler for Python 2.7
20 20 (https://www.microsoft.com/en-us/download/details.aspx?id=44266)
21 21 * Python 3.5+ (to run the ``packaging.py`` script)
22 22
23 23 Building
24 24 ========
25 25
26 26 The ``packaging.py`` script automates the process of producing an MSI
27 27 installer. It manages fetching and configuring non-system dependencies
28 28 (such as py2exe, gettext, and various Python packages).
29 29
30 30 The script requires an activated ``Visual C++ 2008`` command prompt.
31 31 A shortcut to such a prompt was installed with ``Microsoft Visual
32 32 C++ Compiler for Python 2.7``. From your Start Menu, look for
33 33 ``Microsoft Visual C++ Compiler Package for Python 2.7`` then
34 34 launch either ``Visual C++ 2008 32-bit Command Prompt`` or
35 35 ``Visual C++ 2008 64-bit Command Prompt``.
36 36
37 37 From the prompt, change to the Mercurial source directory. e.g.
38 38 ``cd c:\src\hg``.
39 39
40 40 Next, invoke ``packaging.py`` to produce an MSI installer. You will need
41 41 to supply the path to the Python interpreter to use.::
42 42
43 $ python3 contrib\packaging\packaging.py \
43 $ py -3 contrib\packaging\packaging.py \
44 44 wix --python c:\python27\python.exe
45 45
46 46 .. note::
47 47
48 48 The script validates that the Visual C++ environment is active and
49 49 that the architecture of the specified Python interpreter matches the
50 50 Visual C++ environment. An error is raised otherwise.
51 51
52 52 If everything runs as intended, dependencies will be fetched and
53 53 configured into the ``build`` sub-directory, Mercurial will be built,
54 54 and an installer placed in the ``dist`` sub-directory. The final line
55 55 of output should print the name of the generated installer.
56 56
57 57 Additional options may be configured. Run ``packaging.py wix --help`` to
58 58 see a list of program flags.
59 59
60 60 Relationship to TortoiseHG
61 61 ==========================
62 62
63 63 TortoiseHG uses the WiX files in this directory.
64 64
65 65 The code for building TortoiseHG installers lives at
66 66 https://bitbucket.org/tortoisehg/thg-winbuild and is maintained by
67 67 Steve Borho (steve@borho.org).
68 68
69 69 When changing behavior of the WiX installer, be sure to notify
70 70 the TortoiseHG Project of the changes so they have ample time
71 71 provide feedback and react to those changes.
@@ -1,72 +1,76
1 1 == New Features ==
2 2
3 3 * There is a new config section for templates used by hg commands. It
4 4 is called `[command-templates]`. Some existing config options have
5 5 been deprecated in favor of config options in the new
6 6 section. These are: `ui.logtemplate` to `command-templates.log`,
7 7 `ui.graphnodetemplate` to `command-templates.graphnode`,
8 8 `ui.mergemarkertemplate` to `command-templates.mergemarker`,
9 9 `ui.pre-merge-tool-output-template` to
10 10 `command-templates.pre-merge-tool-output`.
11 11
12 12 * There is a new set of config options for the template used for the
13 13 one-line commit summary displayed by various commands, such as `hg
14 14 rebase`. The main one is `command-templates.oneline-summary`. That
15 15 can be overridden per command with
16 16 `command-templates.oneline-summary.<command>`, where `<command>`
17 17 can be e.g. `rebase`. As part of this effort, the default format
18 18 from `hg rebase` was reorganized a bit.
19 19
20 20 * `hg purge` is now a core command using `--confirm` by default.
21 21
22 22 * `hg strip`, from the strip extension, is now a core command, `hg
23 23 debugstrip`. The extension remains for compatibility.
24 24
25 25 * `hg diff` and `hg extdiff` now support `--from <rev>` and `--to <rev>`
26 26 arguments as clearer alternatives to `-r <revs>`. `-r <revs>` has been
27 27 deprecated.
28 28
29 29 * The memory footprint per changeset during pull/unbundle
30 30 operations has been further reduced.
31 31
32 32 * There is a new internal merge tool called `internal:mergediff` (can
33 33 be set as the value for the `merge` config in the `[ui]`
34 34 section). It resolves merges the same was as `internal:merge` and
35 35 `internal:merge3`, but it shows conflicts differently. Instead of
36 36 showing 2 or 3 snapshots of the conflicting pieces of code, it
37 37 shows one snapshot and a diff. This may be useful when at least one
38 38 side of the conflict is similar to the base. The new marker style
39 39 is also supported by "premerge" as
40 40 `merge-tools.<tool>.premerge=keep-mergediff`.
41 41
42 * External hooks are now called with `HGPLAIN=1` preset.
42 * External hooks are now called with `HGPLAIN=1` preset. This has the side
43 effect of ignoring aliases, templates, revsetaliases, and a few other config
44 options in any `hg` command spawned by the hook. The previous behavior
45 can be restored by setting HGPLAINEXCEPT appropriately in the parent process.
46 See `hg help environment` for the list of items, and how to set it.
43 47
44 48 * The `branchmap` cache is updated more intelligently and can be
45 49 significantly faster for repositories with many branches and changesets.
46 50
47 51 * The `rev-branch-cache` is now updated incrementally whenever changesets
48 52 are added.
49 53
50 54
51 55 == New Experimental Features ==
52 56
53 57 * `experimental.single-head-per-branch:public-changes-only` can be used
54 58 restrict the single head check to public revision. This is useful for
55 59 overlay repository that have both a publishing and non-publishing view
56 60 of the same storage.
57 61
58 62
59 63 == Bug Fixes ==
60 64
61 65
62 66
63 67 == Backwards Compatibility Changes ==
64 68
65 69 * `--force-lock` and `--force-wlock` options on `hg debuglock` command are
66 70 renamed to `--force-free-lock` and `--force-free-wlock` respectively.
67 71
68 72
69 73 == Internal API Changes ==
70 74
71 75 * `changelog.branchinfo` is deprecated and will be removed after 5.8.
72 76 It is superseded by `changelogrevision.branchinfo`.
@@ -1,72 +1,22
1 1 == New Features ==
2
3 * There is a new config section for templates used by hg commands. It
4 is called `[command-templates]`. Some existing config options have
5 been deprecated in favor of config options in the new
6 section. These are: `ui.logtemplate` to `command-templates.log`,
7 `ui.graphnodetemplate` to `command-templates.graphnode`,
8 `ui.mergemarkertemplate` to `command-templates.mergemarker`,
9 `ui.pre-merge-tool-output-template` to
10 `command-templates.pre-merge-tool-output`.
11
12 * There is a new set of config options for the template used for the
13 one-line commit summary displayed by various commands, such as `hg
14 rebase`. The main one is `command-templates.oneline-summary`. That
15 can be overridden per command with
16 `command-templates.oneline-summary.<command>`, where `<command>`
17 can be e.g. `rebase`. As part of this effort, the default format
18 from `hg rebase` was reorganized a bit.
19
2
20 3 * `hg purge` is now a core command using `--confirm` by default.
21
22 * `hg strip`, from the strip extension, is now a core command, `hg
23 debugstrip`. The extension remains for compatibility.
24
25 * `hg diff` and `hg extdiff` now support `--from <rev>` and `--to <rev>`
26 arguments as clearer alternatives to `-r <revs>`. `-r <revs>` has been
27 deprecated.
28
29 * The memory footprint per changeset during pull/unbundle
30 operations has been further reduced.
31
32 * There is a new internal merge tool called `internal:mergediff` (can
33 be set as the value for the `merge` config in the `[ui]`
34 section). It resolves merges the same was as `internal:merge` and
35 `internal:merge3`, but it shows conflicts differently. Instead of
36 showing 2 or 3 snapshots of the conflicting pieces of code, it
37 shows one snapshot and a diff. This may be useful when at least one
38 side of the conflict is similar to the base. The new marker style
39 is also supported by "premerge" as
40 `merge-tools.<tool>.premerge=keep-mergediff`.
41
42 * External hooks are now called with `HGPLAIN=1` preset.
43
44 * The `branchmap` cache is updated more intelligently and can be
45 significantly faster for repositories with many branches and changesets.
46
4
47 5 * The `rev-branch-cache` is now updated incrementally whenever changesets
48 6 are added.
49 7
50 8
51 9 == New Experimental Features ==
52 10
53 * `experimental.single-head-per-branch:public-changes-only` can be used
54 restrict the single head check to public revision. This is useful for
55 overlay repository that have both a publishing and non-publishing view
56 of the same storage.
57
58 11
59 12 == Bug Fixes ==
60 13
61 14
62 15
63 16 == Backwards Compatibility Changes ==
64 17
65 * `--force-lock` and `--force-wlock` options on `hg debuglock` command are
66 renamed to `--force-free-lock` and `--force-free-wlock` respectively.
67
68 18
69 19 == Internal API Changes ==
70 20
71 21 * `changelog.branchinfo` is deprecated and will be removed after 5.8.
72 22 It is superseded by `changelogrevision.branchinfo`.
General Comments 0
You need to be logged in to leave comments. Login now