Show More
@@ -1,96 +1,124 | |||||
1 | '''This is the last release to support Python 2. Mercurial is Python 3 only starting with 6.2''' |
|
1 | '''This is the last release to support Python 2. Mercurial is Python 3 only starting with 6.2''' | |
2 |
|
2 | |||
|
3 | = Mercurial 6.1.4 = | |||
|
4 | ||||
|
5 | * url: raise error if CONNECT request to proxy was unsuccessful | |||
|
6 | * docker: avoid /tmp write access issues by fixing permissions | |||
|
7 | * logcmdutil: use the same data as {file*} template keywords (issue6642) | |||
|
8 | * commit: allow to close branch when committing change over a closed head | |||
|
9 | * rust-status: don't trigger dirstate v1 rewrite when only v2 data is changed | |||
|
10 | * purge: prevent a silly crash with --confirm --files | |||
|
11 | * rust: relax im-rc dependency to allow minor updates" | |||
|
12 | * Improve PyPy support | |||
|
13 | * Improve Py3 error handling | |||
|
14 | * Documentation fixes | |||
|
15 | ||||
|
16 | = Mercurial 6.1.3 = | |||
|
17 | ||||
|
18 | '''security: ''' | |||
|
19 | * narrow_widen_acl: enforce narrowacl in narrow_widen (SEC) 6b10151b9621 | |||
|
20 | ||||
|
21 | '''normal notes: ''' | |||
|
22 | * censor: fix [hg update] away from a revision with censored files | |||
|
23 | * amend: stop losing copies when amending | |||
|
24 | * rhg: strengthen dirstate v2 writing in broken filesystems | |||
|
25 | * work around some broken DLL imports in Windows | |||
|
26 | * worker: adapt _blockingreader to work around a python3.8.[0-1] bug (issue6444) | |||
|
27 | * rhg: correctly handle the case where diffs are encoded relative to nullrev | |||
|
28 | * fix bugs and race-conditions in the Mercurial test runner | |||
|
29 | * chg: ignore already closed fds when cleaning up | |||
|
30 | ||||
3 | = Mercurial 6.1.2 = |
|
31 | = Mercurial 6.1.2 = | |
4 |
|
32 | |||
5 | * Improve Windows test suite |
|
33 | * Improve Windows test suite | |
6 | * Fix `debuglock` not ignoring a missing lockfile when forcing a lock |
|
34 | * Fix `debuglock` not ignoring a missing lockfile when forcing a lock | |
7 | * Improve help of `ui.large-file-limit` |
|
35 | * Improve help of `ui.large-file-limit` | |
8 | * Set the large-file-limit to 10MB (from 10MiB) for clarity |
|
36 | * Set the large-file-limit to 10MB (from 10MiB) for clarity | |
9 | * While rewriting desc hashes, ignore ambiguous prefix "hashes" |
|
37 | * While rewriting desc hashes, ignore ambiguous prefix "hashes" | |
10 | * Fix a crash in partial amend with copies |
|
38 | * Fix a crash in partial amend with copies | |
11 | * Fix a py3 compatiblity bug |
|
39 | * Fix a py3 compatiblity bug | |
12 | * Fix incorrect metadata causing dirstate-v2 data loss in edge case |
|
40 | * Fix incorrect metadata causing dirstate-v2 data loss in edge case | |
13 | * Fix cleanup of old dirstate-v2 data files when using `rhg` |
|
41 | * Fix cleanup of old dirstate-v2 data files when using `rhg` | |
14 | * Make reference to `.hg/last_message.txt` relative in commit |
|
42 | * Make reference to `.hg/last_message.txt` relative in commit | |
15 | * Fix an infinite hang when `rhg` is used in the background |
|
43 | * Fix an infinite hang when `rhg` is used in the background | |
16 | * Fix Python DLL loading bug in Windows |
|
44 | * Fix Python DLL loading bug in Windows | |
17 | * Add `--docket` flag to `debugstate` to check out dirstate-v2 metadata |
|
45 | * Add `--docket` flag to `debugstate` to check out dirstate-v2 metadata | |
18 | * Remove `debugdirstateignorepatternhash` in favor of `debugstate --docket` |
|
46 | * Remove `debugdirstateignorepatternhash` in favor of `debugstate --docket` | |
19 | * Fix incorrect metadata causing systematic complete dirstate-v2 rewrite |
|
47 | * Fix incorrect metadata causing systematic complete dirstate-v2 rewrite | |
20 |
|
48 | |||
21 | = Mercurial 6.1.1 = |
|
49 | = Mercurial 6.1.1 = | |
22 |
|
50 | |||
23 | * Fix Rust compilation on `aarcch64` |
|
51 | * Fix Rust compilation on `aarcch64` | |
24 | * Fix Rust compilation on architectures where `char` is unsigned |
|
52 | * Fix Rust compilation on architectures where `char` is unsigned | |
25 | * When the merge tool uses `$output`, don't leave markers in `$local` |
|
53 | * When the merge tool uses `$output`, don't leave markers in `$local` | |
26 | * Improve test suite support on big-endian platforms |
|
54 | * Improve test suite support on big-endian platforms | |
27 | * Cap the number of concurrent threads to 16 in Rust `hg status` to prevent huge speed regression at higher thread counts |
|
55 | * Cap the number of concurrent threads to 16 in Rust `hg status` to prevent huge speed regression at higher thread counts | |
28 | * Fix `amend` with copies in extras |
|
56 | * Fix `amend` with copies in extras | |
29 | * Abort if commit we're trying to `unamend` was not created by `hg [un]amend` |
|
57 | * Abort if commit we're trying to `unamend` was not created by `hg [un]amend` | |
30 | * Fix file name in the pullbundle help text |
|
58 | * Fix file name in the pullbundle help text | |
31 | * Fix an issue with data not being correctly reset in the C implementation of dirstate-v2 |
|
59 | * Fix an issue with data not being correctly reset in the C implementation of dirstate-v2 | |
32 | * Fix issue6673 where some tags were missing from cache after a merge |
|
60 | * Fix issue6673 where some tags were missing from cache after a merge | |
33 | * Fix stream-cloning a repo with empty requirements |
|
61 | * Fix stream-cloning a repo with empty requirements | |
34 | * Fix a false warning about content-divergence creation |
|
62 | * Fix a false warning about content-divergence creation | |
35 | * Fix silly blackbox entries when hg is interrupted |
|
63 | * Fix silly blackbox entries when hg is interrupted | |
36 | * Fix unsoundness (no known exploits) in Rust extensions (see cfd270d83169 and dd6b67d5c256) |
|
64 | * Fix unsoundness (no known exploits) in Rust extensions (see cfd270d83169 and dd6b67d5c256) | |
37 | * Fix Rust dirstate counters not being updated correctly leading to some potential bugs (none known) |
|
65 | * Fix Rust dirstate counters not being updated correctly leading to some potential bugs (none known) | |
38 | * Stop relying on a compiler implementation detail in Rust HgPath |
|
66 | * Stop relying on a compiler implementation detail in Rust HgPath | |
39 |
|
67 | |||
40 | = Mercurial 6.1 = |
|
68 | = Mercurial 6.1 = | |
41 |
|
69 | |||
42 | == New Features == |
|
70 | == New Features == | |
43 | * Added a way of specifying required extensions that prevent Mercurial from starting if they are not found. See `hg help config.extensions`. |
|
71 | * Added a way of specifying required extensions that prevent Mercurial from starting if they are not found. See `hg help config.extensions`. | |
44 | * Merge conflict markers have been made clearer (see backwards compatibility below) |
|
72 | * Merge conflict markers have been made clearer (see backwards compatibility below) | |
45 | * Improve detailed error codes |
|
73 | * Improve detailed error codes | |
46 | * Added a hint about mangled whitespace on bad patch |
|
74 | * Added a hint about mangled whitespace on bad patch | |
47 | * Explain which order the commits are presented in `chistedit` |
|
75 | * Explain which order the commits are presented in `chistedit` | |
48 | * Introduce a `dirstate-tracked-hint` feature to help automation keep track of changes to tracked files. See `hg help config.use-dirstate-tracked-hint`. |
|
76 | * Introduce a `dirstate-tracked-hint` feature to help automation keep track of changes to tracked files. See `hg help config.use-dirstate-tracked-hint`. | |
49 | * Shared repositories can be upgraded if the upgrade is specific to the share. For now, this only applies to `dirstate-v2` and `dirstate-tracked-hint`. |
|
77 | * Shared repositories can be upgraded if the upgrade is specific to the share. For now, this only applies to `dirstate-v2` and `dirstate-tracked-hint`. | |
50 | * When using the `narrow` extension, non-conflicting changes to files outside of the narrow specification can now be merged. |
|
78 | * When using the `narrow` extension, non-conflicting changes to files outside of the narrow specification can now be merged. | |
51 | * When cloning a repository using stream-clone, the client can now control the repository format variants to use as long as the stream content does not restrict that variant. |
|
79 | * When cloning a repository using stream-clone, the client can now control the repository format variants to use as long as the stream content does not restrict that variant. | |
52 |
|
80 | |||
53 | == Default Format Change == |
|
81 | == Default Format Change == | |
54 |
|
82 | |||
55 | These changes affect newly created repositories (or new clones) done with Mercurial 6.1. |
|
83 | These changes affect newly created repositories (or new clones) done with Mercurial 6.1. | |
56 |
|
84 | |||
57 | * The `share-safe` format variant is now enabled by default. It makes configuration and requirements more consistent across repository and their shares. This introduces a behavior change as shares from a repository using the new format will also use their main repository's configuration. See `hg help config.format.use-share-safe` for details about the feature and the available options for auto-upgrading existing shares. |
|
85 | * The `share-safe` format variant is now enabled by default. It makes configuration and requirements more consistent across repository and their shares. This introduces a behavior change as shares from a repository using the new format will also use their main repository's configuration. See `hg help config.format.use-share-safe` for details about the feature and the available options for auto-upgrading existing shares. | |
58 |
|
86 | |||
59 |
|
87 | |||
60 | == New Experimental Features == |
|
88 | == New Experimental Features == | |
61 | * The pure Rust version of Mercurial called `rhg` added support for most common invocations of `hg status`. See `hg help rust.rhg` for details on how to try it out. |
|
89 | * The pure Rust version of Mercurial called `rhg` added support for most common invocations of `hg status`. See `hg help rust.rhg` for details on how to try it out. | |
62 | * `rhg` supports narrow clones and sparse checkouts. |
|
90 | * `rhg` supports narrow clones and sparse checkouts. | |
63 |
|
91 | |||
64 | == Bug Fixes == |
|
92 | == Bug Fixes == | |
65 |
|
93 | |||
66 | * '''Obsolete revisions are skipped while computing heads. In conjunction with the `evolve` extension >= 10.5.0, this leads to massive exchange (push/pull) speedups in repositories with a lot of heads and/or obsolete revisions.''' |
|
94 | * '''Obsolete revisions are skipped while computing heads. In conjunction with the `evolve` extension >= 10.5.0, this leads to massive exchange (push/pull) speedups in repositories with a lot of heads and/or obsolete revisions.''' | |
67 | * Stream-clones now properly advertise all requirements needed. This can result in the stream-clone feature being disabled for some clients using < 6.0.2. A small bugfix patch for these older client is available if necessary. |
|
95 | * Stream-clones now properly advertise all requirements needed. This can result in the stream-clone feature being disabled for some clients using < 6.0.2. A small bugfix patch for these older client is available if necessary. | |
68 | * The `--no-check` and `--no-merge` flags now properly overwrite the behavior from `commands.update.check` |
|
96 | * The `--no-check` and `--no-merge` flags now properly overwrite the behavior from `commands.update.check` | |
69 | * `rhg`'s fallback detection is more robust in general in the presence of more advanced configs |
|
97 | * `rhg`'s fallback detection is more robust in general in the presence of more advanced configs | |
70 | * `rhg`'s `blackbox` now supports milliseconds by default and uses the same ISO 8601 format as the Python implementation |
|
98 | * `rhg`'s `blackbox` now supports milliseconds by default and uses the same ISO 8601 format as the Python implementation | |
71 | * Fix `rhg` crash on non-generaldelta revlogs |
|
99 | * Fix `rhg` crash on non-generaldelta revlogs | |
72 | * The `lfs`, `largefiles` and `sparse` extensions now correctly take the appropriate lock before writing requirements |
|
100 | * The `lfs`, `largefiles` and `sparse` extensions now correctly take the appropriate lock before writing requirements | |
73 | * The `notify` extension does not produce errors anymore if a revision is not found |
|
101 | * The `notify` extension does not produce errors anymore if a revision is not found | |
74 | * Remove unnecessary and overly strict check for divergence in `hg fix` |
|
102 | * Remove unnecessary and overly strict check for divergence in `hg fix` | |
75 | * Windows compatibility improvements |
|
103 | * Windows compatibility improvements | |
76 | * Miscellaneous Python 3 and typing improvements |
|
104 | * Miscellaneous Python 3 and typing improvements | |
77 | * Many other small or internal fixes |
|
105 | * Many other small or internal fixes | |
78 |
|
106 | |||
79 | == Backwards Compatibility Changes == |
|
107 | == Backwards Compatibility Changes == | |
80 |
|
108 | |||
81 | * The use of `share-safe`, means shares (of new repositories) will also use their main repository's configuration see the `Default Format Change` section for details. |
|
109 | * The use of `share-safe`, means shares (of new repositories) will also use their main repository's configuration see the `Default Format Change` section for details. | |
82 | * The fix to stream-clone requirements advertising means some requirements previously (wrongly) omitted are now sent. This can confuse client using a Mercurial version < 6.0.2. The client would consider these requirements unsupported even if it actually know them. If you encounter this, either upgrade your client or apply the necessary patch. |
|
110 | * The fix to stream-clone requirements advertising means some requirements previously (wrongly) omitted are now sent. This can confuse client using a Mercurial version < 6.0.2. The client would consider these requirements unsupported even if it actually know them. If you encounter this, either upgrade your client or apply the necessary patch. | |
83 | * The labels passed to merge tools have changed slightly. Merge tools can get labels passed to them if you include `$labellocal`, `$labelbase`, and/or `$labelother` in the `merge-tool.<tool name>.args` configuration. These labels used to have some space-padding, and truncation to fit within 72 columns. Both the padding and the truncation has been removed. |
|
111 | * The labels passed to merge tools have changed slightly. Merge tools can get labels passed to them if you include `$labellocal`, `$labelbase`, and/or `$labelother` in the `merge-tool.<tool name>.args` configuration. These labels used to have some space-padding, and truncation to fit within 72 columns. Both the padding and the truncation has been removed. | |
84 | * Some of the text in labels passed to merge tools has changed. For example, in conflicts while running `hg histedit`, the labels used to be "local", "base", and "histedit". They are now "already edited", "parent of current change", and "current change", respectively. |
|
112 | * Some of the text in labels passed to merge tools has changed. For example, in conflicts while running `hg histedit`, the labels used to be "local", "base", and "histedit". They are now "already edited", "parent of current change", and "current change", respectively. | |
85 | * The computation of namedbranch heads now ignores obsolete revisions. User of the Changeset Evolution feature may see a change in location and numbers of heads of each named branches (and topic). |
|
113 | * The computation of namedbranch heads now ignores obsolete revisions. User of the Changeset Evolution feature may see a change in location and numbers of heads of each named branches (and topic). | |
86 | * The remotefilelog extension now requires an appropriate excludepattern for subrepositories. |
|
114 | * The remotefilelog extension now requires an appropriate excludepattern for subrepositories. | |
87 | * `debugsparse`'s interface has been reworked to be more flexible. Since it's a debug command it is not actually a breaking change, but it is worth noting here. |
|
115 | * `debugsparse`'s interface has been reworked to be more flexible. Since it's a debug command it is not actually a breaking change, but it is worth noting here. | |
88 | * Temporary files for merges are now all inside a `hgmerge` directory instead of at the root of `TMPDIR`. The corresponding experimental `mergetempdirprefix` config option has been removed. |
|
116 | * Temporary files for merges are now all inside a `hgmerge` directory instead of at the root of `TMPDIR`. The corresponding experimental `mergetempdirprefix` config option has been removed. | |
89 |
|
117 | |||
90 | == Internal API Changes == |
|
118 | == Internal API Changes == | |
91 |
|
119 | |||
92 | * The dirstate API received minor modifications. |
|
120 | * The dirstate API received minor modifications. | |
93 |
|
121 | |||
94 | == Miscellaneous == |
|
122 | == Miscellaneous == | |
95 |
|
123 | |||
96 | * Removed exchange-v2. It was a prototype that had never been in a working state and had been left untouched since 2017. |
|
124 | * Removed exchange-v2. It was a prototype that had never been in a working state and had been left untouched since 2017. |
General Comments 0
You need to be logged in to leave comments.
Login now