Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#13491 closed enhancement (fixed)

mercurial-5.4

Reported by: Bruce Dubbs Owned by: Douglas R. Reno
Priority: normal Milestone: 10.0
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

New minor version.

Change History (7)

comment:1 by Douglas R. Reno, 4 years ago

Owner: changed from blfs-book to Douglas R. Reno
Status: newassigned

comment:2 by Douglas R. Reno, 4 years ago

== 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.

comment:3 by Douglas R. Reno, 4 years ago

Guess what now needs rust...

renodr [ /sources/mercurial-5.4 ]$ TESTFLAGS="-j4 --tmpdir tmp --blacklist blacklists/fsmonitor --blacklist blacklists/linux-vfat" PYTHON=python3 make check
if command -v cargo >/dev/null 2>&1; then \
        make rust-tests; \
fi
make[1]: Entering directory '/sources/mercurial-5.4'
cd /sources/mercurial-5.4/rust/hg-cpython \
        && cargo test --quiet --all \
                --no-default-features --features "python3-bin"

On that note, I'm trying the tests with python3. The documentation generated properly. If that goes the way that it's supposed to, we can remove the following commands:

2to3 -w doc/hgmanpage.py &&
rm -rf tests/tmp &&

We can also replace the Python2 dependency - but we'll have to put rust in the dependencies as well. I'll have to prepend PYTHON=python3 to all of the 'make' commands too, but seeing as that gets us just one step closer away from getting rid of python2 (assuming it doesn't have any regressions)

Just over 900 tests to go! :)

comment:4 by Douglas R. Reno, 4 years ago

Failed test-doctest.py: output changed and returned error code 1
Failed test-hghave.t: output changed
# Ran 819 tests, 100 skipped, 2 failed.

The test results seem to be sane, and the two basic tests that we try at the bottom of the page work.

This is development after all - let's go for python3.

comment:5 by Douglas R. Reno, 4 years ago

Resolution: fixed
Status: assignedclosed

Fixed at r4102

comment:6 by Bruce Dubbs, 4 years ago

Milestone: 9.210,0

Milestone renamed

comment:7 by Bruce Dubbs, 4 years ago

Milestone: 10,010.0

Milestone renamed

Note: See TracTickets for help on using tickets.