public void testMergedUpdate() throws Exception { // Download content in two locations env1.execute("co", EMPTY_ARGS, new String[] {"proj2"}, ""); env2.execute("co", EMPTY_ARGS, new String[] {"proj2"}, ""); // change the file in both directories in a different way so that // can be merged without conflicts env1.prefixToFile("proj2/f1/c.txt", new String[] {"AppendIt at top"}); env2.appendToFile("proj2/f1/c.txt", new String[] {"AppendIt at bottom"}); // commit changes of the first env1.execute("ci", new String[] {"-m", "TestMessage"}, new String[] {"proj2"}, ""); // changes should be merged env2.execute("update", EMPTY_ARGS, new String[] {"proj2"}, ""); env2.execute("ci", new String[] {"-m", "TestMessage"}, new String[] {"proj2"}, ""); }
public void testSimpleConflict() throws Exception { // Download content in two locations env1.execute("co", EMPTY_ARGS, new String[] {"proj2"}, ""); env2.execute("co", EMPTY_ARGS, new String[] {"proj2"}, ""); // change the file in both directories in a different way env1.appendToFile("proj2/f1/c.txt", new String[] {"AppendIt This"}); env2.appendToFile("proj2/f1/c.txt", new String[] {"AppendIt That"}); // commit changes of the first env1.execute("ci", new String[] {"-m", "TestMessage"}, new String[] {"proj2"}, ""); // load the changes into the changed file // and submit the merge env2.execute("update", EMPTY_ARGS, new String[] {"proj2"}, ""); // commit must fail because we have a merged conflict which has not been // edited. env2.setIgnoreExceptions(true); env2.execute("ci", new String[] {"-m", "TestMessage"}, new String[] {"proj2"}, ""); env2.setIgnoreExceptions(false); // Make a change to the file in order to let the cvs-client know // that we solved the confilict env2.appendToFile("proj2/f1/c.txt", new String[] {"That's allright"}); env2.execute("ci", new String[] {"-m", "TestMessage"}, new String[] {"proj2"}, ""); }