2nd attempt at the merge API. Changes from my prior posting last fall: - Fixed the bug Robin identified (the first patch in the series) - Rebased against current master - Basic smoke tests provided by Robin Shawn O. Pearce (10): Fix TreeWalk.idEqual when both trees are missing the path Expose the raw path for the current entry of a TreeWalk Expose DirCacheEntry.getFileMode as a utility function Add writeTree support to DirCache Allow a DirCache to be created with no backing store file Allow CanonicalTreeParsers to be created with a UTF-8 path prefix Recursively load an entire tree into a DirCacheBuilder Allow DirCacheEntry instances to be created with stage > 0 Define a basic merge API, and a two-way tree merge strategy Add a few simple merge test cases .../spearce/jgit/test/resources/create-second-pack | 13 +- ...ck-3280af9c07ee18a87705ef50b0cc4cd20266cf12.idx | Bin 0 -> 1296 bytes ...k-3280af9c07ee18a87705ef50b0cc4cd20266cf12.pack | Bin 0 -> 562 bytes ...ck-9fb5b411fe6dfa89cc2e6b89d2bd8e5de02b5745.idx | Bin 1088 -> 1100 bytes ...ck-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.idx | Bin 2696 -> 2976 bytes ...k-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.pack | Bin 5956 -> 5901 bytes .../org/spearce/jgit/test/resources/packed-refs | 4 +- .../org/spearce/jgit/lib/RepositoryTestCase.java | 3 +- .../org/spearce/jgit/merge/SimpleMergeTest.java | 86 ++++++++ .../org/spearce/jgit/transport/TransportTest.java | 2 +- .../src/org/spearce/jgit/dircache/DirCache.java | 37 ++++ .../org/spearce/jgit/dircache/DirCacheBuilder.java | 65 ++++++ .../org/spearce/jgit/dircache/DirCacheEntry.java | 61 +++++- .../org/spearce/jgit/dircache/DirCacheTree.java | 115 +++++++++++ .../spearce/jgit/errors/UnmergedPathException.java | 67 ++++++ .../src/org/spearce/jgit/lib/FileMode.java | 7 + .../src/org/spearce/jgit/lib/ObjectWriter.java | 12 +- .../src/org/spearce/jgit/merge/MergeStrategy.java | 134 ++++++++++++ .../src/org/spearce/jgit/merge/Merger.java | 213 ++++++++++++++++++++ .../org/spearce/jgit/merge/StrategyOneSided.java | 98 +++++++++ .../jgit/merge/StrategySimpleTwoWayInCore.java | 179 ++++++++++++++++ .../jgit/treewalk/AbstractTreeIterator.java | 31 +++ .../spearce/jgit/treewalk/CanonicalTreeParser.java | 30 +++ .../src/org/spearce/jgit/treewalk/TreeWalk.java | 28 +++- 24 files changed, 1170 insertions(+), 15 deletions(-) create mode 100644 org.spearce.jgit.test/tst-rsrc/org/spearce/jgit/test/resources/pack-3280af9c07ee18a87705ef50b0cc4cd20266cf12.idx create mode 100644 org.spearce.jgit.test/tst-rsrc/org/spearce/jgit/test/resources/pack-3280af9c07ee18a87705ef50b0cc4cd20266cf12.pack create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/merge/SimpleMergeTest.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/errors/UnmergedPathException.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/merge/MergeStrategy.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/merge/Merger.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/merge/StrategyOneSided.java create mode 100644 org.spearce.jgit/src/org/spearce/jgit/merge/StrategySimpleTwoWayInCore.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