@Test
public void testMergeConflict() throws IOException {
Assume.assumeTrue(isGraftSupported());
BaseRepository repo = getTestRepository();
writeFile("file", "");
Changeset base = commit();
writeFile("file", "X");
Changeset changed1 = commit();
update(base);
writeFile("file", "Y");
commit();
GraftContext ctx = GraftCommand.on(repo).execute(changed1);
Assert.assertNotNull(ctx);
Assert.assertTrue(ctx.getFlagConflicts().isEmpty());
Assert.assertTrue(ctx.getKeepDeleteConflicts().isEmpty());
MergeConflict mergeConflict = Utils.single(ctx.getMergeConflicts());
Assert.assertNotNull(mergeConflict);
// Mercurial 2.2 will skip empty commits, so we must resolve
// with new content.
writeFile("file", "XY");
mergeConflict.markResolved();
Changeset cs = ctx.commit();
Assert.assertNotNull(cs);
Assert.assertEquals(changed1.getNode(), cs.getExtra().getString("source"));
}