From e56d50a94bfe60663bd589da61e07b9461f2c5f7 Mon Sep 17 00:00:00 2001 From: Stefan Lay Date: Thu, 27 Mar 2014 16:18:42 +0100 Subject: [PATCH] Interactive rebase: Fix order of commit messages on squash Bug: 431214 Change-Id: I295bfdc5751545b046d7fe7efc3f8b39ab4f5415 Signed-off-by: Stefan Lay Signed-off-by: Robin Rosennberg --- .../tst/org/eclipse/jgit/api/RebaseCommandTest.java | 10 +++++----- .../src/org/eclipse/jgit/api/RebaseCommand.java | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java index 40eb494045..c5829ec96f 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java +++ b/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 { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java index 330902c843..3b84917421 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java @@ -621,6 +621,9 @@ public class RebaseCommand extends GitCommand { 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 { 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(); } -- 2.39.5