Skip to content
Snippets Groups Projects
Commit 0ea08126a2af authored by Manuel Jacob's avatar Manuel Jacob
Browse files

rebase: fix regression in file change detection introduced by 0ecb3b11fcad

Before 0ecb3b11fcad, `wctx._compact()`, was called by `wctx.nofilechanges()` as
a side effect. Later, it turned out that this side effect is needed to correctly
detect which files changed. See https://phab.mercurial-scm.org/D8733#131949 for
the history.

The problem could also be triggered by running `tests/test-rebase-parameters.t`
with `--extra-config-opt rebase.experimental.inmemory=1`.

Differential Revision: https://phab.mercurial-scm.org/D8843
parent 1476ec96965f
No related branches found
No related tags found
No related merge requests found
......@@ -1442,6 +1442,10 @@
if b'branch' in extra:
branch = extra[b'branch']
# FIXME: We call _compact() because it's required to correctly detect
# changed files. This was added to fix a regression shortly before the 5.5
# release. A proper fix will be done in the default branch.
wctx._compact()
memctx = wctx.tomemctx(
commitmsg,
date=date,
......
......@@ -963,3 +963,21 @@
|/
o 0: d20a80d4def3 'base'
$ cd ..
Test (virtual) working directory without changes, created by merge conflict
resolution. There was a regression where the file was incorrectly detected as
changed although the file contents were the same as in the parent.
$ hg init nofilechanges
$ cd nofilechanges
$ echo a > a; hg add a; hg ci -m a
$ echo foo > test; hg add test; hg ci -m b
$ hg up 0 -q
$ echo bar > test; hg add test; hg ci -m c
created new head
$ hg rebase -d 2 -d 1 --tool :local
rebasing 2:ca2749322ee5 "c" (tip)
note: not rebasing 2:ca2749322ee5 "c" (tip), its destination already has all its changes
saved backup bundle to $TESTTMP/nofilechanges/.hg/strip-backup/ca2749322ee5-6dc7e94b-rebase.hg
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment