diff options
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java index 43f6719c70..b6000964b2 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java @@ -411,7 +411,7 @@ public class MergeUtil { return false; } - final ThreeWayMerger m = newThreeWayMerger(repo, createDryRunInserter()); + ThreeWayMerger m = newThreeWayMerger(repo, createDryRunInserter(repo)); try { return m.merge(new AnyObjectId[] {mergeTip, toMerge}); } catch (NoMergeBaseException e) { @@ -457,8 +457,7 @@ public class MergeUtil { // that on the current merge tip. // try { - final ThreeWayMerger m = - newThreeWayMerger(repo, createDryRunInserter()); + ThreeWayMerger m = newThreeWayMerger(repo, createDryRunInserter(repo)); m.setBase(toMerge.getParent(0)); return m.merge(mergeTip, toMerge); } catch (IOException e) { @@ -485,17 +484,12 @@ public class MergeUtil { } } - public ObjectInserter createDryRunInserter() { - return new ObjectInserter() { - private final MutableObjectId buf = new MutableObjectId(); - private final static int LAST_BYTE = Constants.OBJECT_ID_LENGTH - 1; - + public static ObjectInserter createDryRunInserter(Repository db) { + final ObjectInserter delegate = db.newObjectInserter(); + return new ObjectInserter.Filter() { @Override - public ObjectId insert(int objectType, long length, InputStream in) - throws IOException { - // create non-existing dummy ID - buf.setByte(LAST_BYTE, buf.getByte(LAST_BYTE) + 1); - return buf.copy(); + protected ObjectInserter delegate() { + return delegate; } @Override @@ -507,11 +501,6 @@ public class MergeUtil { public void flush() throws IOException { // Do nothing. } - - @Override - public void release() { - // Do nothing. - } }; } |