tests/test-evolve-issue5881.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Fri, 05 Apr 2019 17:45:59 +0200
changeset 4473 14437b18b024
parent 4348 398c33b17d76
child 4363 a2fdbece7ce1
child 4577 bcd52ce0916d
permissions -rw-r--r--
evolve: fix divergence resolution when not merging a descendant In divergence resolution, when we merge other cset with divergent one we pass a `mergeancestor` arg to merge.update() and before this patch we were passing `mergeancestor` as True in every case. But it should be True only when we are merging a descendant onto an ancestor. When mergeancestor is True it does two things: 1) allows the merge if the destination is the same as the parent of the ctx (so we can use graft to copy commits) 2) informs update that the incoming changes are newer than the destination so it doesn't prompt about "remote changed foo which local deleted". So this patch change it to pass `mergeancestor` as True only when it is required. And changes in test file shows that it wasn't prompting either in those cases when it should (acc. to 2nd point) Test written by Pierre-Yves David, based the one updated in 5dbaabfe2c59.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4346
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     1
Test for issue 5881 present at https://bz.mercurial-scm.org/show_bug.cgi?id=5881
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     2
===============================================================================
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     3
which is about that if the working copy parent  is obsolete then evolve update
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     4
to its successor revision and stop; it doesn't continue to evolve remaining
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     5
revisions those were suppossed to evovle.
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     6
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     7
Setup
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     8
=====
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
     9
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    10
  $ cat >> $HGRCPATH <<EOF
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    11
  > [phases]
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    12
  > publish = False
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    13
  > [alias]
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    14
  > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}"
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    15
  > [extensions]
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    16
  > EOF
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    17
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    18
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    19
  $ hg init issue5881
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    20
  $ cd issue5881
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    21
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    22
Prepare the directory by creating an orphan and update to its obsolete parent:
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    23
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    24
  $ for ch in a b c; do echo $ch > $ch; hg ci -Am "added "$ch; done;
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    25
  adding a
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    26
  adding b
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    27
  adding c
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    28
  $ hg up 1 -q
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    29
  $ hg ci --amend -m "updated b"
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    30
  1 new orphan changesets
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    31
  $ hg up 1
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    32
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    33
  working directory parent is obsolete! (5f6d8a4bf34a)
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    34
  (use 'hg evolve' to update to its successor: e6048a693c0d)
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    35
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    36
  $ hg glog
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    37
  o  3:e6048a693c0d updated b
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    38
  |   () draft
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    39
  | *  2:155349b645be added c
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    40
  | |   () draft
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    41
  | @  1:5f6d8a4bf34a added b
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    42
  |/    () draft
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    43
  o  0:9092f1db7931 added a
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    44
      () draft
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    45
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    46
Test `hg evolve` evolve all the revisions specified by user:
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    47
  $ hg evolve -r .::
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    48
  update:[3] updated b
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    49
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
ff483949674e evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
diff changeset
    50
  working directory is now at e6048a693c0d
4348
398c33b17d76 evolve: make sure we don't stop after evolution of obsparent (issue5881)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 4346
diff changeset
    51
  move:[2] added c
398c33b17d76 evolve: make sure we don't stop after evolution of obsparent (issue5881)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 4346
diff changeset
    52
  atop:[3] updated b
398c33b17d76 evolve: make sure we don't stop after evolution of obsparent (issue5881)
Sushil khanchi <sushilkhanchi97@gmail.com>
parents: 4346
diff changeset
    53
  working directory is now at c3a628eb9aaf