Mercurial > hg
diff tests/test-graft.t @ 32204:78fb569e2c33 stable
graft: test coverage of grafts and how merges can break duplicate detection
This demonstrates unfortunate behaviour: extending the graft range cause the
graft to behave differently. When the graft range includes a merge, we fail to
detect duplicates that are ancestors of the merge.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Tue, 09 May 2017 00:11:30 +0200 |
parents | 52dabcc49968 |
children | b4e1e30528c7 |
line wrap: on
line diff
--- a/tests/test-graft.t Mon May 08 23:05:01 2017 -0400 +++ b/tests/test-graft.t Tue May 09 00:11:30 2017 +0200 @@ -1309,4 +1309,49 @@ $ hg status --change . M b/x +Prepare for test of skipped changesets and how merges can influence it: + + $ hg merge -q -r 1 --tool :local + $ hg ci -m m + $ echo xx >> b/x + $ hg ci -m xx + + $ hg log -G -T '{rev} {desc|firstline}' + @ 7 xx + | + o 6 m + |\ + | o 5 y + | | + +---o 4 y + | | + | o 3 x + | | + | o 2 b + | | + o | 1 x + |/ + o 0 a + +Grafting of plain changes correctly detects that 3 and 5 should be skipped: + + $ hg up -qCr 4 + $ hg graft --tool :local -r 2::5 + skipping already grafted revision 3:ca093ca2f1d9 (was grafted from 1:13ec5badbf2a) + skipping already grafted revision 5:43e9eb70dab0 (was grafted from 4:6c9a1289e5f1) + grafting 2:42127f193bcd "b" + +Extending the graft range to include a merge will unfortunately make us miss +that 3 and 5 should be skipped: + + $ hg up -qCr 4 + $ hg graft --tool :local -r 2::7 + skipping ungraftable merge revision 6 + skipping already grafted revision 5:43e9eb70dab0 (was grafted from 4:6c9a1289e5f1) + grafting 2:42127f193bcd "b" + grafting 3:ca093ca2f1d9 "x" + note: graft of 3:ca093ca2f1d9 created no changes to commit + grafting 7:d3c3f2b38ecc "xx" + note: graft of 7:d3c3f2b38ecc created no changes to commit + $ cd ..