@@ -110,8 +110,9 @@ public class ReflogConfigTest extends RepositoryTestCase { | |||
commit.setMessage(commitMsg); | |||
commit.setTreeId(t.getTreeId()); | |||
ObjectInserter inserter = db.newObjectInserter(); | |||
ObjectId id; | |||
try { | |||
inserter.insert(commit); | |||
id = inserter.insert(commit); | |||
inserter.flush(); | |||
} finally { | |||
inserter.release(); | |||
@@ -119,7 +120,7 @@ public class ReflogConfigTest extends RepositoryTestCase { | |||
int nl = commitMsg.indexOf('\n'); | |||
final RefUpdate ru = db.updateRef(Constants.HEAD); | |||
ru.setNewObjectId(commit.getCommitId()); | |||
ru.setNewObjectId(id); | |||
ru.setRefLogMessage("commit : " | |||
+ ((nl == -1) ? commitMsg : commitMsg.substring(0, nl)), false); | |||
ru.forceUpdate(); |
@@ -377,11 +377,11 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
c.setTreeId(t.getTreeId()); | |||
assertEquals(t.getTreeId(), c.getTreeId()); | |||
insertCommit(c); | |||
ObjectId actid = insertCommit(c); | |||
final ObjectId cmtid = ObjectId.fromString( | |||
"803aec4aba175e8ab1d666873c984c0308179099"); | |||
assertEquals(cmtid, c.getCommitId()); | |||
assertEquals(cmtid, actid); | |||
// Verify the commit we just wrote is in the correct format. | |||
ObjectDatabase odb = db.getObjectDatabase(); | |||
@@ -397,7 +397,7 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
} | |||
// Verify we can read it. | |||
RevCommit c2 = parseCommit(c.getCommitId()); | |||
RevCommit c2 = parseCommit(actid); | |||
assertNotNull(c2); | |||
assertEquals(c.getMessage(), c2.getFullMessage()); | |||
assertEquals(c.getTreeId(), c2.getTree()); | |||
@@ -432,10 +432,10 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
t.setTag("test020"); | |||
t.setTagger(new PersonIdent(author, 1154236443000L, -4 * 60)); | |||
t.setMessage("test020 tagged\n"); | |||
insertTag(t); | |||
assertEquals("6759556b09fbb4fd8ae5e315134481cc25d46954", t.getTagId().name()); | |||
ObjectId actid = insertTag(t); | |||
assertEquals("6759556b09fbb4fd8ae5e315134481cc25d46954", actid.name()); | |||
RevTag mapTag = parseTag(t.getTagId()); | |||
RevTag mapTag = parseTag(actid); | |||
assertEquals(Constants.OBJ_BLOB, mapTag.getObject().getType()); | |||
assertEquals("test020 tagged\n", mapTag.getFullMessage()); | |||
assertEquals(new PersonIdent(author, 1154236443000L, -4 * 60), mapTag.getTaggerIdent()); | |||
@@ -452,10 +452,10 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
t.setTag("test021"); | |||
t.setTagger(new PersonIdent(author, 1154236443000L, -4 * 60)); | |||
t.setMessage("test021 tagged\n"); | |||
insertTag(t); | |||
assertEquals("b0517bc8dbe2096b419d42424cd7030733f4abe5", t.getTagId().name()); | |||
ObjectId actid = insertTag(t); | |||
assertEquals("b0517bc8dbe2096b419d42424cd7030733f4abe5", actid.name()); | |||
RevTag mapTag = parseTag(t.getTagId()); | |||
RevTag mapTag = parseTag(actid); | |||
assertEquals(Constants.OBJ_TREE, mapTag.getObject().getType()); | |||
assertEquals("test021 tagged\n", mapTag.getFullMessage()); | |||
assertEquals(new PersonIdent(author, 1154236443000L, -4 * 60), mapTag.getTaggerIdent()); | |||
@@ -478,10 +478,10 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
t.setTag("test022"); | |||
t.setTagger(new PersonIdent(author, 1154236443000L, -4 * 60)); | |||
t.setMessage("test022 tagged\n"); | |||
insertTag(t); | |||
assertEquals("0ce2ebdb36076ef0b38adbe077a07d43b43e3807", t.getTagId().name()); | |||
ObjectId actid = insertTag(t); | |||
assertEquals("0ce2ebdb36076ef0b38adbe077a07d43b43e3807", actid.name()); | |||
RevTag mapTag = parseTag(t.getTagId()); | |||
RevTag mapTag = parseTag(actid); | |||
assertEquals(Constants.OBJ_COMMIT, mapTag.getObject().getType()); | |||
assertEquals("test022 tagged\n", mapTag.getFullMessage()); | |||
assertEquals(new PersonIdent(author, 1154236443000L, -4 * 60), mapTag.getTaggerIdent()); | |||
@@ -543,10 +543,10 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
c1.setMessage("A Commit\n"); | |||
c1.setTreeId(t.getTreeId()); | |||
assertEquals(t.getTreeId(), c1.getTreeId()); | |||
insertCommit(c1); | |||
ObjectId actid1 = insertCommit(c1); | |||
final ObjectId cmtid1 = ObjectId.fromString( | |||
"803aec4aba175e8ab1d666873c984c0308179099"); | |||
assertEquals(cmtid1, c1.getCommitId()); | |||
assertEquals(cmtid1, actid1); | |||
final CommitBuilder c2 = new CommitBuilder(); | |||
c2.setAuthor(new PersonIdent(author, 1154236443000L, -4 * 60)); | |||
@@ -554,20 +554,20 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
c2.setMessage("A Commit 2\n"); | |||
c2.setTreeId(t.getTreeId()); | |||
assertEquals(t.getTreeId(), c2.getTreeId()); | |||
c2.setParentIds(c1.getCommitId()); | |||
insertCommit(c2); | |||
c2.setParentIds(actid1); | |||
ObjectId actid2 = insertCommit(c2); | |||
final ObjectId cmtid2 = ObjectId.fromString( | |||
"95d068687c91c5c044fb8c77c5154d5247901553"); | |||
assertEquals(cmtid2, c2.getCommitId()); | |||
assertEquals(cmtid2, actid2); | |||
RevCommit rm2 = parseCommit(cmtid2); | |||
assertNotSame(c2, rm2); // assert the parsed objects is not from the cache | |||
assertEquals(c2.getAuthor(), rm2.getAuthorIdent()); | |||
assertEquals(c2.getCommitId(), rm2.getId()); | |||
assertEquals(actid2, rm2.getId()); | |||
assertEquals(c2.getMessage(), rm2.getFullMessage()); | |||
assertEquals(c2.getTreeId(), rm2.getTree().getId()); | |||
assertEquals(1, rm2.getParentCount()); | |||
assertEquals(c1.getCommitId(), rm2.getParent(0)); | |||
assertEquals(actid1, rm2.getParent(0)); | |||
final CommitBuilder c3 = new CommitBuilder(); | |||
c3.setAuthor(new PersonIdent(author, 1154236443000L, -4 * 60)); | |||
@@ -575,21 +575,21 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
c3.setMessage("A Commit 3\n"); | |||
c3.setTreeId(t.getTreeId()); | |||
assertEquals(t.getTreeId(), c3.getTreeId()); | |||
c3.setParentIds(c1.getCommitId(), c2.getCommitId()); | |||
insertCommit(c3); | |||
c3.setParentIds(actid1, actid2); | |||
ObjectId actid3 = insertCommit(c3); | |||
final ObjectId cmtid3 = ObjectId.fromString( | |||
"ce6e1ce48fbeeb15a83f628dc8dc2debefa066f4"); | |||
assertEquals(cmtid3, c3.getCommitId()); | |||
assertEquals(cmtid3, actid3); | |||
RevCommit rm3 = parseCommit(cmtid3); | |||
assertNotSame(c3, rm3); // assert the parsed objects is not from the cache | |||
assertEquals(c3.getAuthor(), rm3.getAuthorIdent()); | |||
assertEquals(c3.getCommitId(), rm3.getId()); | |||
assertEquals(actid3, rm3.getId()); | |||
assertEquals(c3.getMessage(), rm3.getFullMessage()); | |||
assertEquals(c3.getTreeId(), rm3.getTree().getId()); | |||
assertEquals(2, rm3.getParentCount()); | |||
assertEquals(c1.getCommitId(), rm3.getParent(0)); | |||
assertEquals(c2.getCommitId(), rm3.getParent(1)); | |||
assertEquals(actid1, rm3.getParent(0)); | |||
assertEquals(actid2, rm3.getParent(1)); | |||
final CommitBuilder c4 = new CommitBuilder(); | |||
c4.setAuthor(new PersonIdent(author, 1154236443000L, -4 * 60)); | |||
@@ -597,22 +597,22 @@ public class T0003_Basic extends SampleDataRepositoryTestCase { | |||
c4.setMessage("A Commit 4\n"); | |||
c4.setTreeId(t.getTreeId()); | |||
assertEquals(t.getTreeId(), c3.getTreeId()); | |||
c4.setParentIds(c1.getCommitId(), c2.getCommitId(), c3.getCommitId()); | |||
insertCommit(c4); | |||
c4.setParentIds(actid1, actid2, actid3); | |||
ObjectId actid4 = insertCommit(c4); | |||
final ObjectId cmtid4 = ObjectId.fromString( | |||
"d1fca9fe3fef54e5212eb67902c8ed3e79736e27"); | |||
assertEquals(cmtid4, c4.getCommitId()); | |||
assertEquals(cmtid4, actid4); | |||
RevCommit rm4 = parseCommit(cmtid4); | |||
assertNotSame(c4, rm3); // assert the parsed objects is not from the cache | |||
assertEquals(c4.getAuthor(), rm4.getAuthorIdent()); | |||
assertEquals(c4.getCommitId(), rm4.getId()); | |||
assertEquals(actid4, rm4.getId()); | |||
assertEquals(c4.getMessage(), rm4.getFullMessage()); | |||
assertEquals(c4.getTreeId(), rm4.getTree().getId()); | |||
assertEquals(3, rm4.getParentCount()); | |||
assertEquals(c1.getCommitId(), rm4.getParent(0)); | |||
assertEquals(c2.getCommitId(), rm4.getParent(1)); | |||
assertEquals(c3.getCommitId(), rm4.getParent(2)); | |||
assertEquals(actid1, rm4.getParent(0)); | |||
assertEquals(actid2, rm4.getParent(1)); | |||
assertEquals(actid3, rm4.getParent(2)); | |||
} | |||
public void test027_UnpackedRefHigherPriorityThanPacked() throws IOException { |
@@ -140,7 +140,7 @@ public class TagCommand extends GitCommand<RevTag> { | |||
RevWalk revWalk = new RevWalk(repo); | |||
try { | |||
RevTag revTag = revWalk.parseTag(newTag.getTagId()); | |||
RevTag revTag = revWalk.parseTag(tagId); | |||
String refName = Constants.R_TAGS + newTag.getTag(); | |||
RefUpdate tagRef = repo.updateRef(refName); | |||
tagRef.setNewObjectId(tagId); |
@@ -76,8 +76,6 @@ public class CommitBuilder { | |||
private static final byte[] hencoding = Constants.encodeASCII("encoding"); | |||
private ObjectId commitId; | |||
private ObjectId treeId; | |||
private ObjectId[] parentIds; | |||
@@ -96,21 +94,6 @@ public class CommitBuilder { | |||
encoding = Constants.CHARSET; | |||
} | |||
/** @return this commit's object id. */ | |||
public ObjectId getCommitId() { | |||
return commitId; | |||
} | |||
/** | |||
* Set the id of this commit object. | |||
* | |||
* @param id | |||
* the id that we calculated for this object. | |||
*/ | |||
public void setCommitId(final ObjectId id) { | |||
commitId = id; | |||
} | |||
/** @return id of the root tree listing this commit's snapshot. */ | |||
public ObjectId getTreeId() { | |||
return treeId; | |||
@@ -124,7 +107,6 @@ public class CommitBuilder { | |||
*/ | |||
public void setTreeId(AnyObjectId id) { | |||
treeId = id.copy(); | |||
commitId = null; | |||
} | |||
/** @return the author of this commit (who wrote it). */ | |||
@@ -140,7 +122,6 @@ public class CommitBuilder { | |||
*/ | |||
public void setAuthor(PersonIdent newAuthor) { | |||
author = newAuthor; | |||
commitId = null; | |||
} | |||
/** @return the committer and commit time for this object. */ | |||
@@ -156,7 +137,6 @@ public class CommitBuilder { | |||
*/ | |||
public void setCommitter(PersonIdent newCommitter) { | |||
committer = newCommitter; | |||
commitId = null; | |||
} | |||
/** @return the ancestors of this commit. Never null. */ | |||
@@ -172,7 +152,6 @@ public class CommitBuilder { | |||
*/ | |||
public void setParentId(AnyObjectId newParent) { | |||
parentIds = new ObjectId[] { newParent.copy() }; | |||
commitId = null; | |||
} | |||
/** | |||
@@ -188,7 +167,6 @@ public class CommitBuilder { | |||
*/ | |||
public void setParentIds(AnyObjectId parent1, AnyObjectId parent2) { | |||
parentIds = new ObjectId[] { parent1.copy(), parent2.copy() }; | |||
commitId = null; | |||
} | |||
/** | |||
@@ -201,7 +179,6 @@ public class CommitBuilder { | |||
parentIds = new ObjectId[newParents.length]; | |||
for (int i = 0; i < newParents.length; i++) | |||
parentIds[i] = newParents[i].copy(); | |||
commitId = null; | |||
} | |||
/** | |||
@@ -214,7 +191,6 @@ public class CommitBuilder { | |||
parentIds = new ObjectId[newParents.size()]; | |||
for (int i = 0; i < newParents.size(); i++) | |||
parentIds[i] = newParents.get(i).copy(); | |||
commitId = null; | |||
} | |||
/** | |||
@@ -232,7 +208,6 @@ public class CommitBuilder { | |||
newParents[i] = parentIds[i]; | |||
newParents[parentIds.length] = additionalParent.copy(); | |||
parentIds = newParents; | |||
commitId = null; | |||
} | |||
} | |||
@@ -279,9 +254,6 @@ public class CommitBuilder { | |||
/** | |||
* Format this builder's state as a commit object. | |||
* | |||
* As a side effect, {@link #getCommitId()} will be populated with the | |||
* proper ObjectId for the formatted content. | |||
* | |||
* @return this object in the canonical commit format, suitable for storage | |||
* in a repository. | |||
* @throws UnsupportedEncodingException | |||
@@ -289,26 +261,6 @@ public class CommitBuilder { | |||
* supported by this Java runtime. | |||
*/ | |||
public byte[] build() throws UnsupportedEncodingException { | |||
return build(new ObjectInserter.Formatter()); | |||
} | |||
/** | |||
* Format this builder's state as a commit object. | |||
* | |||
* As a side effect, {@link #getCommitId()} will be populated with the | |||
* proper ObjectId for the formatted content. | |||
* | |||
* @param oi | |||
* the inserter whose formatting support will be reused. The | |||
* inserter itself is not affected, and the commit is not | |||
* actually inserted into the repository. | |||
* @return this object in the canonical commit format, suitable for storage | |||
* in a repository. | |||
* @throws UnsupportedEncodingException | |||
* the encoding specified by {@link #getEncoding()} is not | |||
* supported by this Java runtime. | |||
*/ | |||
public byte[] build(ObjectInserter oi) throws UnsupportedEncodingException { | |||
ByteArrayOutputStream os = new ByteArrayOutputStream(); | |||
OutputStreamWriter w = new OutputStreamWriter(os, getEncoding()); | |||
try { | |||
@@ -355,18 +307,13 @@ public class CommitBuilder { | |||
// | |||
throw new RuntimeException(err); | |||
} | |||
byte[] content = os.toByteArray(); | |||
setCommitId(oi.idFor(Constants.OBJ_COMMIT, content)); | |||
return content; | |||
return os.toByteArray(); | |||
} | |||
@Override | |||
public String toString() { | |||
StringBuilder r = new StringBuilder(); | |||
r.append("Commit"); | |||
if (commitId != null) | |||
r.append("[" + commitId.name() + "]"); | |||
r.append("={\n"); | |||
r.append("tree "); |
@@ -179,9 +179,6 @@ public abstract class ObjectInserter { | |||
/** | |||
* Insert a single commit into the store, returning its unique name. | |||
* | |||
* As a side effect, {@link CommitBuilder#getCommitId()} will also be | |||
* populated with the returned ObjectId. | |||
* | |||
* @param builder | |||
* the builder containing the proposed commit's data. | |||
* @return the name of the commit object. | |||
@@ -189,15 +186,12 @@ public abstract class ObjectInserter { | |||
* the object could not be stored. | |||
*/ | |||
public final ObjectId insert(CommitBuilder builder) throws IOException { | |||
return insert(Constants.OBJ_COMMIT, builder.build(this)); | |||
return insert(Constants.OBJ_COMMIT, builder.build()); | |||
} | |||
/** | |||
* Insert a single annotated tag into the store, returning its unique name. | |||
* | |||
* As a side effect, {@link TagBuilder#getTagId()} will also be populated | |||
* with the returned ObjectId. | |||
* | |||
* @param builder | |||
* the builder containing the proposed tag's data. | |||
* @return the name of the tag object. | |||
@@ -205,7 +199,7 @@ public abstract class ObjectInserter { | |||
* the object could not be stored. | |||
*/ | |||
public final ObjectId insert(TagBuilder builder) throws IOException { | |||
return insert(Constants.OBJ_TAG, builder.build(this)); | |||
return insert(Constants.OBJ_TAG, builder.build()); | |||
} | |||
/** |
@@ -62,8 +62,6 @@ import org.eclipse.jgit.revwalk.RevObject; | |||
* {@link org.eclipse.jgit.revwalk.RevWalk#parseTag(AnyObjectId)}. | |||
*/ | |||
public class TagBuilder { | |||
private ObjectId tagId; | |||
private ObjectId object; | |||
private int type = Constants.OBJ_BAD; | |||
@@ -74,21 +72,6 @@ public class TagBuilder { | |||
private String message; | |||
/** @return this tag's object id. */ | |||
public ObjectId getTagId() { | |||
return tagId; | |||
} | |||
/** | |||
* Set the id of this tag object. | |||
* | |||
* @param id | |||
* the id that we calculated for this object. | |||
*/ | |||
public void setTagId(ObjectId id) { | |||
tagId = id; | |||
} | |||
/** @return the type of object this tag refers to. */ | |||
public int getObjectType() { | |||
return type; | |||
@@ -110,7 +93,6 @@ public class TagBuilder { | |||
public void setObjectId(AnyObjectId obj, int objType) { | |||
object = obj.copy(); | |||
type = objType; | |||
tagId = null; | |||
} | |||
/** | |||
@@ -138,7 +120,6 @@ public class TagBuilder { | |||
*/ | |||
public void setTag(String shortName) { | |||
this.tag = shortName; | |||
tagId = null; | |||
} | |||
/** @return creator of this tag. May be null. */ | |||
@@ -154,7 +135,6 @@ public class TagBuilder { | |||
*/ | |||
public void setTagger(PersonIdent taggerIdent) { | |||
tagger = taggerIdent; | |||
tagId = null; | |||
} | |||
/** @return the complete commit message. */ | |||
@@ -170,36 +150,15 @@ public class TagBuilder { | |||
*/ | |||
public void setMessage(final String newMessage) { | |||
message = newMessage; | |||
tagId = null; | |||
} | |||
/** | |||
* Format this builder's state as an annotated tag object. | |||
* | |||
* As a side effect, {@link #getTagId()} will be populated with the proper | |||
* ObjectId for the formatted content. | |||
* | |||
* @return this object in the canonical annotated tag format, suitable for | |||
* storage in a repository. | |||
*/ | |||
public byte[] build() { | |||
return build(new ObjectInserter.Formatter()); | |||
} | |||
/** | |||
* Format this builder's state as an annotated tag object. | |||
* | |||
* As a side effect, {@link #getTagId()} will be populated with the proper | |||
* ObjectId for the formatted content. | |||
* | |||
* @param oi | |||
* the inserter whose formatting support will be reused. The | |||
* inserter itself is not affected, and the annotated tag is not | |||
* actually inserted into the repository. | |||
* @return this object in the canonical annotated tag format, suitable for | |||
* storage in a repository. | |||
*/ | |||
public byte[] build(ObjectInserter oi) { | |||
ByteArrayOutputStream os = new ByteArrayOutputStream(); | |||
OutputStreamWriter w = new OutputStreamWriter(os, Constants.CHARSET); | |||
try { | |||
@@ -231,18 +190,13 @@ public class TagBuilder { | |||
// | |||
throw new RuntimeException(err); | |||
} | |||
byte[] content = os.toByteArray(); | |||
setTagId(oi.idFor(Constants.OBJ_TAG, content)); | |||
return content; | |||
return os.toByteArray(); | |||
} | |||
@Override | |||
public String toString() { | |||
StringBuilder r = new StringBuilder(); | |||
r.append("Tag"); | |||
if (tagId != null) | |||
r.append("[" + tagId.name() + "]"); | |||
r.append("={\n"); | |||
r.append("object "); |