summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src
diff options
context:
space:
mode:
authorDave Borowitz <dborowitz@google.com>2013-05-01 15:47:23 -0700
committerShawn Pearce <spearce@spearce.org>2014-08-11 14:46:31 -0700
commite06082c171b72b3b4a9792c839143ac1310ea043 (patch)
tree026e10ae91535edf79f098e72b0154b5034aaed5 /org.eclipse.jgit/src
parent06ab442b05bf38ccd5c1aed5a24e6bb69b0b5084 (diff)
downloadjgit-e06082c171b72b3b4a9792c839143ac1310ea043.tar.gz
jgit-e06082c171b72b3b4a9792c839143ac1310ea043.zip
Reuse Merger's ObjectReader from ResolveMerger
The base Merger class already has a single ObjectReader instance that it handles releasing as necessary, so creating new readers is not necessary. Change-Id: I990ec43af7df448c7825fc1b10e62eadaa3e0c2a
Diffstat (limited to 'org.eclipse.jgit/src')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java45
1 files changed, 19 insertions, 26 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
index f8ad490c78..f77d72ae54 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
@@ -81,7 +81,6 @@ import org.eclipse.jgit.internal.JGitText;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.lib.ObjectId;
-import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.treewalk.AbstractTreeIterator;
@@ -309,29 +308,24 @@ public class ResolveMerger extends ThreeWayMerger {
}
private void checkout() throws NoWorkTreeException, IOException {
- ObjectReader r = db.getObjectDatabase().newReader();
- try {
- for (Map.Entry<String, DirCacheEntry> entry : toBeCheckedOut
- .entrySet()) {
- File f = new File(db.getWorkTree(), entry.getKey());
- createDir(f.getParentFile());
- DirCacheCheckout.checkoutEntry(db, f, entry.getValue(), r);
- modifiedFiles.add(entry.getKey());
- }
- // Iterate in reverse so that "folder/file" is deleted before
- // "folder". Otherwise this could result in a failing path because
- // of a non-empty directory, for which delete() would fail.
- for (int i = toBeDeleted.size() - 1; i >= 0; i--) {
- String fileName = toBeDeleted.get(i);
- File f = new File(db.getWorkTree(), fileName);
- if (!f.delete())
- if (!f.isDirectory())
- failingPaths.put(fileName,
- MergeFailureReason.COULD_NOT_DELETE);
- modifiedFiles.add(fileName);
- }
- } finally {
- r.release();
+ for (Map.Entry<String, DirCacheEntry> entry : toBeCheckedOut
+ .entrySet()) {
+ File f = new File(db.getWorkTree(), entry.getKey());
+ createDir(f.getParentFile());
+ DirCacheCheckout.checkoutEntry(db, f, entry.getValue(), reader);
+ modifiedFiles.add(entry.getKey());
+ }
+ // Iterate in reverse so that "folder/file" is deleted before
+ // "folder". Otherwise this could result in a failing path because
+ // of a non-empty directory, for which delete() would fail.
+ for (int i = toBeDeleted.size() - 1; i >= 0; i--) {
+ String fileName = toBeDeleted.get(i);
+ File f = new File(db.getWorkTree(), fileName);
+ if (!f.delete())
+ if (!f.isDirectory())
+ failingPaths.put(fileName,
+ MergeFailureReason.COULD_NOT_DELETE);
+ modifiedFiles.add(fileName);
}
}
@@ -368,7 +362,6 @@ public class ResolveMerger extends ThreeWayMerger {
}
DirCache dc = db.readDirCache();
- ObjectReader or = db.getObjectDatabase().newReader();
Iterator<String> mpathsIt=modifiedFiles.iterator();
while(mpathsIt.hasNext()) {
String mpath=mpathsIt.next();
@@ -378,7 +371,7 @@ public class ResolveMerger extends ThreeWayMerger {
FileOutputStream fos = new FileOutputStream(new File(
db.getWorkTree(), mpath));
try {
- or.open(entry.getObjectId()).copyTo(fos);
+ reader.open(entry.getObjectId()).copyTo(fos);
} finally {
fos.close();
}