Browse Source

Close RevWalk in BranchTrackingStatus.of()

Bug: 530757
Change-Id: I985ee5395e1468981c28ae0a80797732e2f528d2
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-4.11
Matthias Sohn 7 years ago
parent
commit
f7244b81cc
  1. 27
      org.eclipse.jgit/src/org/eclipse/jgit/lib/BranchTrackingStatus.java

27
org.eclipse.jgit/src/org/eclipse/jgit/lib/BranchTrackingStatus.java

@ -87,22 +87,25 @@ public class BranchTrackingStatus {
if (local == null) if (local == null)
return null; return null;
RevWalk walk = new RevWalk(repository); try (RevWalk walk = new RevWalk(repository)) {
RevCommit localCommit = walk.parseCommit(local.getObjectId()); RevCommit localCommit = walk.parseCommit(local.getObjectId());
RevCommit trackingCommit = walk.parseCommit(tracking.getObjectId()); RevCommit trackingCommit = walk.parseCommit(tracking.getObjectId());
walk.setRevFilter(RevFilter.MERGE_BASE); walk.setRevFilter(RevFilter.MERGE_BASE);
walk.markStart(localCommit); walk.markStart(localCommit);
walk.markStart(trackingCommit); walk.markStart(trackingCommit);
RevCommit mergeBase = walk.next(); RevCommit mergeBase = walk.next();
walk.reset(); walk.reset();
walk.setRevFilter(RevFilter.ALL); walk.setRevFilter(RevFilter.ALL);
int aheadCount = RevWalkUtils.count(walk, localCommit, mergeBase); int aheadCount = RevWalkUtils.count(walk, localCommit, mergeBase);
int behindCount = RevWalkUtils.count(walk, trackingCommit, mergeBase); int behindCount = RevWalkUtils.count(walk, trackingCommit,
mergeBase);
return new BranchTrackingStatus(trackingBranch, aheadCount, behindCount); return new BranchTrackingStatus(trackingBranch, aheadCount,
behindCount);
}
} }
private final String remoteTrackingBranch; private final String remoteTrackingBranch;

Loading…
Cancel
Save