Back in late 2008 Dscho started writing some basic diff routines for JGit. That work got partially shelved when he had to move onto more important day-job topics. This series is starting to revive some portions of his work, and bring it into JGit. In particular I want at least this much merged, so I can use it in Gerrit Code Review to massage an existing patch file before I display it. Currently most of that logic is within Gerrit, and I'd much rather push it down into JGit where anyone can reuse it. To be clear, this series *does not* contain a way to create a diff. Dscho wrote much more code which is not yet ready for inclusion. After applying this series we have an EditList describing what happened in an existing patch we parsed with the existing Patch class, and a DiffFormatter which can be used to reflow a patch script if the repository has both the pre and post image objects. The formatter part is really only useful if the repository created the patch script, or received the objects over a git native object transport, like Gerrit Code Review does with SSH. Dscho, can you give us yea-or-nay for SBO lines for the patches I've attributed to you? Johannes E. Schindelin (3): Add diff.Edit to describe an edit region within a file Add diff.RawText to index a file content for later compares Add diff.DiffFormatter to create Git style unified patch scripts Shawn O. Pearce (3): Add set to IntList Add diff.EditList to provide for a list of Edit instances Teach FileHeader, HunkHeader how to create an EditList .../spearce/jgit/patch/testEditList_Types.patch | 24 +++ .../tst/org/spearce/jgit/diff/EditListTest.java | 121 +++++++++++++ .../tst/org/spearce/jgit/diff/EditTest.java | 139 ++++++++++++++ .../tst/org/spearce/jgit/diff/RawTextTest.java | 93 ++++++++++ .../tst/org/spearce/jgit/patch/EditListTest.java | 95 ++++++++++ .../tst/org/spearce/jgit/util/IntListTest.java | 21 +++ .../src/org/spearce/jgit/diff/DiffFormatter.java | 187 +++++++++++++++++++ .../src/org/spearce/jgit/diff/Edit.java | 189 ++++++++++++++++++++ .../src/org/spearce/jgit/diff/EditList.java | 93 ++++++++++ .../src/org/spearce/jgit/diff/RawText.java | 172 ++++++++++++++++++ .../src/org/spearce/jgit/diff/Sequence.java | 78 ++++++++ .../src/org/spearce/jgit/patch/FileHeader.java | 9 + .../src/org/spearce/jgit/patch/HunkHeader.java | 48 +++++ .../src/org/spearce/jgit/util/IntList.java | 17 ++ 14 files changed, 1286 insertions(+), 0 deletions(-) create mode 100644 org.spearce.jgit.test/tst-rsrc/org/spearce/jgit/patch/testEditList_Types.patch create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/diff/EditListTest.java create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/diff/EditTest.java create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/diff/RawTextTest.java create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/patch/EditListTest.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/diff/DiffFormatter.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/diff/Edit.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/diff/EditList.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/diff/RawText.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/diff/Sequence.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