Browse Source

CommitCommand: set correct Reflog message when amending

Change-Id: I2322d31b09ca63bdcee50e90340e326467dc5021
Signed-off-by: Jens Baumgart <jens.baumgart@sap.com>
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
stable-0.12
Jens Baumgart 14 years ago committed by Chris Aniszczyk
parent
commit
9830baf48d
  1. 14
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java
  2. 5
      org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java

14
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java

@ -68,6 +68,7 @@ import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryTestCase;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.storage.file.ReflogReader;
import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.util.FileUtils;
import org.junit.Test;
@ -150,8 +151,8 @@ public class CommitAndLogCommandTests extends RepositoryTestCase {
@Test
public void testSomeCommits() throws NoHeadException, NoMessageException,
UnmergedPathException, ConcurrentRefUpdateException,
JGitInternalException, WrongRepositoryStateException {
ConcurrentRefUpdateException, JGitInternalException,
WrongRepositoryStateException, IOException {
// do 4 commits
Git git = new Git(db);
@ -180,6 +181,8 @@ public class CommitAndLogCommandTests extends RepositoryTestCase {
l--;
}
assertEquals(l, -1);
ReflogReader reader = db.getReflogReader(Constants.HEAD);
assertTrue(reader.getLastEntry().getComment().startsWith("commit:"));
}
// try to do a commit without specifying a message. Should fail!
@ -319,8 +322,8 @@ public class CommitAndLogCommandTests extends RepositoryTestCase {
@Test
public void testCommitAmend() throws NoHeadException, NoMessageException,
UnmergedPathException, ConcurrentRefUpdateException,
JGitInternalException, WrongRepositoryStateException {
ConcurrentRefUpdateException, JGitInternalException,
WrongRepositoryStateException, IOException {
Git git = new Git(db);
git.commit().setMessage("first comit").call(); // typo
git.commit().setAmend(true).setMessage("first commit").call();
@ -332,6 +335,9 @@ public class CommitAndLogCommandTests extends RepositoryTestCase {
c++;
}
assertEquals(1, c);
ReflogReader reader = db.getReflogReader(Constants.HEAD);
assertTrue(reader.getLastEntry().getComment()
.startsWith("commit (amend):"));
}
@Test

5
org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java

@ -211,8 +211,9 @@ public class CommitCommand extends GitCommand<RevCommit> {
RevCommit revCommit = revWalk.parseCommit(commitId);
RefUpdate ru = repo.updateRef(Constants.HEAD);
ru.setNewObjectId(commitId);
ru.setRefLogMessage("commit : "
+ revCommit.getShortMessage(), false);
String prefix = amend ? "commit (amend): " : "commit: ";
ru.setRefLogMessage(
prefix + revCommit.getShortMessage(), false);
ru.setExpectedOldObjectId(headId);
Result rc = ru.forceUpdate();

Loading…
Cancel
Save