Merge "Always fetch tags during clone"
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java
index 3d79357..d863f45 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java
@@ -68,6 +68,7 @@
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 void testSomeCommits() throws NoHeadException, NoMessageException,
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 void testCommitRange() throws NoHeadException, NoMessageException,
@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 void testCommitAmend() throws NoHeadException, NoMessageException,
c++;
}
assertEquals(1, c);
+ ReflogReader reader = db.getReflogReader(Constants.HEAD);
+ assertTrue(reader.getLastEntry().getComment()
+ .startsWith("commit (amend):"));
}
@Test
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/PackWriterTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/PackWriterTest.java
index 7a829de..20e32b2 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/PackWriterTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/PackWriterTest.java
@@ -58,7 +58,6 @@
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -125,9 +124,11 @@ public void tearDown() throws Exception {
/**
* Test constructor for exceptions, default settings, initialization.
+ *
+ * @throws IOException
*/
@Test
- public void testContructor() {
+ public void testContructor() throws IOException {
writer = new PackWriter(config, db.newObjectReader());
assertEquals(false, writer.isDeltaBaseAsOffset());
assertEquals(true, config.isReuseDeltas());
@@ -177,7 +178,7 @@ public void testWriteEmptyPack1() throws IOException {
*/
@Test
public void testWriteEmptyPack2() throws IOException {
- createVerifyOpenPack(EMPTY_LIST_REVS.iterator());
+ createVerifyOpenPack(EMPTY_LIST_REVS);
assertEquals(0, writer.getObjectsNumber());
assertEquals(0, pack.getObjectCount());
@@ -320,7 +321,7 @@ public void testWritePack3() throws MissingObjectException, IOException {
for (int i = 0; i < forcedOrder.length; i++)
forcedOrderRevs[i] = parser.parseAny(forcedOrder[i]);
- createVerifyOpenPack(Arrays.asList(forcedOrderRevs).iterator());
+ createVerifyOpenPack(Arrays.asList(forcedOrderRevs));
assertEquals(forcedOrder.length, writer.getObjectsNumber());
verifyObjectsOrder(forcedOrder);
@@ -544,11 +545,12 @@ private void createVerifyOpenPack(final Collection<ObjectId> interestings,
verifyOpenPack(thin);
}
- private void createVerifyOpenPack(final Iterator<RevObject> objectSource)
+ private void createVerifyOpenPack(final List<RevObject> objectSource)
throws MissingObjectException, IOException {
NullProgressMonitor m = NullProgressMonitor.INSTANCE;
writer = new PackWriter(config, db.newObjectReader());
- writer.preparePack(objectSource);
+ writer.preparePack(objectSource.iterator());
+ assertEquals(objectSource.size(), writer.getObjectsNumber());
writer.writePack(m, m, os);
writer.release();
verifyOpenPack(false);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java
index 8d9ce98..0d7a7da 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java
@@ -211,8 +211,9 @@ public RevCommit call() throws NoHeadException, NoMessageException,
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();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java
index 2eb2700..5039eed 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java
@@ -402,8 +402,18 @@ public void setTagTargets(Set<ObjectId> objects) {
* Returns objects number in a pack file that was created by this writer.
*
* @return number of objects in pack.
+ * @throws IOException
+ * a cached pack cannot supply its object count.
*/
- public long getObjectsNumber() {
+ public long getObjectsNumber() throws IOException {
+ if (stats.totalObjects == 0) {
+ long objCnt = 0;
+ for (List<ObjectToPack> list : objectsLists)
+ objCnt += list.size();
+ for (CachedPack pack : cachedPacks)
+ objCnt += pack.getObjectCount();
+ return objCnt;
+ }
return stats.totalObjects;
}
@@ -635,13 +645,8 @@ public void writePack(ProgressMonitor compressMonitor,
final PackOutputStream out = new PackOutputStream(writeMonitor,
packStream, this);
- long objCnt = 0;
- for (List<ObjectToPack> list : objectsLists)
- objCnt += list.size();
- for (CachedPack pack : cachedPacks)
- objCnt += pack.getObjectCount();
+ long objCnt = getObjectsNumber();
stats.totalObjects = objCnt;
-
writeMonitor.beginTask(JGitText.get().writingObjects, (int) objCnt);
long writeStart = System.currentTimeMillis();