Mercurial > hg
annotate relnotes/5.4 @ 45027:0ea9c86fac89 stable 5.4.2
convert: handle percent-encoded bytes in file URLs like Subversion
75b59d221aa3 added most of the code that gets removed by this patch. It helped
making progress on Python 3, but the reasoning was wrong in many ways. I tried
to retract it while it was queued, but it was too late.
Back then, I was asssuming that what happened on Python 2 (preserving bytes) is
correct and my Python 3 change is a hack. However it turned out that Subversion
interprets percent-encoded bytes as UTF-8. Accepting the same format as
Subversion is a good idea.
Consistency with urlreq.pathname2url() (as described in the removed comment)
doesn’t matter because that function is only used for passing paths to urllib.
This is not a backwards-incompatible change because before 5c0d5b48e58c,
non-ASCII filenames didn’t work at all on Python 2.
When the locale encoding is ISO-8859-15, `svn` accepts `file:///tmp/a%E2%82%AC`
for `/tmp/a€`. Before this patch, this was the case for this extension on
Python 3, but not on Python 2. This patch makes it work like with `svn` on both
Python 2 and Python 3.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Tue, 30 Jun 2020 07:23:29 +0200 |
parents | f445a4f7e8a7 |
children |
rev | line source |
---|---|
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
1 == New Features == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
2 |
44289
9f8eddd2723f
purge: add -i flag to delete ignored files instead of untracked files
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44194
diff
changeset
|
3 * `hg purge`/`hg clean` can now delete ignored files instead of |
9f8eddd2723f
purge: add -i flag to delete ignored files instead of untracked files
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44194
diff
changeset
|
4 untracked files, with the new -i flag. |
42309
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
5 |
44545
bd7b2c8d06cc
pull: add `--confirm` flag to confirm before writing changes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44437
diff
changeset
|
6 * `hg pull` now has a `--confirm` flag to prompt before applying changes. |
bd7b2c8d06cc
pull: add `--confirm` flag to confirm before writing changes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44437
diff
changeset
|
7 Config option `pull.confirm` is also added for that. |
bd7b2c8d06cc
pull: add `--confirm` flag to confirm before writing changes
Pulkit Goyal <7895pulkit@gmail.com>
parents:
44437
diff
changeset
|
8 |
44345
14d0e89520a2
graphlog: use '%' for other context in merge conflict
Martin von Zweigbergk <martinvonz@google.com>
parents:
44343
diff
changeset
|
9 * `hg log` now defaults to using an '%' symbol for commits involved |
14d0e89520a2
graphlog: use '%' for other context in merge conflict
Martin von Zweigbergk <martinvonz@google.com>
parents:
44343
diff
changeset
|
10 in unresolved merge conflicts. That includes unresolved conflicts |
14d0e89520a2
graphlog: use '%' for other context in merge conflict
Martin von Zweigbergk <martinvonz@google.com>
parents:
44343
diff
changeset
|
11 caused by e.g. `hg update --merge` and `hg graft`. '@' still takes |
14d0e89520a2
graphlog: use '%' for other context in merge conflict
Martin von Zweigbergk <martinvonz@google.com>
parents:
44343
diff
changeset
|
12 precedence, so what used to be marked '@' still is. |
14d0e89520a2
graphlog: use '%' for other context in merge conflict
Martin von Zweigbergk <martinvonz@google.com>
parents:
44343
diff
changeset
|
13 |
14d0e89520a2
graphlog: use '%' for other context in merge conflict
Martin von Zweigbergk <martinvonz@google.com>
parents:
44343
diff
changeset
|
14 * New `conflictlocal()` and `conflictother()` revsets return the |
44343
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
44289
diff
changeset
|
15 commits that are being merged, when there are conflicts. Also works |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
44289
diff
changeset
|
16 for conflicts caused by e.g. `hg graft`. |
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
44289
diff
changeset
|
17 |
44364
8be0c63535b5
copy: add option to unmark file as copied
Martin von Zweigbergk <martinvonz@google.com>
parents:
44347
diff
changeset
|
18 * `hg copy --forget` can be used to unmark a file as copied. |
8be0c63535b5
copy: add option to unmark file as copied
Martin von Zweigbergk <martinvonz@google.com>
parents:
44347
diff
changeset
|
19 |
44391
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
20 * The `format.revlog-compression` configuration entry now accept a list. The |
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
21 first available option will be used. for example setting:: |
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
22 |
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
23 [format] |
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
24 revlog-compression=zstd, zlib |
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
25 |
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
26 Will use `zstd` compression for new repositories is available, and will |
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
27 simply fall back to `zlib` if not. |
a6fb134bd086
revlog-compression: release note entry for update the config to be a list
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44372
diff
changeset
|
28 |
44396
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44392
diff
changeset
|
29 * `hg debugmergestate` output is now templated, which may be useful |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44392
diff
changeset
|
30 e.g. for IDEs that want to help the user resolve merge conflicts. |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44392
diff
changeset
|
31 |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44392
diff
changeset
|
32 |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
44365
diff
changeset
|
33 == New Experimental Features == |
44343
8561ad49915d
revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents:
44289
diff
changeset
|
34 |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
44365
diff
changeset
|
35 * `hg copy` now supports a `--at-rev` argument to mark files as |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
44365
diff
changeset
|
36 copied in the specified commit. It only works with `--after` for |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
44365
diff
changeset
|
37 now (i.e., it's only useful for marking files copied using non-hg |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
44365
diff
changeset
|
38 `cp` as copied). |
42309
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
39 |
44365
7c4b98a4e536
copy: add experimetal support for unmarking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
44364
diff
changeset
|
40 * Use `hg copy --forget --at-rev REV` to unmark already committed |
7c4b98a4e536
copy: add experimetal support for unmarking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
44364
diff
changeset
|
41 copies. |
7c4b98a4e536
copy: add experimetal support for unmarking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
44364
diff
changeset
|
42 |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
43 == Bug Fixes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
44 |
44370
edaae3616ba3
bookmarks: avoid traceback when two pushes race to delete the same bookmark
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44369
diff
changeset
|
45 * Fix server exception when concurrent pushes delete the same bookmark |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
46 |
44392
efd73cdcfbac
relnotes: move entry to the right spot
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44391
diff
changeset
|
47 * Prevent pushes of divergent bookmarks (foo@remote) |
efd73cdcfbac
relnotes: move entry to the right spot
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents:
44391
diff
changeset
|
48 |
44412
edc8504bc26b
exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44398
diff
changeset
|
49 * The push error "remote repository changed while pushing - please |
edc8504bc26b
exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44398
diff
changeset
|
50 try again" now only happens when a concurrent push changed related |
edc8504bc26b
exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44398
diff
changeset
|
51 heads (instead of when a concurrent pushed any revision). |
edc8504bc26b
exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44398
diff
changeset
|
52 |
edc8504bc26b
exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44398
diff
changeset
|
53 |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
54 == Backwards Compatibility Changes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
55 |
44347
9c9cfecd4600
rebase: don't use rebased node as dirstate p2 (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44345
diff
changeset
|
56 * When `hg rebase` pauses for merge conflict resolution, the working |
9c9cfecd4600
rebase: don't use rebased node as dirstate p2 (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44345
diff
changeset
|
57 copy will no longer have the rebased node as a second parent. You |
9c9cfecd4600
rebase: don't use rebased node as dirstate p2 (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44345
diff
changeset
|
58 can use the new `conflictparents()` revset for finding the other |
9c9cfecd4600
rebase: don't use rebased node as dirstate p2 (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44345
diff
changeset
|
59 parent during a conflict. |
9c9cfecd4600
rebase: don't use rebased node as dirstate p2 (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44345
diff
changeset
|
60 |
44556
f63598aa1c4b
rebase: accept multiple --base arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44555
diff
changeset
|
61 * `hg rebase` now accepts repeated `--source` and `--base` |
f63598aa1c4b
rebase: accept multiple --base arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44555
diff
changeset
|
62 arguments. For example, `hg rebase --source 'A + B'` is equivalent |
f63598aa1c4b
rebase: accept multiple --base arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44555
diff
changeset
|
63 to `hg rebase --source A --source B`. This is a |
f63598aa1c4b
rebase: accept multiple --base arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44555
diff
changeset
|
64 backwards-incompatible change because it will break overriding an |
f63598aa1c4b
rebase: accept multiple --base arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44555
diff
changeset
|
65 alias `myrebase = rebase --source A` by `hg myrebase --source B` |
f63598aa1c4b
rebase: accept multiple --base arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44555
diff
changeset
|
66 (it will now rebase `(A + B)::` instead of `B::`). |
44555
05654ea5137c
rebase: accept multiple --source arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
44545
diff
changeset
|
67 |
44369
815c63526d1d
relnotes: add entry about previous `hg recover` change
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44367
diff
changeset
|
68 * `hg recover` does not verify the validity of the whole repository |
815c63526d1d
relnotes: add entry about previous `hg recover` change
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
44367
diff
changeset
|
69 anymore. You can pass `--verify` or call `hg verify` if necessary. |
42944
c2676b5a9f59
narrow: don't hexify paths and double-hexify known nodes on wire (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42935
diff
changeset
|
70 |
44396
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44392
diff
changeset
|
71 * `hg debugmergestate` output format changed. Let us know if that is |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44392
diff
changeset
|
72 causing you problems and we'll roll it back. |
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44392
diff
changeset
|
73 |
44437
6a34e438461b
commit: clear resolved mergestate even if working copy is clean
Martin von Zweigbergk <martinvonz@google.com>
parents:
44434
diff
changeset
|
74 * Resolved merge conflicts are now cleared by `hg commit` even if the |
6a34e438461b
commit: clear resolved mergestate even if working copy is clean
Martin von Zweigbergk <martinvonz@google.com>
parents:
44434
diff
changeset
|
75 working copy has no changes. |
6a34e438461b
commit: clear resolved mergestate even if working copy is clean
Martin von Zweigbergk <martinvonz@google.com>
parents:
44434
diff
changeset
|
76 |
44396
acbfa31cfaf2
debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents:
44392
diff
changeset
|
77 |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
78 == Internal API Changes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
79 |
44159
df2162672d24
progress: delete deprecated ui.progress()
Martin von Zweigbergk <martinvonz@google.com>
parents:
44133
diff
changeset
|
80 * The deprecated `ui.progress()` has now been deleted. Please use |
df2162672d24
progress: delete deprecated ui.progress()
Martin von Zweigbergk <martinvonz@google.com>
parents:
44133
diff
changeset
|
81 `ui.makeprogress()` instead. |
44178
bd4f666b55a7
merge: drop now-unused "abort" argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents:
44159
diff
changeset
|
82 |
44434
2f290136b7d6
merge: make hg.merge() take a context instead of a node
Martin von Zweigbergk <martinvonz@google.com>
parents:
44412
diff
changeset
|
83 * `hg.merge()` now takes a `ctx` instead of the previous `repo` and |
2f290136b7d6
merge: make hg.merge() take a context instead of a node
Martin von Zweigbergk <martinvonz@google.com>
parents:
44412
diff
changeset
|
84 `node` arguments. |
2f290136b7d6
merge: make hg.merge() take a context instead of a node
Martin von Zweigbergk <martinvonz@google.com>
parents:
44412
diff
changeset
|
85 |
44178
bd4f666b55a7
merge: drop now-unused "abort" argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents:
44159
diff
changeset
|
86 * `hg.merge()` has lost its `abort` argument. Please call |
bd4f666b55a7
merge: drop now-unused "abort" argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents:
44159
diff
changeset
|
87 `hg.abortmerge()` directly instead. |
44194
d4c1501225c4
cmdutil: change check_incompatible_arguments() *arg to single iterable
Martin von Zweigbergk <martinvonz@google.com>
parents:
44178
diff
changeset
|
88 |
44398
ddbc296a1f48
merge: drop redundant mergeforce argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents:
44396
diff
changeset
|
89 * `hg.merge()` has lost its `mergeforce` argument. It should have |
ddbc296a1f48
merge: drop redundant mergeforce argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents:
44396
diff
changeset
|
90 only ever been called with the same value as the `force` argument. |
ddbc296a1f48
merge: drop redundant mergeforce argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents:
44396
diff
changeset
|
91 |
44194
d4c1501225c4
cmdutil: change check_incompatible_arguments() *arg to single iterable
Martin von Zweigbergk <martinvonz@google.com>
parents:
44178
diff
changeset
|
92 * The `*others` argument of `cmdutil.check_incompatible_arguments()` |
d4c1501225c4
cmdutil: change check_incompatible_arguments() *arg to single iterable
Martin von Zweigbergk <martinvonz@google.com>
parents:
44178
diff
changeset
|
93 changed from being varargs argument to being a single collection. |