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 |
$ 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 |
$ 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