view tests/test-evolve-content-divergent-first-changeset.t @ 5207:a5876853ba15 stable

evolve: support successors of ancestor of orphan with multiple roots The previous code checked that the set of successors has a single root. However, there’s no reason to require that in general. Example: o 6 | o 5 |\ | o 4 | | o | 3 |/ | * 2 | | | x 1 |/ o 0 1 is obsoleted by 3, 4 and 6. We are considering the case when 2 gets evolved. The roots are [3, 4] and the heads are [6]. Before the change, the user was asked which destination to choose, but there was only one choice (6). After the change, 6 is chosen as the destination.
author Manuel Jacob <me@manueljacob.de>
date Wed, 11 Mar 2020 16:05:53 +0100
parents 7fa4bb23a78a
children 1752a2e7a226 e78926a1a473
line wrap: on
line source

  $ . $TESTDIR/testlib/pythonpath.sh
  $ cat >> $HGRCPATH << EOF
  > [extensions]
  > evolve=
  > [experimental]
  > evolution.allowdivergence = True
  > EOF

This test file tests the case of content-divergence resolution of changesets
that have the null revision as the parent.

  $ hg init issue6201
  $ cd issue6201

  $ touch test
  $ hg add test
  $ hg commit -m test
  $ hg log -T '{node|short}\n'
  be090ea66256

  $ echo a >> test
  $ hg amend -m div1
  $ hg log -T '{node|short}\n'
  79fa0eb22d65

  $ hg up be090ea66256 --hidden --quiet
  updated to hidden changeset be090ea66256
  (hidden revision 'be090ea66256' was rewritten as: 79fa0eb22d65)
  working directory parent is obsolete! (be090ea66256)
  $ echo a >> test
  $ echo b >> test
  $ hg amend -m div2
  2 new content-divergent changesets
  $ hg log -T '{node|short}\n'
  4b2524b7508e
  79fa0eb22d65

  $ hg evolve --content-divergent --tool :other
  merge:[1] div1
  with: [2] div2
  base: [0] test
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
  working directory is now at 12772224141b

  $ hg evolve --list