]> source.dussan.org Git - jgit.git/commitdiff
Remove result id from CommitBuilder, TagBuilder 27/2027/1
authorShawn O. Pearce <spearce@spearce.org>
Fri, 3 Dec 2010 20:38:31 +0000 (12:38 -0800)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 3 Dec 2010 20:38:31 +0000 (12:38 -0800)
These objects don't need to be updated with the resulting ObjectId of
the formatted content, callers can get that from the ObjectInserter on
their own.

Change-Id: Idc5f097de9f7beafc5e54e597383d82daf9d7db4
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Reviewed-by: Chris Aniszczyk <caniszczyk@gmail.com>
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogConfigTest.java
org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/T0003_Basic.java
org.eclipse.jgit/src/org/eclipse/jgit/api/TagCommand.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/CommitBuilder.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/TagBuilder.java

index 92c4b9cc047165c2170a3c0312f6140b7c5ee6be..ded7e58fa6f0541d097e771e71544e19a2f06bb2 100644 (file)
@@ -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();
index c874557b76d8546f7c7d3a04b979846b33f8f458..4b4ee06f3cb15fbc11613b2f0dc3d430fde71e22 100644 (file)
@@ -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 {
index 45b0ca4ed01d9a196faab62470f39b9aab82f480..95474c8bc4c716cb6d46c5f2d869709fe6021d0b 100644 (file)
@@ -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);
index 288b1d4831c15171cc818d0c9b65f65693374fa5..dd0aeeb5966430017c5a02d88d107704b509ced6 100644 (file)
@@ -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 ");
index 7d02c86ddd36bf96a11e1f2fa2bda35f49e69e13..6b2eeaaca165ba7548b7589fd052904e1b8bd32b 100644 (file)
@@ -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());
        }
 
        /**
index 8eadb6145ca465bce8df7c35c960e20ad997d062..d40ded3a2c592759c3e269fd26e55a5ba1730e74 100644 (file)
@@ -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 ");