diff tests/test-rebase-inmemory.t @ 45200:0ea08126a2af stable

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
author Manuel Jacob <me@manueljacob.de>
date Tue, 28 Jul 2020 20:47:50 +0200
parents dc5e5577af39
children 5780a04a1b46
line wrap: on
line diff
--- a/tests/test-rebase-inmemory.t	Tue Jul 28 20:07:05 2020 +0200
+++ b/tests/test-rebase-inmemory.t	Tue Jul 28 20:47:50 2020 +0200
@@ -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