Mercurial > evolve
comparison tests/test-evolve-content-divergence.t @ 4420:6a20e0e9b957 stable
evolve: make sure user can recover from conflict (issue6053)
we make sure while continuing interrupted evolve it reach to right code
This patch fix the issue6053 which is about falling evolve into unrecoverable
state and this is how it call fall into it:
If after some rewrite operations we reach to a point where resparent for
two content divergent csets is obsolete and we hit a conflict in
relocation, so now if you run `hg evolve --continue` after resolving
the conflict: code execution would check if wdir parent is obsolete
and run solveobswdp() rather than going to continueevolve() part
and there we will hit by a "abort: outstanding uncommitted merge"
And same for `--abort` or `--stop` flags.
Changes in tests reflect the fixed behaviour.
author | Sushil khanchi <sushilkhanchi97@gmail.com> |
---|---|
date | Mon, 04 Mar 2019 03:16:51 +0530 |
parents | 1fdecdfd0df9 |
children | 62a6f8f4e694 d52f14bdb468 |
comparison
equal
deleted
inserted
replaced
4419:1fdecdfd0df9 | 4420:6a20e0e9b957 |
---|---|
927 | () [default] draft | 927 | () [default] draft |
928 o 0:8fa14d15e168 added hgignore | 928 o 0:8fa14d15e168 added hgignore |
929 () [default] draft | 929 () [default] draft |
930 | 930 |
931 | 931 |
932 Test which demonstrate that evolve can fall into unrecoverable state (issue6053): | 932 Test to make sure that evolve don't fall into unrecoverable state (issue6053): |
933 --------------------------------------------------------------------------------- | 933 ------------------------------------------------------------------------------ |
934 $ cd .. | 934 $ cd .. |
935 $ hg init localside | 935 $ hg init localside |
936 $ cd localside | 936 $ cd localside |
937 $ for ch in a b c d e; do | 937 $ for ch in a b c d e; do |
938 > echo $ch > $ch; | 938 > echo $ch > $ch; |
1014 $ hg res -m | 1014 $ hg res -m |
1015 (no more unresolved files) | 1015 (no more unresolved files) |
1016 continue: hg evolve --continue | 1016 continue: hg evolve --continue |
1017 | 1017 |
1018 $ hg evolve --continue | 1018 $ hg evolve --continue |
1019 update:[2] added c | 1019 evolving 6:de4ea3103326 "updated e" |
1020 abort: outstanding uncommitted merge | 1020 updating to "local" side of the conflict: ff6f7cd76a7c |
1021 [255] | 1021 merging "other" content-divergent changeset 'e504bd82de7e' |
1022 | 1022 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
1023 $ hg evolve --abort | 1023 working directory is now at 83b1664a580f |
1024 update:[2] added c | 1024 |
1025 abort: outstanding uncommitted merge | 1025 $ hg glog -l1 |
1026 [255] | 1026 @ 8:83b1664a580f updated e |
1027 | 1027 | () [default] draft |
1028 $ hg ci -m "merge commit" | 1028 ~ |
1029 abort: evolve in progress | |
1030 (use 'hg evolve --continue' or 'hg evolve --abort' to abort) | |
1031 [255] | |
1032 |