Fix FIXUP error for blank lines in interactive rebase
Empty lines of discarded commit messages were added to the commit message because they were not commented out properly. Bug: 422246 Change-Id: I263e8a6b30a3392d8b4f09c0695505068a0a485d Signed-off-by: Stefan Lay <stefan.lay@sap.com>
This commit is contained in:
parent
4feace2b9e
commit
8339a07e83
|
@ -2250,6 +2250,44 @@ public String modifyCommitMessage(String commit) {
|
||||||
head1Commit.getFullMessage());
|
head1Commit.getFullMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRebaseInteractiveFixupWithBlankLines() throws Exception {
|
||||||
|
// create file1 on master
|
||||||
|
writeTrashFile(FILE1, FILE1);
|
||||||
|
git.add().addFilepattern(FILE1).call();
|
||||||
|
git.commit().setMessage("Add file1\nnew line").call();
|
||||||
|
assertTrue(new File(db.getWorkTree(), FILE1).exists());
|
||||||
|
|
||||||
|
// create file2 on master
|
||||||
|
writeTrashFile("file2", "file2");
|
||||||
|
git.add().addFilepattern("file2").call();
|
||||||
|
git.commit().setMessage("Add file2").call();
|
||||||
|
assertTrue(new File(db.getWorkTree(), "file2").exists());
|
||||||
|
|
||||||
|
// update FILE1 on master
|
||||||
|
writeTrashFile(FILE1, "blah");
|
||||||
|
git.add().addFilepattern(FILE1).call();
|
||||||
|
git.commit().setMessage("updated file1 on master\n\nsome text").call();
|
||||||
|
|
||||||
|
git.rebase().setUpstream("HEAD~2")
|
||||||
|
.runInteractively(new InteractiveHandler() {
|
||||||
|
|
||||||
|
public void prepareSteps(List<RebaseTodoLine> steps) {
|
||||||
|
steps.get(1).setAction(Action.FIXUP);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String modifyCommitMessage(String commit) {
|
||||||
|
fail("No callback to modify commit message expected for single fixup");
|
||||||
|
return commit;
|
||||||
|
}
|
||||||
|
}).call();
|
||||||
|
|
||||||
|
RevWalk walk = new RevWalk(db);
|
||||||
|
ObjectId headId = db.resolve(Constants.HEAD);
|
||||||
|
RevCommit headCommit = walk.parseCommit(headId);
|
||||||
|
assertEquals("Add file2",
|
||||||
|
headCommit.getFullMessage());
|
||||||
|
}
|
||||||
|
|
||||||
@Test(expected = InvalidRebaseStepException.class)
|
@Test(expected = InvalidRebaseStepException.class)
|
||||||
public void testRebaseInteractiveFixupFirstCommitShouldFail()
|
public void testRebaseInteractiveFixupFirstCommitShouldFail()
|
||||||
|
|
|
@ -550,7 +550,7 @@ private static String composeSquashMessage(boolean isSquash,
|
||||||
} else {
|
} else {
|
||||||
sb.append("# The ").append(count).append(ordinal)
|
sb.append("# The ").append(count).append(ordinal)
|
||||||
.append(" commit message will be skipped:\n# ");
|
.append(" commit message will be skipped:\n# ");
|
||||||
sb.append(commitToPick.getFullMessage().replaceAll("([\n\r]+)",
|
sb.append(commitToPick.getFullMessage().replaceAll("([\n\r])",
|
||||||
"$1# "));
|
"$1# "));
|
||||||
}
|
}
|
||||||
// Add the previous message without header (i.e first line)
|
// Add the previous message without header (i.e first line)
|
||||||
|
|
Loading…
Reference in New Issue