{"thread":{"id":"15351","subject":"[JGIT PATCH 1/2] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()","startedAt":"2008-09-03T09:01:57Z","lastAt":"2008-09-04T03:23:58Z","messageCount":8,"participants":["Jonas Fonseca","Shawn O. Pearce","Robin Rosenberg"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"89603","messageId":"20080903090157.GB23406@diku.dk","threadId":"15351","inReplyTo":null,"subject":"[JGIT PATCH 1/2] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()","fromName":"Jonas Fonseca","fromEmail":"fonseca@diku.dk","sentAt":"2008-09-03T09:01:57Z","receivedAt":"2008-09-03T09:01:57Z","isPatch":true,"sender":{"key":"fonseca@diku.dk","avatar":"https://gravatar.com/avatar/f82f3ad698717c51873b020c750a92438c820a24056dc39fe4d07baa10a92264?d=mp&s=160"},"body":"This allows objects that extend AnyObjectId to override toString() to\ntheir needs. With this it is possible to subclass for example RevCommit\nand provide a custom toString() implementation without breaking the\nrevision walker.\n\nAnyObjectId's toString() implementation is changed to make sure that\nusers relying on the old behavior will break. This patch passes the\ntest suite.\n\nSigned-off-by: Jonas Fonseca <fonseca@diku.dk>\n---\n .../tst/org/spearce/jgit/lib/PackIndexTest.java    |   24 ++++++++++----------\n .../tst/org/spearce/jgit/lib/PackWriterTest.java   |    4 +-\n .../src/org/spearce/jgit/lib/AnyObjectId.java      |    7 +++++-\n .../src/org/spearce/jgit/lib/ObjectId.java         |    4 +-\n .../src/org/spearce/jgit/lib/RefLogWriter.java     |    2 +-\n .../src/org/spearce/jgit/lib/Repository.java       |    2 +-\n 6 files changed, 24 insertions(+), 19 deletions(-)\n\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java\nindex 8372a18..8ab380e 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java\n@@ -111,21 +111,21 @@ public void testIteratorMethodsContract() {\n \tpublic void testIteratorReturnedValues1() {\n \t\tIterator<PackIndex.MutableEntry> iter = smallIdx.iterator();\n \t\tassertEquals(\"4b825dc642cb6eb9a060e54bf8d69288fbee4904\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tassertEquals(\"540a36d136cf413e4b064c2b0e0a4db60f77feab\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tassertEquals(\"5b6e7c66c276e7610d4a73c70ec1a1f7c1003259\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tassertEquals(\"6ff87c4664981e4397625791c8ea3bbb5f2279a3\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tassertEquals(\"82c6b885ff600be425b4ea96dee75dca255b69e7\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tassertEquals(\"902d5476fa249b7abc9d84c611577a81381f0327\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tassertEquals(\"aabf2ffaec9b497f0950352b3e582d73035c2035\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tassertEquals(\"c59759f143fb1fe21c197981df75a7ee00290799\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tassertFalse(iter.hasNext());\n \t}\n \n@@ -147,16 +147,16 @@ public void testCompareEntriesOffsetsWithFindOffsets() {\n \t */\n \tpublic void testIteratorReturnedValues2() {\n \t\tIterator<PackIndex.MutableEntry> iter = denseIdx.iterator();\n-\t\twhile (!iter.next().toString().equals(\n+\t\twhile (!iter.next().name().equals(\n \t\t\t\t\"0a3d7772488b6b106fb62813c4d6d627918d9181\")) {\n \t\t\t// just iterating\n \t\t}\n \t\tassertEquals(\"1004d0d7ac26fbf63050a234c9b88a46075719d3\", iter.next()\n-\t\t\t\t.toString()); // same level-1\n+\t\t\t\t.name()); // same level-1\n \t\tassertEquals(\"10da5895682013006950e7da534b705252b03be6\", iter.next()\n-\t\t\t\t.toString()); // same level-1\n+\t\t\t\t.name()); // same level-1\n \t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\", iter.next()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t}\n \n }\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java\nindex c715182..72229d5 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java\n@@ -125,7 +125,7 @@ public void testWriteEmptyPack1() throws IOException {\n \t\tassertEquals(0, writer.getObjectsNumber());\n \t\tassertEquals(0, pack.getObjectCount());\n \t\tassertEquals(\"da39a3ee5e6b4b0d3255bfef95601890afd80709\", writer\n-\t\t\t\t.computeName().toString());\n+\t\t\t\t.computeName().name());\n \t}\n \n \t/**\n@@ -273,7 +273,7 @@ public void testWritePack3() throws MissingObjectException, IOException {\n \t\tassertEquals(forcedOrder.length, writer.getObjectsNumber());\n \t\tverifyObjectsOrder(forcedOrder);\n \t\tassertEquals(\"ed3f96b8327c7c66b0f8f70056129f0769323d86\", writer\n-\t\t\t\t.computeName().toString());\n+\t\t\t\t.computeName().name());\n \t}\n \n \t/**\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java b/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java\nindex ae8dfeb..f82b37f 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java\n@@ -406,7 +406,12 @@ private static void formatHexChar(final char[] dst, final int p, int w) {\n \t\t\tdst[o--] = '0';\n \t}\n \n+\t@Override\n \tpublic String toString() {\n+\t\treturn \"AnyObjectId[\" + name() + \"]\";\n+\t}\n+\n+\tpublic String name() {\n \t\treturn new String(toHexCharArray());\n \t}\n \n@@ -422,7 +427,7 @@ public String toString() {\n \t */\n \tpublic String abbreviate(final Repository repo) {\n \t\t// TODO implement checking for uniqueness\n-\t\treturn toString().substring(0, 7);\n+\t\treturn name().substring(0, 7);\n \t}\n \n \t/**\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java b/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java\nindex 2148d10..52ce0d4 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java\n@@ -52,7 +52,7 @@\n \n \tstatic {\n \t\tZEROID = new ObjectId(0, 0, 0, 0, 0);\n-\t\tZEROID_STR = ZEROID.toString();\n+\t\tZEROID_STR = ZEROID.name();\n \t}\n \n \t/**\n@@ -94,7 +94,7 @@ public static final boolean isId(final String id) {\n \t * @return the hex string conversion of this id's content.\n \t */\n \tpublic static final String toString(final ObjectId i) {\n-\t\treturn i != null ? i.toString() : ZEROID_STR;\n+\t\treturn i != null ? i.name() : ZEROID_STR;\n \t}\n \n \t/**\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java b/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java\nindex 3aecaf2..6de8c0f 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java\n@@ -88,7 +88,7 @@ private static String buildReflogString(Repository repo,\n \t\t\toldCommit = ObjectId.zeroId();\n \t\t\tinitial = \" (initial)\";\n \t\t}\n-\t\tString s = oldCommit.toString() + \" \" + commit.toString() + \" \"\n+\t\tString s = oldCommit.name() + \" \" + commit.name() + \" \"\n \t\t\t\t+ me.toExternalString() + \"\\t\" + message + initial;\n \t\treturn s;\n \t}\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java\nindex 7303438..b27c23d 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java\n@@ -209,7 +209,7 @@ public RepositoryConfig getConfig() {\n \t * @return suggested file name\n \t */\n \tpublic File toFile(final AnyObjectId objectId) {\n-\t\tfinal String n = objectId.toString();\n+\t\tfinal String n = objectId.name();\n \t\tString d=n.substring(0, 2);\n \t\tString f=n.substring(2);\n \t\tfor (int i=0; i<objectsDirs.length; ++i) {\n-- \n1.6.0.336.ga07ba\n-- \nJonas Fonseca\n"},{"id":"89648","messageId":"20080903170438.GA28315@spearce.org","threadId":"15351","inReplyTo":"20080903090157.GB23406@diku.dk","subject":"Re: [JGIT PATCH 1/2] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-09-03T17:04:38Z","receivedAt":"2008-09-03T17:04:38Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Jonas Fonseca <fonseca@diku.dk> wrote:\n> This allows objects that extend AnyObjectId to override toString() to\n> their needs. With this it is possible to subclass for example RevCommit\n> and provide a custom toString() implementation without breaking the\n> revision walker.\n> \n> AnyObjectId's toString() implementation is changed to make sure that\n> users relying on the old behavior will break. This patch passes the\n> test suite.\n \n> ---\n>  .../tst/org/spearce/jgit/lib/PackIndexTest.java    |   24 ++++++++++----------\n>  .../tst/org/spearce/jgit/lib/PackWriterTest.java   |    4 +-\n>  .../src/org/spearce/jgit/lib/AnyObjectId.java      |    7 +++++-\n>  .../src/org/spearce/jgit/lib/ObjectId.java         |    4 +-\n>  .../src/org/spearce/jgit/lib/RefLogWriter.java     |    2 +-\n>  .../src/org/spearce/jgit/lib/Repository.java       |    2 +-\n>  6 files changed, 24 insertions(+), 19 deletions(-)\n\nHmm.  I had to squash this into it just to fix most of the code and\nmake it pass tests, let alone fix the fetch and push implementations.\nMost of the library plain up and broke with this toString change.\n\nMissing T0001_ObjectId suggests to me that your method of running\nthe tests isn't working right.\n\nAnd this is only JGit.  I haven't even started to look into EGit.\nThough I don't expect you to fix EGit since you are working on\nNetBeans.  :-)\n\n .../src/org/spearce/jgit/pgm/DiffTree.java         |    2 +-\n .../src/org/spearce/jgit/pgm/LsRemote.java         |    2 +-\n .../src/org/spearce/jgit/pgm/LsTree.java           |    2 +-\n .../src/org/spearce/jgit/pgm/MergeBase.java        |    2 +-\n .../src/org/spearce/jgit/pgm/ShowRef.java          |    2 +-\n .../org/spearce/jgit/pgm/debug/ShowDirCache.java   |    2 +-\n .../tst/org/spearce/jgit/lib/PackWriterTest.java   |    6 +-\n .../tst/org/spearce/jgit/lib/T0001_ObjectId.java   |    4 +-\n .../tst/org/spearce/jgit/lib/T0003_Basic.java      |   36 ++++++------\n .../tst/org/spearce/jgit/lib/T0007_Index.java      |    6 +-\n .../org/spearce/jgit/lib/T0008_testparserev.java   |   64 ++++++++++----------\n .../spearce/jgit/revwalk/RevCommitParseTest.java   |    2 +-\n .../jgit/errors/CorruptObjectException.java        |    2 +-\n .../jgit/errors/IncorrectObjectTypeException.java  |    2 +-\n .../jgit/errors/MissingObjectException.java        |    2 +-\n .../src/org/spearce/jgit/lib/AnyObjectId.java      |    5 +-\n .../src/org/spearce/jgit/lib/Commit.java           |    2 +-\n .../src/org/spearce/jgit/lib/GitIndex.java         |    2 +-\n org.spearce.jgit/src/org/spearce/jgit/lib/Ref.java |    2 +-\n .../src/org/spearce/jgit/revwalk/DateRevQueue.java |    2 +-\n .../src/org/spearce/jgit/revwalk/FIFORevQueue.java |    2 +-\n .../src/org/spearce/jgit/revwalk/LIFORevQueue.java |    2 +-\n .../spearce/jgit/revwalk/MergeBaseGenerator.java   |    2 +-\n .../src/org/spearce/jgit/revwalk/ObjectWalk.java   |    4 +-\n .../jgit/transport/BasePackFetchConnection.java    |    4 +-\n .../jgit/transport/BasePackPushConnection.java     |    4 +-\n .../spearce/jgit/transport/FetchHeadRecord.java    |    2 +-\n .../src/org/spearce/jgit/transport/IndexPack.java  |    2 +-\n .../jgit/transport/WalkFetchConnection.java        |   38 ++++++------\n .../spearce/jgit/transport/WalkPushConnection.java |    2 +-\n 30 files changed, 107 insertions(+), 104 deletions(-)\n\ndiff --git a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/DiffTree.java b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/DiffTree.java\nindex b3f6738..56b4c99 100644\n--- a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/DiffTree.java\n+++ b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/DiffTree.java\n@@ -87,7 +87,7 @@ protected void run() throws Exception {\n \t\t\t}\n \n \t\t\tfor (int i = 0; i < nTree; i++) {\n-\t\t\t\tout.print(walk.getObjectId(i));\n+\t\t\t\tout.print(walk.getObjectId(i).name());\n \t\t\t\tout.print(' ');\n \t\t\t}\n \ndiff --git a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/LsRemote.java b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/LsRemote.java\nindex 391a04d..bfa38ec 100644\n--- a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/LsRemote.java\n+++ b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/LsRemote.java\n@@ -64,7 +64,7 @@ protected void run() throws Exception {\n \t}\n \n \tprivate void show(final AnyObjectId id, final String name) {\n-\t\tout.print(id);\n+\t\tout.print(id.name());\n \t\tout.print('\\t');\n \t\tout.print(name);\n \t\tout.println();\ndiff --git a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/LsTree.java b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/LsTree.java\nindex 8d4937f..a5c0ca0 100644\n--- a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/LsTree.java\n+++ b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/LsTree.java\n@@ -67,7 +67,7 @@ protected void run() throws Exception {\n \t\t\tout.print(Constants.typeString(mode.getObjectType()));\n \n \t\t\tout.print(' ');\n-\t\t\tout.print(walk.getObjectId(0));\n+\t\t\tout.print(walk.getObjectId(0).name());\n \n \t\t\tout.print('\\t');\n \t\t\tout.print(walk.getPathString());\ndiff --git a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/MergeBase.java b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/MergeBase.java\nindex c0ddd3b..93b1506 100644\n--- a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/MergeBase.java\n+++ b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/MergeBase.java\n@@ -67,7 +67,7 @@ protected void run() throws Exception {\n \t\t\tfinal RevCommit b = argWalk.next();\n \t\t\tif (b == null)\n \t\t\t\tbreak;\n-\t\t\tout.println(b.getId());\n+\t\t\tout.println(b.getId().name());\n \t\t}\n \t}\n }\ndiff --git a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/ShowRef.java b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/ShowRef.java\nindex 6dfba3e..b09ae5b 100644\n--- a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/ShowRef.java\n+++ b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/ShowRef.java\n@@ -53,7 +53,7 @@ protected void run() throws Exception {\n \t}\n \n \tprivate void show(final AnyObjectId id, final String name) {\n-\t\tout.print(id);\n+\t\tout.print(id.name());\n \t\tout.print('\\t');\n \t\tout.print(name);\n \t\tout.println();\ndiff --git a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/debug/ShowDirCache.java b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/debug/ShowDirCache.java\nindex 0822503..79f5500 100644\n--- a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/debug/ShowDirCache.java\n+++ b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/debug/ShowDirCache.java\n@@ -63,7 +63,7 @@ protected void run() throws Exception {\n \t\t\tout.print(' ');\n \t\t\tout.print(fmt.format(mtime));\n \t\t\tout.print(' ');\n-\t\t\tout.print(ent.getObjectId());\n+\t\t\tout.print(ent.getObjectId().name());\n \t\t\tout.print('\\t');\n \t\t\tout.print(ent.getPathString());\n \t\t\tout.println();\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java\nindex 539b731..0fcb2dc 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java\n@@ -372,7 +372,7 @@ private void writeVerifyPack1() throws IOException {\n \t\tassertEquals(expectedOrder.length, writer.getObjectsNumber());\n \t\tverifyObjectsOrder(expectedOrder);\n \t\tassertEquals(\"34be9032ac282b11fa9babdc2b2a93ca996c9c2f\", writer\n-\t\t\t\t.computeName().toString());\n+\t\t\t\t.computeName().name());\n \t}\n \n \tprivate void writeVerifyPack2(boolean deltaReuse) throws IOException {\n@@ -401,7 +401,7 @@ private void writeVerifyPack2(boolean deltaReuse) throws IOException {\n \t\tassertEquals(expectedOrder.length, writer.getObjectsNumber());\n \t\tverifyObjectsOrder(expectedOrder);\n \t\tassertEquals(\"ed3f96b8327c7c66b0f8f70056129f0769323d86\", writer\n-\t\t\t\t.computeName().toString());\n+\t\t\t\t.computeName().name());\n \t}\n \n \tprivate void writeVerifyPack4(final boolean thin) throws IOException {\n@@ -431,7 +431,7 @@ private void writeVerifyPack4(final boolean thin) throws IOException {\n \t\t}\n \t\tverifyObjectsOrder(expectedObjects);\n \t\tassertEquals(\"cded4b74176b4456afa456768b2b5aafb41c44fc\", writer\n-\t\t\t\t.computeName().toString());\n+\t\t\t\t.computeName().name());\n \t}\n \n \tprivate void createVerifyOpenPack(final Collection<ObjectId> interestings,\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0001_ObjectId.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0001_ObjectId.java\nindex 6fc9645..4c03667 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0001_ObjectId.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0001_ObjectId.java\n@@ -43,13 +43,13 @@\n \tpublic void test001_toString() {\n \t\tfinal String x = \"def4c620bc3713bb1bb26b808ec9312548e73946\";\n \t\tfinal ObjectId oid = ObjectId.fromString(x);\n-\t\tassertEquals(x, oid.toString());\n+\t\tassertEquals(x, oid.name());\n \t}\n \n \tpublic void test002_toString() {\n \t\tfinal String x = \"ff00eedd003713bb1bb26b808ec9312548e73946\";\n \t\tfinal ObjectId oid = ObjectId.fromString(x);\n-\t\tassertEquals(x, oid.toString());\n+\t\tassertEquals(x, oid.name());\n \t}\n \n \tpublic void test003_equals() {\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0003_Basic.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0003_Basic.java\nindex fbe8f0a..6a296be 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0003_Basic.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0003_Basic.java\n@@ -80,7 +80,7 @@ public void test002_WriteEmptyTree() throws IOException {\n \t\tfinal Tree t = new Tree(db);\n \t\tt.accept(new WriteTree(trash, db), TreeEntry.MODIFIED_ONLY);\n \t\tassertEquals(\"4b825dc642cb6eb9a060e54bf8d69288fbee4904\", t.getId()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tfinal File o = new File(new File(new File(trash_git, \"objects\"), \"4b\"),\n \t\t\t\t\"825dc642cb6eb9a060e54bf8d69288fbee4904\");\n \t\tassertTrue(\"Exists \" + o, o.isFile());\n@@ -93,7 +93,7 @@ public void test002_WriteEmptyTree2() throws IOException {\n \t\tfinal Tree t = new Tree(db);\n \t\tt.accept(new WriteTree(trash, db), TreeEntry.MODIFIED_ONLY);\n \t\tassertEquals(\"4b825dc642cb6eb9a060e54bf8d69288fbee4904\", t.getId()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \t\tfinal File o = new File(new File(new File(trash_git, \"objects\"), \"4b\"),\n \t\t\t\t\"825dc642cb6eb9a060e54bf8d69288fbee4904\");\n \t\tassertFalse(\"Exists \" + o, o.isFile());\n@@ -105,7 +105,7 @@ public void test003_WriteShouldBeEmptyTree() throws IOException {\n \t\tt.addFile(\"should-be-empty\").setId(emptyId);\n \t\tt.accept(new WriteTree(trash, db), TreeEntry.MODIFIED_ONLY);\n \t\tassertEquals(\"7bb943559a305bdd6bdee2cef6e5df2413c3d30a\", t.getId()\n-\t\t\t\t.toString());\n+\t\t\t\t.name());\n \n \t\tFile o;\n \t\to = new File(new File(new File(trash_git, \"objects\"), \"7b\"),\n@@ -264,13 +264,13 @@ public void test020_createBlobTag() throws IOException {\n \t\tt.setAuthor(new PersonIdent(jauthor, 1154236443000L, -4 * 60));\n \t\tt.setMessage(\"test020 tagged\\n\");\n \t\tt.tag();\n-\t\tassertEquals(\"6759556b09fbb4fd8ae5e315134481cc25d46954\", t.getTagId().toString());\n+\t\tassertEquals(\"6759556b09fbb4fd8ae5e315134481cc25d46954\", t.getTagId().name());\n \n \t\tTag mapTag = db.mapTag(\"test020\");\n \t\tassertEquals(\"blob\", mapTag.getType());\n \t\tassertEquals(\"test020 tagged\\n\", mapTag.getMessage());\n \t\tassertEquals(new PersonIdent(jauthor, 1154236443000L, -4 * 60), mapTag.getAuthor());\n-\t\tassertEquals(\"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\", mapTag.getObjId().toString());\n+\t\tassertEquals(\"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\", mapTag.getObjId().name());\n \t}\n \n \tpublic void test020b_createBlobPlainTag() throws IOException {\n@@ -281,7 +281,7 @@ public void test020b_createBlobPlainTag() throws IOException {\n \t\tt.tag();\n \t\t\n \t\tTag mapTag = db.mapTag(\"test020b\");\n-\t\tassertEquals(\"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\", mapTag.getObjId().toString());\n+\t\tassertEquals(\"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\", mapTag.getObjId().name());\n \t\t\n \t\t// We do not repeat the plain tag test for other object types\n \t}\n@@ -298,13 +298,13 @@ public void test021_createTreeTag() throws IOException {\n \t\tt.setAuthor(new PersonIdent(jauthor, 1154236443000L, -4 * 60));\n \t\tt.setMessage(\"test021 tagged\\n\");\n \t\tt.tag();\n-\t\tassertEquals(\"b0517bc8dbe2096b419d42424cd7030733f4abe5\", t.getTagId().toString());\n+\t\tassertEquals(\"b0517bc8dbe2096b419d42424cd7030733f4abe5\", t.getTagId().name());\n \n \t\tTag mapTag = db.mapTag(\"test021\");\n \t\tassertEquals(\"tree\", mapTag.getType());\n \t\tassertEquals(\"test021 tagged\\n\", mapTag.getMessage());\n \t\tassertEquals(new PersonIdent(jauthor, 1154236443000L, -4 * 60), mapTag.getAuthor());\n-\t\tassertEquals(\"417c01c8795a35b8e835113a85a5c0c1c77f67fb\", mapTag.getObjId().toString());\n+\t\tassertEquals(\"417c01c8795a35b8e835113a85a5c0c1c77f67fb\", mapTag.getObjId().name());\n \t}\n \n \tpublic void test022_createCommitTag() throws IOException {\n@@ -325,13 +325,13 @@ public void test022_createCommitTag() throws IOException {\n \t\tt.setAuthor(new PersonIdent(jauthor, 1154236443000L, -4 * 60));\n \t\tt.setMessage(\"test022 tagged\\n\");\n \t\tt.tag();\n-\t\tassertEquals(\"0ce2ebdb36076ef0b38adbe077a07d43b43e3807\", t.getTagId().toString());\n+\t\tassertEquals(\"0ce2ebdb36076ef0b38adbe077a07d43b43e3807\", t.getTagId().name());\n \n \t\tTag mapTag = db.mapTag(\"test022\");\n \t\tassertEquals(\"commit\", mapTag.getType());\n \t\tassertEquals(\"test022 tagged\\n\", mapTag.getMessage());\n \t\tassertEquals(new PersonIdent(jauthor, 1154236443000L, -4 * 60), mapTag.getAuthor());\n-\t\tassertEquals(\"b5d3b45a96b340441f5abb9080411705c51cc86c\", mapTag.getObjId().toString());\n+\t\tassertEquals(\"b5d3b45a96b340441f5abb9080411705c51cc86c\", mapTag.getObjId().name());\n \t}\n \t\n \tpublic void test023_createCommitNonAnullii() throws IOException {\n@@ -346,7 +346,7 @@ public void test023_createCommitNonAnullii() throws IOException {\n \t\tcommit.setEncoding(\"UTF-8\");\n \t\tcommit.setMessage(\"\\u00dcbergeeks\");\n \t\tObjectId cid = new ObjectWriter(db).writeCommit(commit);\n-\t\tassertEquals(\"4680908112778718f37e686cbebcc912730b3154\", cid.toString());\n+\t\tassertEquals(\"4680908112778718f37e686cbebcc912730b3154\", cid.name());\n \t}\n \n \tpublic void test024_createCommitNonAscii() throws IOException {\n@@ -361,7 +361,7 @@ public void test024_createCommitNonAscii() throws IOException {\n \t\tcommit.setEncoding(\"ISO-8859-1\");\n \t\tcommit.setMessage(\"\\u00dcbergeeks\");\n \t\tObjectId cid = new ObjectWriter(db).writeCommit(commit);\n-\t\tassertEquals(\"2979b39d385014b33287054b87f77bcb3ecb5ebf\", cid.toString());\n+\t\tassertEquals(\"2979b39d385014b33287054b87f77bcb3ecb5ebf\", cid.name());\n \t}\n \t\n \tpublic void test025_packedRefs() throws IOException {\n@@ -393,19 +393,19 @@ public void test025_packedRefs() throws IOException {\n \t\tassertEquals(\"blob\", mapTag20.getType());\n \t\tassertEquals(\"test020 tagged\\n\", mapTag20.getMessage());\n \t\tassertEquals(new PersonIdent(jauthor, 1154236443000L, -4 * 60), mapTag20.getAuthor());\n-\t\tassertEquals(\"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\", mapTag20.getObjId().toString());\n+\t\tassertEquals(\"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\", mapTag20.getObjId().name());\n \n \t\tTag mapTag21 = db.mapTag(\"test021\");\n \t\tassertEquals(\"tree\", mapTag21.getType());\n \t\tassertEquals(\"test021 tagged\\n\", mapTag21.getMessage());\n \t\tassertEquals(new PersonIdent(jauthor, 1154236443000L, -4 * 60), mapTag21.getAuthor());\n-\t\tassertEquals(\"417c01c8795a35b8e835113a85a5c0c1c77f67fb\", mapTag21.getObjId().toString());\n+\t\tassertEquals(\"417c01c8795a35b8e835113a85a5c0c1c77f67fb\", mapTag21.getObjId().name());\n \n \t\tTag mapTag22 = db.mapTag(\"test022\");\n \t\tassertEquals(\"commit\", mapTag22.getType());\n \t\tassertEquals(\"test022 tagged\\n\", mapTag22.getMessage());\n \t\tassertEquals(new PersonIdent(jauthor, 1154236443000L, -4 * 60), mapTag22.getAuthor());\n-\t\tassertEquals(\"b5d3b45a96b340441f5abb9080411705c51cc86c\", mapTag22.getObjId().toString());\n+\t\tassertEquals(\"b5d3b45a96b340441f5abb9080411705c51cc86c\", mapTag22.getObjId().name());\n \t}\n \n \tpublic void test025_computeSha1NoStore() throws IOException {\n@@ -414,7 +414,7 @@ public void test025_computeSha1NoStore() throws IOException {\n \t\t// TODO: but we do not test legacy header writing\n \t\tfinal ObjectId id = new ObjectWriter(db).computeBlobSha1(data.length,\n \t\t\t\tnew ByteArrayInputStream(data));\n-\t\tassertEquals(\"4f561df5ecf0dfbd53a0dc0f37262fef075d9dde\", id.toString());\n+\t\tassertEquals(\"4f561df5ecf0dfbd53a0dc0f37262fef075d9dde\", id.name());\n \t}\n \n \tpublic void test026_CreateCommitMultipleparents() throws IOException {\n@@ -512,7 +512,7 @@ public void test027_UnpackedRefHigherPriorityThanPacked() throws IOException {\n \t\twriter.close();\n \n \t\tObjectId resolved = db.resolve(\"refs/heads/a\");\n-\t\tassertEquals(unpackedId, resolved.toString());\n+\t\tassertEquals(unpackedId, resolved.name());\n \t}\n \n \tpublic void test028_LockPackedRef() throws IOException {\n@@ -520,7 +520,7 @@ public void test028_LockPackedRef() throws IOException {\n \t\twriteTrashFile(\".git/HEAD\", \"ref: refs/heads/foobar\\n\");\n \n \t\tObjectId resolve = db.resolve(\"HEAD\");\n-\t\tassertEquals(\"7f822839a2fe9760f386cbbbcb3f92c5fe81def7\", resolve.toString());\n+\t\tassertEquals(\"7f822839a2fe9760f386cbbbcb3f92c5fe81def7\", resolve.name());\n \n \t\tRefUpdate lockRef = db.updateRef(\"HEAD\");\n \t\tObjectId newId = ObjectId.fromString(\"07f822839a2fe9760f386cbbbcb3f92c5fe81def\");\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0007_Index.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0007_Index.java\nindex a46daf3..69f3a48 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0007_Index.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0007_Index.java\n@@ -171,7 +171,7 @@ public void testWriteTree() throws Exception {\n \t\tindex.write();\n \n \t\tObjectId id = index.writeTree();\n-\t\tassertEquals(\"c696abc3ab8e091c665f49d00eb8919690b3aec3\", id.toString());\n+\t\tassertEquals(\"c696abc3ab8e091c665f49d00eb8919690b3aec3\", id.name());\n \t\t\n \t\twriteTrashFile(\"a/b\", \"data:a/b\");\n \t\tindex.add(trash, new File(trash, \"a/b\"));\n@@ -193,7 +193,7 @@ public void testReadTree() throws Exception {\n \n \t\tObjectId id = index.writeTree();\n \t\tSystem.out.println(\"wrote id \" + id);\n-\t\tassertEquals(\"c696abc3ab8e091c665f49d00eb8919690b3aec3\", id.toString());\n+\t\tassertEquals(\"c696abc3ab8e091c665f49d00eb8919690b3aec3\", id.name());\n \t\tGitIndex index2 = new GitIndex(db);\n \n \t\tindex2.readTree(db.mapTree(ObjectId.fromString(\n@@ -236,7 +236,7 @@ public void testReadTree2() throws Exception {\n \t\tindex.write();\n \t\tObjectId id = index.writeTree();\n \t\tSystem.out.println(\"wrote id \" + id);\n-\t\tassertEquals(\"ba78e065e2c261d4f7b8f42107588051e87e18e9\", id.toString());\n+\t\tassertEquals(\"ba78e065e2c261d4f7b8f42107588051e87e18e9\", id.name());\n \t\tGitIndex index2 = new GitIndex(db);\n \n \t\tindex2.readTree(db.mapTree(ObjectId.fromString(\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0008_testparserev.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0008_testparserev.java\nindex 08da671..8883b8b 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0008_testparserev.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/T0008_testparserev.java\n@@ -43,75 +43,75 @@\n public class T0008_testparserev extends RepositoryTestCase {\n \n \tpublic void testObjectId_existing() throws IOException {\n-\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0\").toString());\n+\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0\").name());\n \t}\n \n \tpublic void testObjectId_nonexisting() throws IOException {\n-\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c1\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c1\").toString());\n+\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c1\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c1\").name());\n \t}\n \n \tpublic void testObjectId_objectid_implicit_firstparent() throws IOException {\n-\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^\").toString());\n-\t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^^\").toString());\n-\t\tassertEquals(\"bab66b48f836ed950c99134ef666436fb07a09a0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^^^\").toString());\n+\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^\").name());\n+\t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^^\").name());\n+\t\tassertEquals(\"bab66b48f836ed950c99134ef666436fb07a09a0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^^^\").name());\n \t}\n \n \tpublic void testObjectId_objectid_self() throws IOException {\n-\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^0\").toString());\n-\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^0^0\").toString());\n-\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^0^0^0\").toString());\n+\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^0\").name());\n+\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^0^0\").name());\n+\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^0^0^0\").name());\n \t}\n \n \tpublic void testObjectId_objectid_explicit_firstparent() throws IOException {\n-\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^1\").toString());\n-\t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^1^1\").toString());\n-\t\tassertEquals(\"bab66b48f836ed950c99134ef666436fb07a09a0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^1^1^1\").toString());\n+\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^1\").name());\n+\t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^1^1\").name());\n+\t\tassertEquals(\"bab66b48f836ed950c99134ef666436fb07a09a0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^1^1^1\").name());\n \t}\n \n \tpublic void testObjectId_objectid_explicit_otherparents() throws IOException {\n-\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^1\").toString());\n-\t\tassertEquals(\"f73b95671f326616d66b2afb3bdfcdbbce110b44\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^2\").toString());\n-\t\tassertEquals(\"d0114ab8ac326bab30e3a657a0397578c5a1af88\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^3\").toString());\n-\t\tassertEquals(\"d0114ab8ac326bab30e3a657a0397578c5a1af88\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^03\").toString());\n+\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^1\").name());\n+\t\tassertEquals(\"f73b95671f326616d66b2afb3bdfcdbbce110b44\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^2\").name());\n+\t\tassertEquals(\"d0114ab8ac326bab30e3a657a0397578c5a1af88\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^3\").name());\n+\t\tassertEquals(\"d0114ab8ac326bab30e3a657a0397578c5a1af88\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^03\").name());\n \t}\n \n \tpublic void testRef_refname() throws IOException {\n-\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"master^0\").toString());\n-\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"master^\").toString());\n-\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"refs/heads/master^1\").toString());\n+\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"master^0\").name());\n+\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"master^\").name());\n+\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"refs/heads/master^1\").name());\n \t}\n \n \tpublic void testDistance() throws IOException {\n-\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0~0\").toString());\n-\t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0~1\").toString());\n-\t\tassertEquals(\"bab66b48f836ed950c99134ef666436fb07a09a0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0~2\").toString());\n-\t\tassertEquals(\"bab66b48f836ed950c99134ef666436fb07a09a0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0~02\").toString());\n+\t\tassertEquals(\"6e1475206e57110fcef4b92320436c1e9872a322\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0~0\").name());\n+\t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0~1\").name());\n+\t\tassertEquals(\"bab66b48f836ed950c99134ef666436fb07a09a0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0~2\").name());\n+\t\tassertEquals(\"bab66b48f836ed950c99134ef666436fb07a09a0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0~02\").name());\n \t}\n \n \tpublic void testTree() throws IOException {\n-\t\tassertEquals(\"6020a3b8d5d636e549ccbd0c53e2764684bb3125\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^{tree}\").toString());\n-\t\tassertEquals(\"02ba32d3649e510002c21651936b7077aa75ffa9\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^^{tree}\").toString());\n+\t\tassertEquals(\"6020a3b8d5d636e549ccbd0c53e2764684bb3125\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^{tree}\").name());\n+\t\tassertEquals(\"02ba32d3649e510002c21651936b7077aa75ffa9\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^^{tree}\").name());\n \t}\n \n \tpublic void testHEAD() throws IOException {\n-\t\tassertEquals(\"6020a3b8d5d636e549ccbd0c53e2764684bb3125\",db.resolve(\"HEAD^{tree}\").toString());\n+\t\tassertEquals(\"6020a3b8d5d636e549ccbd0c53e2764684bb3125\",db.resolve(\"HEAD^{tree}\").name());\n \t}\n \n \tpublic void testDerefCommit() throws IOException {\n-\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^{}\").toString());\n-\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^{commit}\").toString());\n+\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^{}\").name());\n+\t\tassertEquals(\"49322bb17d3acc9146f98c97d078513228bbf3c0\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^{commit}\").name());\n \t\t// double deref\n-\t\tassertEquals(\"6020a3b8d5d636e549ccbd0c53e2764684bb3125\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^{commit}^{tree}\").toString());\n+\t\tassertEquals(\"6020a3b8d5d636e549ccbd0c53e2764684bb3125\",db.resolve(\"49322bb17d3acc9146f98c97d078513228bbf3c0^{commit}^{tree}\").name());\n \t}\n \n \tpublic void testDerefTag() throws IOException {\n-\t\tassertEquals(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7\",db.resolve(\"spearce-gpg-pub^{}\").toString());\n-\t\tassertEquals(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7\",db.resolve(\"spearce-gpg-pub^{blob}\").toString());\n+\t\tassertEquals(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7\",db.resolve(\"spearce-gpg-pub^{}\").name());\n+\t\tassertEquals(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7\",db.resolve(\"spearce-gpg-pub^{blob}\").name());\n \t}\n \n \tpublic void testDerefBlob() throws IOException {\n-\t\tassertEquals(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7\",db.resolve(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7^{}\").toString());\n-\t\tassertEquals(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7\",db.resolve(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7^{blob}\").toString());\n+\t\tassertEquals(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7\",db.resolve(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7^{}\").name());\n+\t\tassertEquals(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7\",db.resolve(\"fd608fbe625a2b456d9f15c2b1dc41f252057dd7^{blob}\").name());\n \t}\n \t\n \t// TODO: ^{tree} for a tag pointing to a tag\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/revwalk/RevCommitParseTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/revwalk/RevCommitParseTest.java\nindex 2645337..3d9d42d 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/revwalk/RevCommitParseTest.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/revwalk/RevCommitParseTest.java\n@@ -54,7 +54,7 @@ public void testParse_NoParents() throws Exception {\n \t\tfinal StringBuilder body = new StringBuilder();\n \n \t\tbody.append(\"tree \");\n-\t\tbody.append(treeId);\n+\t\tbody.append(treeId.name());\n \t\tbody.append(\"\\n\");\n \n \t\tbody.append(\"author \");\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/errors/CorruptObjectException.java b/org.spearce.jgit/src/org/spearce/jgit/errors/CorruptObjectException.java\nindex 0396762..4eb7aa6 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/errors/CorruptObjectException.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/errors/CorruptObjectException.java\n@@ -56,7 +56,7 @@\n \t * @param why\n \t */\n \tpublic CorruptObjectException(final ObjectId id, final String why) {\n-\t\tsuper(\"Object \" + id + \" is corrupt: \" + why);\n+\t\tsuper(\"Object \" + id.name() + \" is corrupt: \" + why);\n \t}\n \n \t/**\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/errors/IncorrectObjectTypeException.java b/org.spearce.jgit/src/org/spearce/jgit/errors/IncorrectObjectTypeException.java\nindex 24bdf56..a194f19 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/errors/IncorrectObjectTypeException.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/errors/IncorrectObjectTypeException.java\n@@ -60,6 +60,6 @@\n \t * @param type object type\n \t */\n \tpublic IncorrectObjectTypeException(final ObjectId id, final String type) {\n-\t\tsuper(\"Object \" + id + \" is not a \" + type + \".\");\n+\t\tsuper(\"Object \" + id.name() + \" is not a \" + type + \".\");\n \t}\n }\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/errors/MissingObjectException.java b/org.spearce.jgit/src/org/spearce/jgit/errors/MissingObjectException.java\nindex b663411..37147c3 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/errors/MissingObjectException.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/errors/MissingObjectException.java\n@@ -56,6 +56,6 @@\n \t * @param type object type\n \t */\n \tpublic MissingObjectException(final ObjectId id, final String type) {\n-\t\tsuper(\"Missing \" + type + \" \" + id);\n+\t\tsuper(\"Missing \" + type + \" \" + id.name());\n \t}\n }\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java b/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java\nindex f82b37f..a534202 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java\n@@ -411,7 +411,10 @@ public String toString() {\n \t\treturn \"AnyObjectId[\" + name() + \"]\";\n \t}\n \n-\tpublic String name() {\n+\t/**\n+\t * @return string form of the SHA-1, in lower case hexadecimal.\n+\t */\n+\tpublic final String name() {\n \t\treturn new String(toHexCharArray());\n \t}\n \ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Commit.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Commit.java\nindex 0469b7a..085e2b9 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Commit.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Commit.java\n@@ -332,7 +332,7 @@ public void commit() throws IOException {\n \t}\n \n \tpublic String toString() {\n-\t\treturn \"Commit[\" + getCommitId() + \" \" + getAuthor() + \"]\";\n+\t\treturn \"Commit[\" + ObjectId.toString(getCommitId()) + \" \" + getAuthor() + \"]\";\n \t}\n \n \t/**\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java b/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java\nindex 0dc61aa..22935ab 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/GitIndex.java\n@@ -580,7 +580,7 @@ private File getFile(File wd) {\n \t\t}\n \n \t\tpublic String toString() {\n-\t\t\treturn new String(name) + \"/SHA-1(\" + sha1 + \")/M:\"\n+\t\t\treturn new String(name) + \"/SHA-1(\" + sha1.name() + \")/M:\"\n \t\t\t\t\t+ new Date(ctime / 1000000L) + \"/C:\"\n \t\t\t\t\t+ new Date(mtime / 1000000L) + \"/d\" + dev + \"/i\" + ino\n \t\t\t\t\t+ \"/m\" + Integer.toString(mode, 8) + \"/u\" + uid + \"/g\"\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Ref.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Ref.java\nindex bf1ae1e..db94875 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Ref.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Ref.java\n@@ -200,6 +200,6 @@ public Storage getStorage() {\n \t}\n \n \tpublic String toString() {\n-\t\treturn \"Ref[\" + name + \"=\" + getObjectId() + \"]\";\n+\t\treturn \"Ref[\" + name + \"=\" + ObjectId.toString(getObjectId()) + \"]\";\n \t}\n }\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/DateRevQueue.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/DateRevQueue.java\nindex 2a8bd8d..f797477 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/DateRevQueue.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/DateRevQueue.java\n@@ -128,7 +128,7 @@ int outputType() {\n \tpublic String toString() {\n \t\tfinal StringBuffer s = new StringBuffer();\n \t\tfor (Entry q = head; q != null; q = q.next) {\n-\t\t\ts.append(q.commit);\n+\t\t\ts.append(q.commit.name());\n \t\t\ts.append(' ');\n \t\t\ts.append(q.commit.commitTime);\n \t\t\ts.append('\\n');\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/FIFORevQueue.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/FIFORevQueue.java\nindex e80bafa..2c4c003 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/FIFORevQueue.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/FIFORevQueue.java\n@@ -152,7 +152,7 @@ public String toString() {\n \t\tfinal StringBuffer s = new StringBuffer();\n \t\tfor (Block q = head; q != null; q = q.next) {\n \t\t\tfor (int i = q.headIndex; i < q.tailIndex; i++) {\n-\t\t\t\ts.append(q.commits[i]);\n+\t\t\t\ts.append(q.commits[i].name());\n \t\t\t\ts.append(' ');\n \t\t\t\ts.append(q.commits[i].commitTime);\n \t\t\t\ts.append('\\n');\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/LIFORevQueue.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/LIFORevQueue.java\nindex 5dfb8dc..5e885c0 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/LIFORevQueue.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/LIFORevQueue.java\n@@ -107,7 +107,7 @@ public String toString() {\n \t\tfinal StringBuffer s = new StringBuffer();\n \t\tfor (Block q = head; q != null; q = q.next) {\n \t\t\tfor (int i = q.headIndex; i < q.tailIndex; i++) {\n-\t\t\t\ts.append(q.commits[i]);\n+\t\t\t\ts.append(q.commits[i].name());\n \t\t\t\ts.append(' ');\n \t\t\t\ts.append(q.commits[i].commitTime);\n \t\t\t\ts.append('\\n');\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/MergeBaseGenerator.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/MergeBaseGenerator.java\nindex 308e62e..1676caa 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/MergeBaseGenerator.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/MergeBaseGenerator.java\n@@ -102,7 +102,7 @@ private void add(final RevCommit c) {\n \t\t\t// commit admitted to the initial queue only once. If\n \t\t\t// we see this marks aren't correctly erased.\n \t\t\t//\n-\t\t\tthrow new IllegalStateException(\"Stale RevFlags found on \" + c);\n+\t\t\tthrow new IllegalStateException(\"Stale RevFlags on \" + c.name());\n \t\t}\n \t\tc.flags |= flag;\n \t\tpending.add(c);\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/ObjectWalk.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/ObjectWalk.java\nindex 1ba21eb..69a20aa 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/ObjectWalk.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/ObjectWalk.java\n@@ -277,7 +277,7 @@ public RevObject nextObject() throws MissingObjectException,\n \t\t\t\tif (FileMode.GITLINK.equals(mode))\n \t\t\t\t\tcontinue;\n \t\t\t\tthrow new CorruptObjectException(\"Invalid mode \" + mode\n-\t\t\t\t\t\t+ \" for \" + treeWalk.getObjectId(0) + \" \"\n+\t\t\t\t\t\t+ \" for \" + treeWalk.getObjectId(0).name() + \" \"\n \t\t\t\t\t\t+ treeWalk.getPathString() + \" in \" + currentTree + \".\");\n \t\t\t}\n \t\t}\n@@ -407,7 +407,7 @@ private void markTreeUninteresting(final RevTree tree)\n \t\t\t\tif (FileMode.GITLINK.equals(mode))\n \t\t\t\t\tcontinue;\n \t\t\t\tthrow new CorruptObjectException(\"Invalid mode \" + mode\n-\t\t\t\t\t\t+ \" for \" + treeWalk.getObjectId(0) + \" \"\n+\t\t\t\t\t\t+ \" for \" + treeWalk.getObjectId(0).name() + \" \"\n \t\t\t\t\t\t+ treeWalk.getPathString() + \" in \" + tree + \".\");\n \t\t\t}\n \t\t}\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java b/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java\nindex 12b36f2..39fa761 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java\n@@ -244,7 +244,7 @@ private boolean sendWants(final Collection<Ref> want) throws IOException {\n \n \t\t\tfinal StringBuilder line = new StringBuilder(46);\n \t\t\tline.append(\"want \");\n-\t\t\tline.append(r.getObjectId());\n+\t\t\tline.append(r.getObjectId().name());\n \t\t\tif (first) {\n \t\t\t\tline.append(enableCapabilities());\n \t\t\t\tfirst = false;\n@@ -288,7 +288,7 @@ private void negotiate(final ProgressMonitor monitor) throws IOException,\n \t\t\tif (c == null)\n \t\t\t\tbreak;\n \n-\t\t\tpckOut.writeString(\"have \" + c.getId() + \"\\n\");\n+\t\t\tpckOut.writeString(\"have \" + c.getId().name() + \"\\n\");\n \t\t\thavesSent++;\n \t\t\thavesSinceLastContinue++;\n \ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackPushConnection.java b/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackPushConnection.java\nindex a6ab9c4..2594623 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackPushConnection.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackPushConnection.java\n@@ -154,9 +154,9 @@ private void writeCommands(final Collection<RemoteRefUpdate> refUpdates,\n \t\t\tfinal Ref advertisedRef = getRef(rru.getRemoteName());\n \t\t\tfinal ObjectId oldId = (advertisedRef == null ? ObjectId.zeroId()\n \t\t\t\t\t: advertisedRef.getObjectId());\n-\t\t\tsb.append(oldId);\n+\t\t\tsb.append(oldId.name());\n \t\t\tsb.append(' ');\n-\t\t\tsb.append(rru.getNewObjectId());\n+\t\t\tsb.append(rru.getNewObjectId().name());\n \t\t\tsb.append(' ');\n \t\t\tsb.append(rru.getRemoteName());\n \t\t\tif (!sentCommand) {\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/FetchHeadRecord.java b/org.spearce.jgit/src/org/spearce/jgit/transport/FetchHeadRecord.java\nindex 83a16dc..d957028 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/transport/FetchHeadRecord.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/FetchHeadRecord.java\n@@ -71,7 +71,7 @@ void write(final PrintWriter pw) {\n \t\t\tname = sourceName;\n \t\t}\n \n-\t\tpw.print(newValue);\n+\t\tpw.print(newValue.name());\n \t\tpw.print('\\t');\n \t\tif (notForMerge)\n \t\t\tpw.print(\"not-for-merge\");\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java b/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java\nindex d8e6548..2c98823 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/IndexPack.java\n@@ -842,7 +842,7 @@ public void renameAndOpenPack() throws IOException {\n \t\t\td.update(oeBytes);\n \t\t}\n \n-\t\tfinal ObjectId name = ObjectId.fromRaw(d.digest());\n+\t\tfinal String name = ObjectId.fromRaw(d.digest()).name();\n \t\tfinal File packDir = new File(repo.getObjectsDirectory(), \"pack\");\n \t\tfinal File finalPack = new File(packDir, \"pack-\" + name + \".pack\");\n \t\tfinal File finalIdx = new File(packDir, \"pack-\" + name + \".idx\");\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkFetchConnection.java b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkFetchConnection.java\nindex 5a21d24..f309fe1 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkFetchConnection.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkFetchConnection.java\n@@ -224,7 +224,7 @@ private void queueWants(final Collection<Ref> want)\n \t\t\t\tif (inWorkQueue.add(id))\n \t\t\t\t\tworkQueue.add(id);\n \t\t\t} catch (IOException e) {\n-\t\t\t\tthrow new TransportException(\"Object read error \" + id + \".\", e);\n+\t\t\t\tthrow new TransportException(\"Cannot read \" + id.name(), e);\n \t\t\t}\n \t\t}\n \t}\n@@ -243,7 +243,7 @@ private void process(final ObjectId id) throws TransportException {\n \t\t\t\t\treturn;\n \t\t\t}\n \t\t} catch (IOException e) {\n-\t\t\tthrow new TransportException(\"Object read error \" + id + \".\", e);\n+\t\t\tthrow new TransportException(\"Cannot read \" + id.name(), e);\n \t\t}\n \n \t\t// We only care about traversal; disposing an object throws its\n@@ -266,7 +266,7 @@ private void process(final ObjectId id) throws TransportException {\n \t\t\tprocessTag(obj);\n \t\t\tbreak;\n \t\tdefault:\n-\t\t\tthrow new TransportException(\"Unknown object type \" + obj.getId());\n+\t\t\tthrow new TransportException(\"Unknown object type \" + id.name());\n \t\t}\n \n \t\t// If we had any prior errors fetching this object they are\n@@ -277,7 +277,7 @@ private void process(final ObjectId id) throws TransportException {\n \n \tprivate void processBlob(final RevObject obj) throws TransportException {\n \t\tif (!local.hasObject(obj))\n-\t\t\tthrow new TransportException(\"Cannot read blob \" + obj,\n+\t\t\tthrow new TransportException(\"Cannot read blob \" + obj.name(),\n \t\t\t\t\tnew MissingObjectException(obj, Constants.TYPE_BLOB));\n \t\tobj.add(COMPLETE);\n \t}\n@@ -300,13 +300,13 @@ private void processTree(final RevObject obj) throws TransportException {\n \t\t\t\t\tif (FileMode.GITLINK.equals(mode))\n \t\t\t\t\t\tcontinue;\n \t\t\t\t\tthrow new CorruptObjectException(\"Invalid mode \" + mode\n-\t\t\t\t\t\t\t+ \" for \" + treeWalk.getObjectId(0) + \" \"\n-\t\t\t\t\t\t\t+ treeWalk.getPathString() + \" in \" + obj.getId()\n-\t\t\t\t\t\t\t+ \".\");\n+\t\t\t\t\t\t\t+ \" for \" + treeWalk.getObjectId(0).name() + \" \"\n+\t\t\t\t\t\t\t+ treeWalk.getPathString() + \" in \"\n+\t\t\t\t\t\t\t+ obj.getId().name() + \".\");\n \t\t\t\t}\n \t\t\t}\n \t\t} catch (IOException ioe) {\n-\t\t\tthrow new TransportException(\"Cannot read tree \" + obj, ioe);\n+\t\t\tthrow new TransportException(\"Cannot read tree \" + obj.name(), ioe);\n \t\t}\n \t\tobj.add(COMPLETE);\n \t}\n@@ -351,7 +351,7 @@ private void downloadObject(final ProgressMonitor pm, final AnyObjectId id)\n \t\t\t// Search for a loose object over all alternates, starting\n \t\t\t// from the one we last successfully located an object through.\n \t\t\t//\n-\t\t\tfinal String idStr = id.toString();\n+\t\t\tfinal String idStr = id.name();\n \t\t\tfinal String subdir = idStr.substring(0, 2);\n \t\t\tfinal String file = idStr.substring(2);\n \t\t\tfinal String looseName = subdir + \"/\" + file;\n@@ -413,7 +413,7 @@ private void downloadObject(final ProgressMonitor pm, final AnyObjectId id)\n \t\t\tList<Throwable> failures = fetchErrors.get(id.copy());\n \t\t\tfinal TransportException te;\n \n-\t\t\tte = new TransportException(\"Cannot get \" + id + \".\");\n+\t\t\tte = new TransportException(\"Cannot get \" + id.name() + \".\");\n \t\t\tif (failures != null && !failures.isEmpty()) {\n \t\t\t\tif (failures.size() == 1)\n \t\t\t\t\tte.initCause(failures.get(0));\n@@ -489,7 +489,7 @@ private boolean downloadPackedObject(final ProgressMonitor monitor,\n \t\t\t\t// the object, but after indexing we didn't\n \t\t\t\t// actually find it in the pack.\n \t\t\t\t//\n-\t\t\t\trecordError(id, new FileNotFoundException(\"Object \" + id\n+\t\t\t\trecordError(id, new FileNotFoundException(\"Object \" + id.name()\n \t\t\t\t\t\t+ \" not found in \" + pack.packName + \".\"));\n \t\t\t\tcontinue;\n \t\t\t}\n@@ -533,7 +533,7 @@ private boolean downloadLooseObject(final AnyObjectId id,\n \t\t\trecordError(id, e);\n \t\t\treturn false;\n \t\t} catch (IOException e) {\n-\t\t\tthrow new TransportException(\"Cannot download \" + id + \".\", e);\n+\t\t\tthrow new TransportException(\"Cannot download \" + id.name(), e);\n \t\t}\n \t}\n \n@@ -555,15 +555,15 @@ private void verifyLooseObject(final AnyObjectId id, final byte[] compressed)\n \t\t\t// source.\n \t\t\t//\n \t\t\tfinal FileNotFoundException e;\n-\t\t\te = new FileNotFoundException(id.toString());\n+\t\t\te = new FileNotFoundException(id.name());\n \t\t\te.initCause(parsingError);\n \t\t\tthrow e;\n \t\t}\n \n \t\tif (!AnyObjectId.equals(id, uol.getId()))\n-\t\t\tthrow new TransportException(\"Incorrect hash for \" + id\n-\t\t\t\t\t+ \"; computed \" + uol.getId() + \" as a \" + uol.getType()\n-\t\t\t\t\t+ \" from \" + compressed.length + \" bytes.\");\n+\t\t\tthrow new TransportException(\"Incorrect hash for \" + id.name()\n+\t\t\t\t\t+ \"; computed \" + uol.getId().name() + \" as a \"\n+\t\t\t\t\t+ uol.getType() + \" from \" + compressed.length + \" bytes.\");\n \t}\n \n \tprivate void saveLooseObject(final AnyObjectId id, final byte[] compressed)\n@@ -599,7 +599,7 @@ private void saveLooseObject(final AnyObjectId id, final byte[] compressed)\n \t\ttmp.delete();\n \t\tif (local.hasObject(id))\n \t\t\treturn;\n-\t\tthrow new ObjectWritingException(\"Unable to store \" + id + \".\");\n+\t\tthrow new ObjectWritingException(\"Unable to store \" + id.name() + \".\");\n \t}\n \n \tprivate Collection<WalkRemoteObjectDatabase> expandOneAlternate(\n@@ -713,8 +713,8 @@ private void markTreeComplete(final RevTree tree) throws IOException {\n \t\t\t\tif (FileMode.GITLINK.equals(mode))\n \t\t\t\t\tcontinue;\n \t\t\t\tthrow new CorruptObjectException(\"Invalid mode \" + mode\n-\t\t\t\t\t\t+ \" for \" + treeWalk.getObjectId(0) + \" \"\n-\t\t\t\t\t\t+ treeWalk.getPathString() + \" in \" + tree + \".\");\n+\t\t\t\t\t\t+ \" for \" + treeWalk.getObjectId(0).name() + \" \"\n+\t\t\t\t\t\t+ treeWalk.getPathString() + \" in \" + tree.name() + \".\");\n \t\t\t}\n \t\t}\n \t}\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkPushConnection.java b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkPushConnection.java\nindex 31c86df..601ae66 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/transport/WalkPushConnection.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/WalkPushConnection.java\n@@ -223,7 +223,7 @@ private void sendpack(final List<RemoteRefUpdate> updates,\n \t\t\tfor (final String n : dest.getPackNames())\n \t\t\t\tpackNames.put(n, n);\n \n-\t\t\tfinal String base = \"pack-\" + pw.computeName();\n+\t\t\tfinal String base = \"pack-\" + pw.computeName().name();\n \t\t\tfinal String packName = base + \".pack\";\n \t\t\tpathPack = \"pack/\" + packName;\n \t\t\tpathIdx = \"pack/\" + base + \".idx\";\n\n-- \nShawn.\n"},{"id":"89694","messageId":"1220477294-23268-1-git-send-email-robin.rosenberg@dewire.com","threadId":"15351","inReplyTo":"20080903170438.GA28315@spearce.org","subject":"[EGIT PATCH 3/4] Switch usage of AnyObjectId.toString() to new AnyObjectId.name() in Eclipse plugin","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2008-09-03T21:28:13Z","receivedAt":"2008-09-03T21:28:13Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>\n---\n .../core/internal/storage/CommitFileRevision.java  |    2 +-\n .../actions/HardResetToRevisionAction.java         |    6 ++++--\n .../actions/MixedResetToRevisionAction.java        |    6 ++++--\n .../actions/SetQuickdiffBaselineAction.java        |    2 +-\n .../actions/SoftResetToRevisionAction.java         |    6 ++++--\n .../egit/ui/internal/components/RefSpecPanel.java  |    2 +-\n .../egit/ui/internal/history/CommitGraphTable.java |    2 +-\n .../ui/internal/history/CommitMessageViewer.java   |    4 ++--\n .../ui/internal/history/FindToolbarThread.java     |    2 +-\n 9 files changed, 19 insertions(+), 13 deletions(-)\n\ndiff --git a/org.spearce.egit.core/src/org/spearce/egit/core/internal/storage/CommitFileRevision.java b/org.spearce.egit.core/src/org/spearce/egit/core/internal/storage/CommitFileRevision.java\nindex 58d4801..e364027 100644\n--- a/org.spearce.egit.core/src/org/spearce/egit/core/internal/storage/CommitFileRevision.java\n+++ b/org.spearce.egit.core/src/org/spearce/egit/core/internal/storage/CommitFileRevision.java\n@@ -76,7 +76,7 @@ public long getTimestamp() {\n \t}\n \n \tpublic String getContentIdentifier() {\n-\t\treturn commit.getId().toString();\n+\t\treturn commit.getId().name();\n \t}\n \n \tpublic String getAuthor() {\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/HardResetToRevisionAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/HardResetToRevisionAction.java\nindex 78fd87f..f787e38 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/HardResetToRevisionAction.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/HardResetToRevisionAction.java\n@@ -12,6 +12,7 @@\n import org.eclipse.core.resources.IWorkspaceRunnable;\n import org.eclipse.jface.action.IAction;\n import org.spearce.egit.core.op.ResetOperation;\n+import org.spearce.jgit.lib.AnyObjectId;\n \n /**\n  * Hard reset to selected revision\n@@ -20,7 +21,8 @@\n \n \t@Override\n \tprotected IWorkspaceRunnable createOperation(IAction act, List selection) {\n-\t\treturn new ResetOperation(getActiveRepository(), selection.get(0)\n-\t\t\t\t.toString(), ResetOperation.ResetType.HARD);\n+\t\treturn new ResetOperation(getActiveRepository(),\n+\t\t\t\t((AnyObjectId) selection.get(0)).name(),\n+\t\t\t\tResetOperation.ResetType.HARD);\n \t}\n }\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/MixedResetToRevisionAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/MixedResetToRevisionAction.java\nindex 6e4a9bf..9d8bde0 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/MixedResetToRevisionAction.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/MixedResetToRevisionAction.java\n@@ -12,6 +12,7 @@\n import org.eclipse.core.resources.IWorkspaceRunnable;\n import org.eclipse.jface.action.IAction;\n import org.spearce.egit.core.op.ResetOperation;\n+import org.spearce.jgit.lib.AnyObjectId;\n \n /**\n  * Mixed reset to selected revision\n@@ -20,7 +21,8 @@\n \n \t@Override\n \tprotected IWorkspaceRunnable createOperation(IAction act, List selection) {\n-\t\treturn new ResetOperation(getActiveRepository(), selection.get(0)\n-\t\t\t\t.toString(), ResetOperation.ResetType.MIXED);\n+\t\treturn new ResetOperation(getActiveRepository(),\n+\t\t\t\t((AnyObjectId) selection.get(0)).name(),\n+\t\t\t\tResetOperation.ResetType.MIXED);\n \t}\n }\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SetQuickdiffBaselineAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SetQuickdiffBaselineAction.java\nindex 05686cf..b5ac2b8 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SetQuickdiffBaselineAction.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SetQuickdiffBaselineAction.java\n@@ -20,7 +20,7 @@\n \n \t@Override\n \tprotected IWorkspaceRunnable createOperation(IAction act, List selection) {\n-\t\treturn new QuickdiffBaselineOperation(getActiveRepository(), ((RevObject)selection.get(0)).getId().toString());\n+\t\treturn new QuickdiffBaselineOperation(getActiveRepository(), ((RevObject)selection.get(0)).getId().name());\n \t}\n \n }\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SoftResetToRevisionAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SoftResetToRevisionAction.java\nindex 7abbc92..7d7ff7a 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SoftResetToRevisionAction.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/SoftResetToRevisionAction.java\n@@ -12,6 +12,7 @@\n import org.eclipse.core.resources.IWorkspaceRunnable;\n import org.eclipse.jface.action.IAction;\n import org.spearce.egit.core.op.ResetOperation;\n+import org.spearce.jgit.lib.AnyObjectId;\n \n /**\n  * Soft reset to selected revision\n@@ -20,7 +21,8 @@\n \n \t@Override\n \tprotected IWorkspaceRunnable createOperation(IAction act, List selection) {\n-\t\treturn new ResetOperation(getActiveRepository(), selection.get(0)\n-\t\t\t\t.toString(), ResetOperation.ResetType.SOFT);\n+\t\treturn new ResetOperation(getActiveRepository(),\n+\t\t\t\t((AnyObjectId) selection.get(0)).name(),\n+\t\t\t\tResetOperation.ResetType.SOFT);\n \t}\n }\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java\nindex a2661ae..a5a9529 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/components/RefSpecPanel.java\n@@ -1095,7 +1095,7 @@ protected Object getValue(final Object element) {\n \t\t\t@Override\n \t\t\tprotected void setValue(final Object element, final Object value) {\n \t\t\t\tif (value == null || ((String) value).length() == 0\n-\t\t\t\t\t\t|| ObjectId.zeroId().toString().equals(value)) {\n+\t\t\t\t\t\t|| ObjectId.zeroId().name().equals(value)) {\n \t\t\t\t\t// Ignore empty strings or null objects - do not set them in\n \t\t\t\t\t// model.User won't loose any information if we just fall\n \t\t\t\t\t// back to the old value.\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/CommitGraphTable.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/CommitGraphTable.java\nindex 478f0b5..a28e3c4 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/CommitGraphTable.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/CommitGraphTable.java\n@@ -146,7 +146,7 @@ void doCopy() {\n \t\t\tfinal PlotCommit d = itr.next();\n \t\t\tif (r.length() > 0)\n \t\t\t\tr.append(\"\\n\");\n-\t\t\tr.append(d.getId().toString());\n+\t\t\tr.append(d.getId().name());\n \t\t}\n \n \t\tclipboard.setContents(new Object[] { r.toString() },\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/CommitMessageViewer.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/CommitMessageViewer.java\nindex 108aca9..76d57bd 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/CommitMessageViewer.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/CommitMessageViewer.java\n@@ -130,7 +130,7 @@ private void format() {\n \t\tfinal ArrayList<StyleRange> styles = new ArrayList<StyleRange>();\n \n \t\td.append(\"commit \");\n-\t\td.append(commit.getId());\n+\t\td.append(commit.getId().name());\n \t\td.append(\"\\n\");\n \n \t\tif (author != null) {\n@@ -221,7 +221,7 @@ private void addLink(final StringBuilder d,\n \t\tsr.foreground = sys_linkColor;\n \t\tsr.underline = true;\n \t\tsr.start = d.length();\n-\t\td.append(to.getId().toString());\n+\t\td.append(to.getId().name());\n \t\tsr.length = d.length() - sr.start;\n \t\tstyles.add(sr);\n \t}\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/FindToolbarThread.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/FindToolbarThread.java\nindex 2b76da0..60eaf72 100644\n--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/FindToolbarThread.java\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/FindToolbarThread.java\n@@ -115,7 +115,7 @@ public void run() {\n \t\t\t\tSWTCommit revision = fileRevisions[i];\n \n \t\t\t\tif (findInCommitId) {\n-\t\t\t\t\tString contentId = revision.getId().toString();\n+\t\t\t\t\tString contentId = revision.getId().name();\n \t\t\t\t\tif (contentId != null) {\n \t\t\t\t\t\tif (ignoreCase) {\n \t\t\t\t\t\t\tcontentId = contentId.toLowerCase();\n-- \n1.6.0.1.161.g7f314\n"},{"id":"89692","messageId":"1220477294-23268-2-git-send-email-robin.rosenberg@dewire.com","threadId":"15351","inReplyTo":"1220477294-23268-1-git-send-email-robin.rosenberg@dewire.com","subject":"[EGIT PATCH 4/4] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2008-09-03T21:28:14Z","receivedAt":"2008-09-03T21:28:14Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"Two more places\n\nSigned-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>\n---\n .../spearce/jgit/lib/T0005_ShallowSpeedTest.java   |    2 +-\n .../org/spearce/jgit/lib/T0006_DeepSpeedTest.java  |    2 +-\n 2 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0005_ShallowSpeedTest.java b/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0005_ShallowSpeedTest.java\nindex 3b8c60a..736e363 100644\n--- a/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0005_ShallowSpeedTest.java\n+++ b/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0005_ShallowSpeedTest.java\n@@ -60,7 +60,7 @@ public void testShallowHistoryScan() throws IOException {\n \t\t\t\tbreak;\n \t\t\tObjectId parentId = parents[0];\n \t\t\tcommit = db.mapCommit(parentId);\n-\t\t\tcommit.getCommitId().toString();\n+\t\t\tcommit.getCommitId().name();\n \t\t\t++n;\n \t\t}\n \t\tassertEquals(12275, n);\ndiff --git a/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0006_DeepSpeedTest.java b/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0006_DeepSpeedTest.java\nindex 684bfba..f480b99 100644\n--- a/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0006_DeepSpeedTest.java\n+++ b/org.spearce.jgit.test/exttst/org/spearce/jgit/lib/T0006_DeepSpeedTest.java\n@@ -62,7 +62,7 @@ public void testDeepHistoryScan() throws IOException {\n \t\t\tcommit = db.mapCommit(parentId);\n \t\t\tTreeEntry m = commit.getTree().findBlobMember(\"net/netfilter/nf_queue.c\");\n \t\t\tif (m != null)\n-\t\t\t\tcommit.getCommitId().toString();\n+\t\t\t\tcommit.getCommitId().name();\n \t\t\t++n;\n \t\t}\n \n-- \n1.6.0.1.161.g7f314\n"},{"id":"89689","messageId":"20080903213114.GA6316@diku.dk","threadId":"15351","inReplyTo":"20080903170438.GA28315@spearce.org","subject":"Re: [JGIT PATCH 1/2] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()","fromName":"Jonas Fonseca","fromEmail":"fonseca@diku.dk","sentAt":"2008-09-03T21:31:14Z","receivedAt":"2008-09-03T21:31:14Z","isPatch":true,"sender":{"key":"fonseca@diku.dk","avatar":"https://gravatar.com/avatar/f82f3ad698717c51873b020c750a92438c820a24056dc39fe4d07baa10a92264?d=mp&s=160"},"body":"Shawn O. Pearce <spearce@spearce.org> wrote Wed, Sep 03, 2008:\n> Hmm.  I had to squash this into it just to fix most of the code and\n> make it pass tests, let alone fix the fetch and push implementations.\n> Most of the library plain up and broke with this toString change.\n>\n> Missing T0001_ObjectId suggests to me that your method of running\n> the tests isn't working right.\n\nI can see that I am off to a good start leaving everything in a nice\nbroken mess. My only excuse is that while writing the patch I was still\ntrying to set up the tests to run properly. After applying your fix\nand rerunning the tests pass here also.\n\nAnd, lessons learnt: also run the jgit programs to get wider coverage.\n(Uh, sounds like wiki material ... :)\n\n> And this is only JGit.  I haven't even started to look into EGit.\n> Though I don't expect you to fix EGit since you are working on\n> NetBeans.  :-)\n\nIt is clearly a bigger tasks than I had expected and maybe not a good\nstarting point for contributing to JGit. However, in the longer run this\ninterface change will remove some unpleasant surprises.\n\n-- \nJonas Fonseca\n"},{"id":"89696","messageId":"200809040005.55643.robin.rosenberg.lists@dewire.com","threadId":"15351","inReplyTo":"1220477294-23268-2-git-send-email-robin.rosenberg@dewire.com","subject":"Re: [EGIT PATCH 4/4] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2008-09-03T22:05:55Z","receivedAt":"2008-09-03T22:05:55Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"\nThe order of the patches should be\nAdd name to AnyObjectId\nSwitch usage.. in jgit\nSwitch usage.. in egit\nChange toString to the new behaviour\n\n-- robin\n"},{"id":"89701","messageId":"20080903230031.GH28315@spearce.org","threadId":"15351","inReplyTo":"200809040005.55643.robin.rosenberg.lists@dewire.com","subject":"Re: [EGIT PATCH 4/4] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-09-03T23:00:31Z","receivedAt":"2008-09-03T23:00:31Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:\n> \n> The order of the patches should be\n> Add name to AnyObjectId\n> Switch usage.. in jgit\n> Switch usage.. in egit\n> Change toString to the new behaviour\n\nYup.  I'll take care of it.  I'll split the toString change out\nof the first hunk and toss it into a final patch at the end of\nthe series.\n\n-- \nShawn.\n"},{"id":"89715","messageId":"20080904032358.GB3262@spearce.org","threadId":"15351","inReplyTo":"20080903213114.GA6316@diku.dk","subject":"Re: [JGIT PATCH 1/2] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-09-04T03:23:58Z","receivedAt":"2008-09-04T03:23:58Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Jonas Fonseca <fonseca@diku.dk> wrote:\n> Shawn O. Pearce <spearce@spearce.org> wrote Wed, Sep 03, 2008:\n> > Hmm.  I had to squash this into it just to fix most of the code and\n> > make it pass tests, let alone fix the fetch and push implementations.\n> > Most of the library plain up and broke with this toString change.\n> >\n> > Missing T0001_ObjectId suggests to me that your method of running\n> > the tests isn't working right.\n> \n> I can see that I am off to a good start leaving everything in a nice\n> broken mess. My only excuse is that while writing the patch I was still\n> trying to set up the tests to run properly. After applying your fix\n> and rerunning the tests pass here also.\n> \n> And, lessons learnt: also run the jgit programs to get wider coverage.\n> (Uh, sounds like wiki material ... :)\n\nNo big deal.  The jgit pgm package has no tests.  It needs tests.\nRunning them by hand to test the sucks.  Really I was just trying\nto make you aware of the fact that your test runner wasn't working\ncorrectly.\n \n> > And this is only JGit.  I haven't even started to look into EGit.\n> > Though I don't expect you to fix EGit since you are working on\n> > NetBeans.  :-)\n> \n> It is clearly a bigger tasks than I had expected and maybe not a good\n> starting point for contributing to JGit. However, in the longer run this\n> interface change will remove some unpleasant surprises.\n\nRobin filled in the EGit stuff.  I'll go through it again once more\ntomorrow and hopefully we can apply the whole series and move on.\n\n-- \nShawn.\n"}]}