diff options
author | Dave Borowitz <dborowitz@google.com> | 2013-05-01 15:47:23 -0700 |
---|---|---|
committer | Shawn Pearce <spearce@spearce.org> | 2014-08-11 14:46:31 -0700 |
commit | e06082c171b72b3b4a9792c839143ac1310ea043 (patch) | |
tree | 026e10ae91535edf79f098e72b0154b5034aaed5 /org.eclipse.jgit/src | |
parent | 06ab442b05bf38ccd5c1aed5a24e6bb69b0b5084 (diff) | |
download | jgit-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.java | 45 |
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(); } |