# HG changeset patch # User Martin von Zweigbergk # Date 1575914724 28800 # Node ID 265e029785ae28bf235e4f4408df68cc03f1f285 # Parent 13376ca93fa3cbb10cc9a09607529313ddce95f0 tests: show crash from divergence resolution resulting in empty commit When relocating a commit results in an empty commit (because the changes are already in the destination), we get a TypeError from evolve. diff -r 13376ca93fa3 -r 265e029785ae tests/test-evolve-content-divergent-relocation.t --- a/tests/test-evolve-content-divergent-relocation.t Thu Apr 30 10:05:14 2020 -0700 +++ b/tests/test-evolve-content-divergent-relocation.t Mon Dec 09 10:05:24 2019 -0800 @@ -600,3 +600,59 @@ $ cd .. + +Testing when relocation results in nothing to commit +---------------------------------------------------- + +Set up a repo where relocation results in no changes to commit because the +changes from the relocated node are already in the destination. + + $ hg init nothing-to-commit + $ cd nothing-to-commit + $ echo 0 > a + $ hg ci -Aqm initial + $ echo 1 > a + $ hg ci -Aqm upstream + $ hg prev -q + +Create the source of divergence. + $ echo 0 > b + $ hg ci -Aqm divergent + +The first side of the divergence get rebased on top of upstream. + $ hg rebase -r . -d 'desc("upstream")' + rebasing 2:898ddd4443b3 "divergent" (tip) + $ hg --hidden co 2 -q + updated to hidden changeset 898ddd4443b3 + (hidden revision '898ddd4443b3' was rewritten as: befae6138569) + working directory parent is obsolete! (898ddd4443b3) + +The other side of the divergence gets amended so it matches upstream. +Relocation (onto upstream) will therefore result in no changes to commit. + $ hg revert -r 'desc("upstream")' --all + removing b + reverting a + $ hg amend --config experimental.evolution.allowdivergence=True + 2 new content-divergent changesets + +Add a commit on top. This one should become an orphan. Evolving it later +should put it on top of the other divergent side (the one that's on top of +upstream) + $ echo 0 > c + $ hg ci -Aqm child + $ hg co -q null + $ hg glog + o 5:88473f9137d1 child + | () [default] draft + * 4:4cc21313ecee divergent + | () [default] draft + | * 3:befae6138569 divergent + | | () [default] draft + | o 1:33c576d20069 upstream + |/ () [default] draft + o 0:98a3f8f02ba7 initial + () [default] draft + $ hg evolve --content-divergent 2>&1 | grep TypeError + TypeError: expected *, NoneType found (glob) + + $ cd ..