diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java index 9d9a96d8d..dfaf5886e 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/RenameDetector.java @@ -357,9 +357,17 @@ public List compute(ContentSource.Pair reader, ProgressMonitor pm) if (pm == null) pm = NullProgressMonitor.INSTANCE; + + if (0 < breakScore) breakModifies(reader, pm); + + if (!added.isEmpty() && !deleted.isEmpty()) findExactRenames(pm); + + if (!added.isEmpty() && !deleted.isEmpty()) findContentRenames(reader, pm); + + if (0 < breakScore && !added.isEmpty() && !deleted.isEmpty()) rejoinModifies(pm); entries.addAll(added); @@ -383,9 +391,6 @@ public void reset() { private void breakModifies(ContentSource.Pair reader, ProgressMonitor pm) throws IOException { - if (breakScore <= 0) - return; - ArrayList newEntries = new ArrayList(entries.size()); pm.beginTask(JGitText.get().renamesBreakingModifies, entries.size()); @@ -469,9 +474,6 @@ private void findContentRenames(ContentSource.Pair reader, ProgressMonitor pm) throws IOException { int cnt = Math.max(added.size(), deleted.size()); - if (cnt == 0) - return; - if (getRenameLimit() == 0 || cnt <= getRenameLimit()) { SimilarityRenameDetector d; @@ -489,9 +491,6 @@ private void findContentRenames(ContentSource.Pair reader, @SuppressWarnings("unchecked") private void findExactRenames(ProgressMonitor pm) { - if (added.isEmpty() || deleted.isEmpty()) - return; - pm.beginTask(JGitText.get().renamesFindingExact, // added.size() + added.size() + deleted.size() + added.size() * deleted.size());