If the client is really far ahead of the server, JGit's UploadPack can spend a massive amount of CPU time on the server just doing the same work over and over again. This series addresses the issue by taking advantage of cached data more frequently. Shawn O. Pearce (5): Make RevTag getObject(), getName() final to prevent overrides Allow exceptions to be created with integer type codes Unify RevWalk parsing code to be more consistent across types Change RevObject dispose() semantics to avoid reparses UploadPack: Only recompute okToGiveUp() if bases changed .../org/spearce/jgit/revwalk/RevWalkTestCase.java | 2 +- .../jgit/errors/IncorrectObjectTypeException.java | 13 +++ .../jgit/errors/MissingObjectException.java | 12 +++ .../src/org/spearce/jgit/lib/PackWriter.java | 3 +- .../spearce/jgit/revwalk/BoundaryGenerator.java | 2 +- .../spearce/jgit/revwalk/MergeBaseGenerator.java | 2 +- .../src/org/spearce/jgit/revwalk/ObjectWalk.java | 4 +- .../org/spearce/jgit/revwalk/PendingGenerator.java | 6 +- .../src/org/spearce/jgit/revwalk/RevBlob.java | 5 - .../src/org/spearce/jgit/revwalk/RevCommit.java | 29 ++++---- .../src/org/spearce/jgit/revwalk/RevObject.java | 34 ++++++-- .../src/org/spearce/jgit/revwalk/RevTag.java | 32 ++++---- .../src/org/spearce/jgit/revwalk/RevTree.java | 5 - .../src/org/spearce/jgit/revwalk/RevWalk.java | 82 ++++++++++++++----- .../spearce/jgit/revwalk/RewriteTreeFilter.java | 2 +- .../src/org/spearce/jgit/transport/UploadPack.java | 31 +++++--- .../jgit/transport/WalkFetchConnection.java | 15 +--- 17 files changed, 179 insertions(+), 100 deletions(-) -- 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