I'm using this new type to handle the "index" line of a git patch file, where object ids are generally shorter than 40 characters and thus aren't parsable by ObjectId. Reading the short id is important because we can validate that a patch applies correctly by computing the SHA-1 of the result and testing it against the abbreviated id read in the "index" line. If the base object SHA-1 matches the abbreviated line then the result of applying the patch must also match; if it doesn't the patch application logic is broken. Shawn O. Pearce (3): Define an abstraction for handling abbreviated SHA-1 strings Add ObjectId.startsWith(AbbreviatedObjectId) Change AnyObjectId.abbreviate() to return AbbreviatedObjectId .../ui/internal/components/RefContentProposal.java | 2 +- .../egit/ui/internal/fetch/FetchResultTable.java | 12 +- .../egit/ui/internal/push/PushResultTable.java | 21 +- .../src/org/spearce/jgit/pgm/Branch.java | 2 +- .../src/org/spearce/jgit/pgm/Fetch.java | 8 +- .../src/org/spearce/jgit/pgm/Push.java | 5 +- .../spearce/jgit/lib/AbbreviatedObjectIdTest.java | 285 ++++++++++++++++++++ .../org/spearce/jgit/lib/AbbreviatedObjectId.java | 262 ++++++++++++++++++ .../src/org/spearce/jgit/lib/AnyObjectId.java | 39 +++- 9 files changed, 608 insertions(+), 28 deletions(-) create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/AbbreviatedObjectIdTest.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/AbbreviatedObjectId.java -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html