##// END OF EJS Templates
simplemerge: take over formatting of label from `filemerge`...
simplemerge: take over formatting of label from `filemerge` The padding we do of conflict labels depends on which conflict marker style is used. For two-way conflict markers (the default), the length of the base label shouldn't matter. It does before this patch, however. This patch moves the formatting from `filemerge` to `simplemerge`. The latter knows which conflict marker style to use, so it can easily decide about the padding. This change will allow us to use more descriptive "base" labels without causing illogical padding in 2-way markers. I'll do that next. One wrinkle is that we pass the same labels to external merge tools. I decided to change that in this patch to be simpler: no padding, and no ellipsis to fit within 80 columns. My reasoning is that the typical external, 3-or-4-panel merge tool doesn't show the labels on top of each others, so the padding doesn't make sense there. The ellipsis is probably not necessary because the external tools probably have their own way of dealing with long labels. Also, we limit them to "80 - 8" to fit the "<<<<<<< " before, which is almost definitely not what an external tool would put there. Differential Revision: https://phab.mercurial-scm.org/D12019

File last commit:

r45363:f445a4f7 stable
r49433:3c8cc987 default
Show More
5.4
93 lines | 3.4 KiB | application/x-troff | GroffLexer
== New Features ==
* `hg purge`/`hg clean` can now delete ignored files instead of
untracked files, with the new -i flag.
* `hg pull` now has a `--confirm` flag to prompt before applying changes.
Config option `pull.confirm` is also added for that.
* `hg log` now defaults to using an '%' symbol for commits involved
in unresolved merge conflicts. That includes unresolved conflicts
caused by e.g. `hg update --merge` and `hg graft`. '@' still takes
precedence, so what used to be marked '@' still is.
* New `conflictlocal()` and `conflictother()` revsets return the
commits that are being merged, when there are conflicts. Also works
for conflicts caused by e.g. `hg graft`.
* `hg copy --forget` can be used to unmark a file as copied.
* The `format.revlog-compression` configuration entry now accept a list. The
first available option will be used. for example setting::
[format]
revlog-compression=zstd, zlib
Will use `zstd` compression for new repositories is available, and will
simply fall back to `zlib` if not.
* `hg debugmergestate` output is now templated, which may be useful
e.g. for IDEs that want to help the user resolve merge conflicts.
== New Experimental Features ==
* `hg copy` now supports a `--at-rev` argument to mark files as
copied in the specified commit. It only works with `--after` for
now (i.e., it's only useful for marking files copied using non-hg
`cp` as copied).
* Use `hg copy --forget --at-rev REV` to unmark already committed
copies.
== Bug Fixes ==
* Fix server exception when concurrent pushes delete the same bookmark
* Prevent pushes of divergent bookmarks (foo@remote)
* The push error "remote repository changed while pushing - please
try again" now only happens when a concurrent push changed related
heads (instead of when a concurrent pushed any revision).
== Backwards Compatibility Changes ==
* When `hg rebase` pauses for merge conflict resolution, the working
copy will no longer have the rebased node as a second parent. You
can use the new `conflictparents()` revset for finding the other
parent during a conflict.
* `hg rebase` now accepts repeated `--source` and `--base`
arguments. For example, `hg rebase --source 'A + B'` is equivalent
to `hg rebase --source A --source B`. This is a
backwards-incompatible change because it will break overriding an
alias `myrebase = rebase --source A` by `hg myrebase --source B`
(it will now rebase `(A + B)::` instead of `B::`).
* `hg recover` does not verify the validity of the whole repository
anymore. You can pass `--verify` or call `hg verify` if necessary.
* `hg debugmergestate` output format changed. Let us know if that is
causing you problems and we'll roll it back.
* Resolved merge conflicts are now cleared by `hg commit` even if the
working copy has no changes.
== Internal API Changes ==
* The deprecated `ui.progress()` has now been deleted. Please use
`ui.makeprogress()` instead.
* `hg.merge()` now takes a `ctx` instead of the previous `repo` and
`node` arguments.
* `hg.merge()` has lost its `abort` argument. Please call
`hg.abortmerge()` directly instead.
* `hg.merge()` has lost its `mergeforce` argument. It should have
only ever been called with the same value as the `force` argument.
* The `*others` argument of `cmdutil.check_incompatible_arguments()`
changed from being varargs argument to being a single collection.