From: Shawn O. Pearce Date: Fri, 12 Jun 2009 23:00:14 GMT Subject: [JGIT PATCH 0/5] Fix major performance problems in UploadPack Message-ID: <1244847619-7364-1-git-send-email-spearce@spearce.org> 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(-)