Browse Source

Interactive rebase: Fix order of commit messages on squash

Bug: 431214
Change-Id: I295bfdc5751545b046d7fe7efc3f8b39ab4f5415
Signed-off-by: Stefan Lay <stefan.lay@sap.com>
Signed-off-by: Robin Rosennberg <robin.rosenberg@dewire.com>
stable-3.4
Stefan Lay 11 years ago committed by Robin Rosenberg
parent
commit
e56d50a94b
  1. 10
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
  2. 6
      org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java

10
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java

@ -2347,7 +2347,7 @@ public class RebaseCommandTest extends RepositoryTestCase {
assertFalse(messageFixupFile.exists());
assertTrue(messageSquashFile.exists());
assertEquals(
"# This is a combination of 2 commits.\n# This is the 2nd commit message:\nupdated file1 on master\nnew line\n# The first commit's message is:\nAdd file2\nnew line",
"# This is a combination of 2 commits.\n# The first commit's message is:\nAdd file2\nnew line\n# This is the 2nd commit message:\nupdated file1 on master\nnew line",
commit);
try {
@ -2426,7 +2426,7 @@ public class RebaseCommandTest extends RepositoryTestCase {
assertFalse(messageFixupFile.exists());
assertTrue(messageSquashFile.exists());
assertEquals(
"# This is a combination of 3 commits.\n# This is the 3rd commit message:\nupdated file1 on master\nnew line\n# This is the 2nd commit message:\nAdd file2\nnew line\n# The first commit's message is:\nAdd file1\nnew line",
"# This is a combination of 3 commits.\n# The first commit's message is:\nAdd file1\nnew line\n# This is the 2nd commit message:\nAdd file2\nnew line\n# This is the 3rd commit message:\nupdated file1 on master\nnew line",
commit);
try {
@ -2441,7 +2441,7 @@ public class RebaseCommandTest extends RepositoryTestCase {
fail(t.getMessage());
}
return "# This is a combination of 3 commits.\n# This is the 3rd commit message:\nupdated file1 on master\nnew line\n# This is the 2nd commit message:\nAdd file2\nnew line\n# The first commit's message is:\nAdd file1\nnew line";
return "# This is a combination of 3 commits.\n# The first commit's message is:\nAdd file1\nnew line\n# This is the 2nd commit message:\nAdd file2\nnew line\n# This is the 3rd commit message:\nupdated file1 on master\nnew line";
}
}).call();
@ -2454,7 +2454,7 @@ public class RebaseCommandTest extends RepositoryTestCase {
ObjectId head2Id = db.resolve(Constants.HEAD + "^1");
RevCommit head1Commit = walk.parseCommit(head2Id);
assertEquals(
"updated file1 on master\nnew line\nAdd file2\nnew line\nAdd file1\nnew line",
"Add file1\nnew line\nAdd file2\nnew line\nupdated file1 on master\nnew line",
head1Commit.getFullMessage());
}
@ -2508,7 +2508,7 @@ public class RebaseCommandTest extends RepositoryTestCase {
assertFalse(messageFixupFile.exists());
assertTrue(messageSquashFile.exists());
assertEquals(
"# This is a combination of 3 commits.\n# This is the 3rd commit message:\nupdated file1 on master\nnew line\n# The 2nd commit message will be skipped:\n# Add file2\n# new line\n# The first commit's message is:\nAdd file1\nnew line",
"# This is a combination of 3 commits.\n# The first commit's message is:\nAdd file1\nnew line\n# The 2nd commit message will be skipped:\n# Add file2\n# new line\n# This is the 3rd commit message:\nupdated file1 on master\nnew line",
commit);
try {

6
org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java

@ -621,6 +621,9 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
sb.setLength(0);
sb.append("# This is a combination of ").append(count)
.append(" commits.\n");
// Add the previous message without header (i.e first line)
sb.append(currSquashMessage.substring(currSquashMessage.indexOf("\n") + 1));
sb.append("\n");
if (isSquash) {
sb.append("# This is the ").append(count).append(ordinal)
.append(" commit message:\n");
@ -631,9 +634,6 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
sb.append(commitToPick.getFullMessage().replaceAll("([\n\r])",
"$1# "));
}
// Add the previous message without header (i.e first line)
sb.append("\n");
sb.append(currSquashMessage.substring(currSquashMessage.indexOf("\n") + 1));
return sb.toString();
}

Loading…
Cancel
Save