Переглянути джерело

Use HEAD as default ref for RefLogCommand.

This mirrors the default command-line behavior.

Change-Id: I4f819410fa6df3064c560beb3184b61fd7bb1f15
Signed-off-by: Kevin Sawicki <kevin@github.com>
tags/v1.1.0.201109011030-rc2
Kevin Sawicki 12 роки тому
джерело
коміт
a7aaf88b2e

+ 37
- 6
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/ReflogCommandTest.java Переглянути файл

package org.eclipse.jgit.api; package org.eclipse.jgit.api;


import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertNotNull;


import java.util.Collection; import java.util.Collection;


import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.RepositoryTestCase; import org.eclipse.jgit.lib.RepositoryTestCase;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.storage.file.ReflogEntry; import org.eclipse.jgit.storage.file.ReflogEntry;
writeTrashFile(FILE, "Hello world"); writeTrashFile(FILE, "Hello world");
git.add().addFilepattern(FILE).call(); git.add().addFilepattern(FILE).call();
commit1 = git.commit().setMessage("Initial commit").call(); commit1 = git.commit().setMessage("Initial commit").call();
git.checkout().setCreateBranch(true).setName("b1").call();
git.rm().addFilepattern(FILE).call(); git.rm().addFilepattern(FILE).call();
commit2 = git.commit().setMessage("Removed file").call(); commit2 = git.commit().setMessage("Removed file").call();
git.notesAdd().setObjectId(commit1)
.setMessage("data").call();
git.notesAdd().setObjectId(commit1).setMessage("data").call();
} }


/**
* Test getting the HEAD reflog
*
* @throws Exception
*/
@Test @Test
public void testReflog() throws Exception {
public void testHeadReflog() throws Exception {
Collection<ReflogEntry> reflog = git.reflog().call(); Collection<ReflogEntry> reflog = git.reflog().call();
assertTrue(reflog.size() == 2);
assertNotNull(reflog);
assertEquals(3, reflog.size());
ReflogEntry[] reflogs = reflog.toArray(new ReflogEntry[reflog.size()]); ReflogEntry[] reflogs = reflog.toArray(new ReflogEntry[reflog.size()]);
assertEquals(reflogs[1].getComment(), "commit: Initial commit");
assertEquals(reflogs[2].getComment(), "commit: Initial commit");
assertEquals(reflogs[2].getNewId(), commit1.getId());
assertEquals(reflogs[2].getOldId(), ObjectId.zeroId());
assertEquals(reflogs[1].getNewId(), commit1.getId());
assertEquals(reflogs[1].getOldId(), commit1.getId());
assertEquals(reflogs[0].getComment(), "commit: Removed file");
assertEquals(reflogs[0].getNewId(), commit2.getId()); assertEquals(reflogs[0].getNewId(), commit2.getId());
assertEquals(reflogs[0].getOldId(), commit1.getId()); assertEquals(reflogs[0].getOldId(), commit1.getId());
} }


/**
* Test getting the reflog for an explicit branch
*
* @throws Exception
*/
@Test
public void testBranchReflog() throws Exception {
Collection<ReflogEntry> reflog = git.reflog()
.setRef(Constants.R_HEADS + "b1").call();
assertNotNull(reflog);
assertEquals(2, reflog.size());
ReflogEntry[] reflogs = reflog.toArray(new ReflogEntry[reflog.size()]);
assertEquals(reflogs[0].getComment(), "commit: Removed file");
assertEquals(reflogs[0].getNewId(), commit2.getId());
assertEquals(reflogs[0].getOldId(), commit1.getId());
assertEquals(reflogs[1].getNewId(), commit1.getId());
assertEquals(reflogs[1].getOldId(), ObjectId.zeroId());
}
} }

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/api/ReflogCommand.java Переглянути файл

*/ */
public class ReflogCommand extends GitCommand<Collection<ReflogEntry>> { public class ReflogCommand extends GitCommand<Collection<ReflogEntry>> {


private String ref = Constants.R_HEADS + Constants.MASTER;
private String ref = Constants.HEAD;


/** /**
* @param repo * @param repo


/** /**
* The ref used for the reflog operation. If no ref is set, the default * The ref used for the reflog operation. If no ref is set, the default
* value of refs/heads/master will be used.
* value of HEAD will be used.
* *
* @param ref * @param ref
* @return {@code this} * @return {@code this}

Завантаження…
Відмінити
Зберегти