# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1527107531 -19800 # Node ID 958dad74e87759a5d52a5fe26dc9a694b32bed10 # Parent 6240579fd0c00600ba24c63cdb98e6e0bc5f1d5f tests: add tests for testing --abort while content-divergence resolution This patch adds a new test file with a very basic test of `--abort` on an interrupted evolve which was resolving content-divergence. Upcoming patches will add more rigourous tests. diff -r 6240579fd0c0 -r 958dad74e877 tests/test-evolve-abort-contentdiv.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-evolve-abort-contentdiv.t Thu May 24 02:02:11 2018 +0530 @@ -0,0 +1,102 @@ +Tests for the --abort flag for `hg evolve` command while content-divergence resolution +====================================================================================== + +The `--abort` flag aborts the interuppted evolve by undoing all the work which +was done during resolution i.e. stripping new changesets created, moving +bookmarks back, moving working directory back. + +This test contains cases when `hg evolve` is doing content-divergence resolution. + +Setup +===== + + $ cat >> $HGRCPATH < [phases] + > publish = False + > [alias] + > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}" + > [extensions] + > EOF + $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH + + $ hg init abortrepo + $ cd abortrepo + $ echo ".*\.orig" > .hgignore + $ hg add .hgignore + $ hg ci -m "added hgignore" + $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done; + + $ hg glog + @ 4:c41c793e0ef1 added d + | () draft + o 3:ca1b80f7960a added c + | () draft + o 2:b1661037fa25 added b + | () draft + o 1:c7586e2a9264 added a + | () draft + o 0:8fa14d15e168 added hgignore + () draft + +Creating content divergence, resolution of which will lead to conflicts +----------------------------------------------------------------------- + + $ echo bar > d + $ hg amend + + $ hg up c41c793e0ef1 --hidden + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + updated to hidden changeset c41c793e0ef1 + (hidden revision 'c41c793e0ef1' was rewritten as: e49523854bc8) + working directory parent is obsolete! (c41c793e0ef1) + (use 'hg evolve' to update to its successor: e49523854bc8) + + $ echo foobar > d + $ hg amend + 2 new content-divergent changesets + $ hg glog --hidden + @ 6:9c1631e352d9 added d + | () draft + | * 5:e49523854bc8 added d + |/ () draft + | x 4:c41c793e0ef1 added d + |/ () draft + o 3:ca1b80f7960a added c + | () draft + o 2:b1661037fa25 added b + | () draft + o 1:c7586e2a9264 added a + | () draft + o 0:8fa14d15e168 added hgignore + () draft + + $ hg evolve --content-divergent + merge:[6] added d + with: [5] added d + base: [4] added d + merging "other" content-divergent changeset 'e49523854bc8' + merging d + warning: conflicts while merging d! (edit, then use 'hg resolve --mark') + 0 files updated, 0 files merged, 0 files removed, 1 files unresolved + abort: fix conflicts and run 'hg evolve --continue' or use 'hg update -C .' to abort + [255] + + $ hg evolve --abort + evolve aborted + working directory is now at 9c1631e352d9 + + $ hg glog --hidden + @ 6:9c1631e352d9 added d + | () draft + | * 5:e49523854bc8 added d + |/ () draft + | x 4:c41c793e0ef1 added d + |/ () draft + o 3:ca1b80f7960a added c + | () draft + o 2:b1661037fa25 added b + | () draft + o 1:c7586e2a9264 added a + | () draft + o 0:8fa14d15e168 added hgignore + () draft