view tests/test-evolve-split.t @ 6626:7580aa2ac660

evolve: remove compat for exchange.buildobsmarkerspart() The function in question was moved to bundle2 module in e70d6dbde713, which is Mercurial 4.3. Let's remove this compatibility, it's very much not needed anymore and pytype was complaining about it.
author Anton Shestakov <av6@dwimlabs.net>
date Sun, 31 Dec 2023 17:51:27 -0300
parents d919851981d4
children
line wrap: on
line source

Check that evolve can handle split commits
------------------------------------------

  $ cat >> $HGRCPATH <<EOF
  > [ui]
  > logtemplate = {rev}:{node|short}@{branch}({phase}) {desc|firstline}\n
  > [extensions]
  > EOF
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
  $ mkcommit() {
  >    echo "$1" > "$1"
  >    hg add "$1"
  >    hg ci -m "add $1"
  > }

  $ hg init split
  $ cd split
  $ mkcommit aa

Create a split commit
  $ printf "oo" > oo;
  $ printf "pp" > pp;
  $ hg add oo pp
  $ hg commit -m "oo+pp"
  $ mkcommit uu
  $ hg up 0
  0 files updated, 0 files merged, 3 files removed, 0 files unresolved
  $ printf "oo" > oo;
  $ hg add oo
  $ hg commit -m "_oo"
  created new head
  $ printf "pp" > pp;
  $ hg add pp
  $ hg commit -m "_pp"
  $ hg prune --successor "desc(_oo) + desc(_pp)" -r "desc('oo+pp')" --split
  1 changesets pruned
  1 new orphan changesets
  $ hg log -G
  @  4:d0dcf24cddd3@default(draft) _pp
  |
  o  3:a7fdfda64c08@default(draft) _oo
  |
  | *  2:f52200b086ca@default(draft) add uu
  | |
  | x  1:d55647aaa0c6@default(draft) oo+pp
  |/
  o  0:58663bb03074@default(draft) add aa
  
  $ hg evolve --rev "0::"
  move:[2] add uu
  atop:[4] _pp

  $ cd ..
  $ hg init split-merged
  $ cd split-merged
  $ mkcommit aa

Split the changeset such that the successors don't have a single root and there's an unrelated changeset in between
  $ printf "oo" > oo;
  $ printf "pp" > pp;
  $ printf "qq" > qq;
  $ hg add oo pp qq
  $ hg commit -m "oo+pp+qq"
  $ mkcommit uu
  $ hg up 0
  0 files updated, 0 files merged, 4 files removed, 0 files unresolved
  $ printf "oo" > oo;
  $ hg add oo
  $ hg commit -m "_oo"
  created new head
  $ hg up 0
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ printf "pp" > pp;
  $ hg add pp
  $ hg commit -m "_pp"
  created new head
  $ hg merge 3
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg ci -m 'merge oo and pp'
  $ printf "qq" > qq;
  $ hg add qq
  $ hg commit -m "_qq"
  $ hg prune --successor "desc(_oo) + desc(_pp) + desc(_qq)" -r "desc('oo+pp+qq')" --split
  1 changesets pruned
  1 new orphan changesets
  $ hg log -G
  @  6:ea5b1e180c04@default(draft) _qq
  |
  o    5:bf7c32161b4b@default(draft) merge oo and pp
  |\
  | o  4:ece0aaa22eb7@default(draft) _pp
  | |
  o |  3:a7fdfda64c08@default(draft) _oo
  |/
  | *  2:cc56c47d84b3@default(draft) add uu
  | |
  | x  1:575a7380a87d@default(draft) oo+pp+qq
  |/
  o  0:58663bb03074@default(draft) add aa
  
  $ hg evolve --rev "0::"
  move:[2] add uu
  atop:[6] _qq