relnotes/next
author Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
Tue, 25 Feb 2020 20:27:39 -0500
changeset 44412 edc8504bc26b
parent 44398 ddbc296a1f48
child 44434 2f290136b7d6
permissions -rw-r--r--
exchange: turn on option that makes concurrent pushes work better The motivation is simply to make hg work better out of the box. This is a slight backwards compatibility break, because client extensions could have assumed that the list of heads the client sees during discovery will be the list of heads during the entirety of the push. It seems unlikely to matter, and not worth mentioning. There's a fair amount of diff in tests, but this is just due to sending a few more bytes on the wire, except for test-acl.t. The extra "invalid branch cache" lines in test-acl.t don't seem to indicate a problem: the branchcache now get computed during the bundle application (because of the check:updated-heads bundle part), but doesn't get rolled back when transactions rollback, thus causing a message in the next operation computing the branch cache. Before this change, I assume the branchcache was only computed on transaction commit, so not computed at all when the transactions roll back, thus no messages. Differential Revision: https://phab.mercurial-scm.org/D8202
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
44345
14d0e89520a2 graphlog: use '%' for other context in merge conflict
Martin von Zweigbergk <martinvonz@google.com>
parents: 44343
diff changeset
     6
 * `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
     7
    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
     8
    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
     9
    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
    10
14d0e89520a2 graphlog: use '%' for other context in merge conflict
Martin von Zweigbergk <martinvonz@google.com>
parents: 44343
diff changeset
    11
 * 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
    12
   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
    13
   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
    14
44364
8be0c63535b5 copy: add option to unmark file as copied
Martin von Zweigbergk <martinvonz@google.com>
parents: 44347
diff changeset
    15
 * `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
    16
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
    17
 * 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
    18
   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
    19
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
     [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
    21
     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
    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
   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
    24
   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
    25
44396
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
    26
 * `hg debugmergestate` output is now templated, which may be useful
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
    27
   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
    28
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
    29
44367
9dab3fa64325 copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents: 44365
diff changeset
    30
== New Experimental Features ==
44343
8561ad49915d revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents: 44289
diff changeset
    31
44367
9dab3fa64325 copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents: 44365
diff changeset
    32
 * `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
    33
   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
    34
   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
    35
   `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
    36
44365
7c4b98a4e536 copy: add experimetal support for unmarking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents: 44364
diff changeset
    37
 * 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
    38
   copies.
7c4b98a4e536 copy: add experimetal support for unmarking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents: 44364
diff changeset
    39
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    40
== Bug Fixes  ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    41
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
    42
 * 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
    43
44392
efd73cdcfbac relnotes: move entry to the right spot
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 44391
diff changeset
    44
 * 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
    45
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44398
diff changeset
    46
 * 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
    47
   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
    48
   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
    49
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44398
diff changeset
    50
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    51
== Backwards Compatibility Changes ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    52
44347
9c9cfecd4600 rebase: don't use rebased node as dirstate p2 (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents: 44345
diff changeset
    53
 * 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
    54
   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
    55
   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
    56
   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
    57
44369
815c63526d1d relnotes: add entry about previous `hg recover` change
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44367
diff changeset
    58
 * `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
    59
   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
    60
44396
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
    61
 * `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
    62
   causing you problems and we'll roll it back.
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
    63
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
    64
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    65
== Internal API Changes ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    66
44159
df2162672d24 progress: delete deprecated ui.progress()
Martin von Zweigbergk <martinvonz@google.com>
parents: 44133
diff changeset
    67
 * 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
    68
   `ui.makeprogress()` instead.
44178
bd4f666b55a7 merge: drop now-unused "abort" argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents: 44159
diff changeset
    69
bd4f666b55a7 merge: drop now-unused "abort" argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents: 44159
diff changeset
    70
 * `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
    71
   `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
    72
44398
ddbc296a1f48 merge: drop redundant mergeforce argument from hg.merge()
Martin von Zweigbergk <martinvonz@google.com>
parents: 44396
diff changeset
    73
 * `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
    74
   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
    75
44194
d4c1501225c4 cmdutil: change check_incompatible_arguments() *arg to single iterable
Martin von Zweigbergk <martinvonz@google.com>
parents: 44178
diff changeset
    76
 * 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
    77
   changed from being varargs argument to being a single collection.