Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java')
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java26
1 files changed, 19 insertions, 7 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java
index 9af04b54f0..b21f4b6b49 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java
@@ -49,6 +49,7 @@ import org.eclipse.jgit.treewalk.EmptyTreeIterator;
import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.treewalk.filter.TreeFilter;
import org.eclipse.jgit.treewalk.filter.TreeFilterMarker;
+import org.eclipse.jgit.util.LfsFactory;
import org.eclipse.ui.model.WorkbenchAdapter;
/**
@@ -82,6 +83,8 @@ public class FileDiff extends WorkbenchAdapter {
private DiffEntry diffEntry;
+ private Repository repository;
+
static ObjectId[] trees(final RevCommit commit, final RevCommit[] parents) {
final ObjectId[] r = new ObjectId[parents.length + 1];
for (int i = 0; i < r.length - 1; i++)
@@ -152,7 +155,7 @@ public class FileDiff extends WorkbenchAdapter {
List<DiffEntry> renames = detector.compute(walk.getObjectReader(),
org.eclipse.jgit.lib.NullProgressMonitor.INSTANCE);
for (DiffEntry m : renames) {
- final FileDiff d = new FileDiff(commit, m);
+ final FileDiff d = new FileDiff(repository, commit, m);
r.add(d);
for (Iterator<DiffEntry> i = xentries.iterator(); i.hasNext();) {
DiffEntry n = i.next();
@@ -163,7 +166,7 @@ public class FileDiff extends WorkbenchAdapter {
}
}
for (DiffEntry m : xentries) {
- final FileDiff d = new FileDiff(commit, m);
+ final FileDiff d = new FileDiff(repository, commit, m);
r.add(d);
}
}
@@ -180,7 +183,8 @@ public class FileDiff extends WorkbenchAdapter {
int treeFilterMarks = treeFilterMarker.getMarks(walk);
- final FileDiffForMerges d = new FileDiffForMerges(commit,
+ final FileDiffForMerges d = new FileDiffForMerges(repository,
+ commit,
treeFilterMarks);
d.path = walk.getPathString();
int m0 = 0;
@@ -310,7 +314,10 @@ public class FileDiff extends WorkbenchAdapter {
throws IOException {
if (id.equals(ObjectId.zeroId()))
return new RawText(new byte[] {});
- ObjectLoader ldr = reader.open(id, Constants.OBJ_BLOB);
+ ObjectLoader ldr = LfsFactory.getInstance().applySmudgeFilter(repository,
+ reader.open(id, Constants.OBJ_BLOB),
+ LfsFactory.getAttributesForPath(repository, getPath())
+ .get(Constants.ATTR_DIFF));
return new RawText(ldr.getCachedBytes(Integer.MAX_VALUE));
}
@@ -406,10 +413,14 @@ public class FileDiff extends WorkbenchAdapter {
* Create a file diff for a specified {@link RevCommit} and
* {@link DiffEntry}
*
+ * @param repo
+ *
* @param c
* @param entry
*/
- public FileDiff(final RevCommit c, final DiffEntry entry) {
+ public FileDiff(final Repository repo, final RevCommit c,
+ final DiffEntry entry) {
+ repository = repo;
diffEntry = entry;
commit = c;
}
@@ -464,8 +475,9 @@ public class FileDiff extends WorkbenchAdapter {
private final int treeFilterMarks;
- private FileDiffForMerges(final RevCommit c, int treeFilterMarks) {
- super (c, null);
+ private FileDiffForMerges(final Repository repo, final RevCommit c,
+ int treeFilterMarks) {
+ super(repo, c, null);
this.treeFilterMarks = treeFilterMarks;
}

Back to the top