Mercurial > hg-stable
changeset 42978:f200bea8470b
histedit: demonstrate breakage when `update` to a revision breaks
I'm honestly impressed that nobody has hit this in the over a decade
that histedit has existed, but here we are.
Differential Revision: https://phab.mercurial-scm.org/D6881
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 23 Sep 2019 16:29:16 -0400 |
parents | 43c84b816445 |
children | 699102b10530 |
files | tests/test-histedit-non-commute-abort.t |
diffstat | 1 files changed, 51 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-histedit-non-commute-abort.t Wed Sep 25 10:59:29 2019 -0400 +++ b/tests/test-histedit-non-commute-abort.t Mon Sep 23 16:29:16 2019 -0400 @@ -162,4 +162,55 @@ summary: a +Early tree conflict doesn't leave histedit in a wedged state. + $ hg rm c + $ hg ci -m 'remove c' + $ echo collision > c + + $ hg histedit e860deea161a --commands - 2>&1 <<EOF + > edit e860deea161a + > pick 652413bf663e + > pick bfa474341cc9 + > pick 1b0954ff00fc + > EOF + c: untracked file differs + abort: untracked files in working directory differ from files in requested revision + [255] + +BUG: we didn't actually change p1 of the working copy, but we're in a +histedit state. This confuses the process very badly and leads to +histedit stripping things it shouldn't (in obsmarker mode it inserts +bogus prune markers in this case.) + + $ hg log -r 'p1()' -T'{node}\n' + 1b0954ff00fccb15a37b679e4a35e9b01dfe685e + $ hg status --config ui.tweakdefaults=yes + ? c + ? e.orig + # The repository is in an unfinished *histedit* state. + + # To continue: hg histedit --continue + # To abort: hg histedit --abort + + $ hg histedit --continue + 652413bf663e: skipping changeset (no changes) + bfa474341cc9: skipping changeset (no changes) + 1b0954ff00fc: skipping changeset (no changes) + saved backup bundle to $TESTTMP/r/.hg/strip-backup/e860deea161a-a0738322-histedit.hg + + $ hg log -GTcompact + warning: ignoring unknown working parent 1b0954ff00fc! + o 3[tip] 055a42cdd887 1970-01-01 00:00 +0000 test + | d + | + o 2 177f92b77385 1970-01-01 00:00 +0000 test + | c + | + o 1 d2ae7f538514 1970-01-01 00:00 +0000 test + | b + | + o 0 cb9a9f314b8b 1970-01-01 00:00 +0000 test + a + + $ cd ..