tests/test-evolve-content-divergent-first-changeset.t
author Martin von Zweigbergk <martinvonz@google.com>
Thu, 07 May 2020 07:57:14 -0700
changeset 5344 142827ad86f3
parent 5341 13376ca93fa3
child 5345 a73cdef2e33f
permissions -rw-r--r--
evolve: mark new hash-salting extras keys as uninteresting for effect flag The user doesn't care if the `evolve_source_local`/`evolve_source_other` values in the extras changed, so this patch adds them to the blacklist that already exists for that purpose. This should also fix the flakiness we've seen in some tests. The flakiness seemed to stem from `mercurial.obsutil.geteffectflag()` not sorting extras keys. That means we ran into it relatively often for the `evolve_source_local`/`evolve_source_other` keys because there were two of them. That sorting bug should be fixed upstream.

  $ . $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 3b448ec6f793

  $ hg evolve --list