Mercurial > hg
changeset 48005:b642a6298ce0
merge: with stable
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 20 Sep 2021 15:51:23 -0400 |
parents | 5e7eea915019 (current diff) 1941064d3713 (diff) |
children | 1fda8c9358ce |
files | |
diffstat | 6 files changed, 130 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/check-code.py Wed Sep 15 18:41:38 2021 +0200 +++ b/contrib/check-code.py Mon Sep 20 15:51:23 2021 -0400 @@ -195,7 +195,7 @@ [ (r'^function', "don't use 'function', use old style"), (r'^diff.*-\w*N', "don't use 'diff -N'"), - (r'\$PWD|\${PWD}', "don't use $PWD, use `pwd`"), + (r'\$PWD|\${PWD}', "don't use $PWD, use `pwd`", "no-pwd-check"), (r'^([^"\'\n]|("[^"\n]*")|(\'[^\'\n]*\'))*\^', "^ must be quoted"), (r'kill (`|\$\()', "don't use kill, use killdaemons.py"), ],
--- a/mercurial/commit.py Wed Sep 15 18:41:38 2021 +0200 +++ b/mercurial/commit.py Mon Sep 20 15:51:23 2021 -0400 @@ -389,6 +389,7 @@ text = fctx.data() if ( fparent2 != repo.nullid + or fparent1 == repo.nullid or meta or flog.cmp(fparent1, text) or force_new_node
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/relnotes/5.9 Mon Sep 20 15:51:23 2021 -0400 @@ -0,0 +1,86 @@ +== New Features == + + * `hg config` now has a `--source` option to show where each + configuration value comes from. + * Introduced a command (debug-repair-issue6533) to repair repositories affected + by issue6528 where certain files would show up as modified even if they were + clean due to an issue in the copy-tracing code. + +== Default Format Change == + +These changes affect newly created repositories (or new clone) done with +Mercurial 5.9. + + +== New Experimental Features == + + * A `changelogv2` format has been introduced. It is not ready for use yet, but + will be used later to address some of the weaknesses of the current revlog + format. + * Initial experiment and support for `dirstatev2`, a new dirstate format that + addresses some of the weaknesses of the current dirstate format. Python + C + and Rust support are being implemented, but the Rust solution is the one + currently getting the attention for performance. + * Initial support for `rhg status`. `rhg` is the Rust wrapper executable for hg + that shortcuts some commands for faster execution speed. + +== Bug Fixes == + + * Fixed a regression (in 5.9.1) introduced in 5.9 when cloning repos with + deep filenames + * Fixed detection of directories becoming symlinks, but only when using the + Rust extensions. + * Fixed ignore and include not composing in the Rust status + * `hg commit --interactive` now handles deselecting edits of a rename + * Fixed a case where `hg evolve` gives different results when interrupted + * Fixed a memory leak in phases computation + * `histedit` and `shelve` don't swallow errors when updating the working copy + anymore + * Improve error message when detecting content-divergence with a hidden + common predecessor + * No longer re-order parents in filelog, see issue6533 + * Fix revisions affected by issue6533 on the fly during exchange + * Many Windows fixes for stability and py3 compatibility improvements + * Many other miscellaneous fixes + +== Backwards Compatibility Changes == + + +== Internal API Changes == + +The Dirstate API have been updated as the previous function leaked some +internal details and did not distinguish between two important cases: "We are +changing parent and need to adjust the dirstate" and "some command is changing +which file is tracked". To clarify the situation: + +* the following functions have been deprecated, + + - `dirstate.add`, + - `dirstate.normal`, + - `dirstate.normallookup`, + - `dirstate.merge`, + - `dirstate.otherparent`, + - `dirstate.remove`, + - `dirstate.drop`, + - `dirstateitem.__getitem__`, + +* these new functions are added for the "adjusting parents" use-case: + + - `dirstate.update_file`, + - `dirstate.update_file_p1`, + +* these new function are added for the "adjusting wc file" use-case": + + - `dirstate.set_tracked`, + - `dirstate.set_untracked`, + - `dirstate.set_clean`, + - `dirstate.set_possibly_dirty`, + +See inline documentation of the new functions for details. + +* Additionally, the following have been deprecated: + - `urlutil.getpath` function + - `localrepository.updatecaches`' `full` argument + +* The following have been removed: + - `revlog.revlogio` has been removed
--- a/relnotes/next Wed Sep 15 18:41:38 2021 +0200 +++ b/relnotes/next Mon Sep 20 15:51:23 2021 -0400 @@ -1,51 +1,42 @@ == New Features == - - * `hg config` now has a `--source` option to show where each - configuration value comes from. + * `debugrebuildfncache` now has an option to rebuild only the index files == Default Format Change == These changes affects newly created repositories (or new clone) done with -Mercurial 5.8. +Mercurial 6.0. == New Experimental Features == + * Added a new `web.full-garbage-collection-rate` to control performance. See + de2e04fe4897a554b9ef433167f11ea4feb2e09c for more information == Bug Fixes == + * `hg fix --working-dir` now correctly works when in an uncommitted merge state + * `rhg` (Rust fast-path for `hg`) now supports the full config list syntax + * `rhg` now parses some corner-cases for revsets correctly + * Lots of Windows fixes + * Lots of miscellaneous other fixes == Backwards Compatibility Changes == == Internal API Changes == -The Dirstate API have been updated as the previous function leaked some -internal details and did not distinct between two important cases: "We are -changing parent and need to adjust the dirstate" and "some command is changing -which file is tracked". To clarify the situation: - -* the following functions have been deprecated, +The following functions have been removed: - - dirstate.add, - - dirstate.normal, - - dirstate.normallookup, - - dirstate.merge, - - dirstate.otherparent, - - dirstate.remove, - - dirstate.drop, - -* these new functions are added for the "adjusting parents" use-case: + * `dirstate.normal` + * `dirstate.normallookup` + * `dirstate.otherparent` + * `dirstate.add` + * `dirstate.remove` + * `dirstate.drop` + * `dirstate.__getitem__` - - dirstate.update_file, - - dirstate.update_file_p1, - -* these new function are added for the "adjusting wc file" use-case": +Miscellaneous: - - dirstate.set_tracked, - - dirstate.set_untracked, - - dirstate.set_clean, - - dirstate.set_possibly_dirty, - -See inline documentation of the new functions for details. + * `wireprotov1peer`'s `batchable` is now a simple function and not a generator + anymore \ No newline at end of file
--- a/tests/test-narrow-commit.t Wed Sep 15 18:41:38 2021 +0200 +++ b/tests/test-narrow-commit.t Mon Sep 20 15:51:23 2021 -0400 @@ -104,3 +104,8 @@ $ hg status $ hg debugdirstate --no-dates n 644 10 set inside/f1 + +Can commit empty files + + $ touch inside/c; hg add inside/c; hg commit -qm _; hg verify -q + $ hg cat -r . inside/c
--- a/tests/test-removeemptydirs.t Wed Sep 15 18:41:38 2021 +0200 +++ b/tests/test-removeemptydirs.t Mon Sep 20 15:51:23 2021 -0400 @@ -1,5 +1,13 @@ Tests for experimental.removeemptydirs + $ cat >> pwd.py << EOF + > import os + > try: + > print(os.getcwd()) + > except OSError: + > print("<directory is no longer accessible>") + > EOF + $ NO_RM=--config=experimental.removeemptydirs=0 $ DO_RM=--config=experimental.removeemptydirs=1 $ isdir() { if [ -d $1 ]; then echo yes; else echo no; fi } @@ -132,8 +140,15 @@ r1 r2 somedir - $ pwd +#if windows + $ "$PYTHON" "$TESTTMP/pwd.py" $TESTTMP/hghistedit/somedir +#else + $ echo ${PWD} # no-pwd-check + $TESTTMP/hghistedit/somedir + $ "$PYTHON" "$TESTTMP/pwd.py" + <directory is no longer accessible> +#endif $ ls -1 $TESTTMP/hghistedit/somedir foo $ ls -1 @@ -142,6 +157,7 @@ Get out of the doomed directory $ cd $TESTTMP/hghistedit + chdir: error retrieving current directory: getcwd: cannot access parent directories: $ENOENT$ (?) $ hg files --rev . | grep somedir/ somedir/foo