Просмотр исходного кода

IndexDiff: Use isModified() when comparing index-worktree

The isModified() is more efficient because it can skip over files that
are stat clean, without needing to scan them.

This is useful to efficently work on paths that were already staged
and thus differ between HEAD and the index, but not between the index
and the working tree.

Change-Id: I4418202e612f0571974e0898050d987c6c280966
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
tags/v0.10.1
Shawn O. Pearce 13 лет назад
Родитель
Сommit
a66a7d90fd

+ 4
- 3
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/IndexDiffTest.java Просмотреть файл

@@ -252,8 +252,10 @@ public class IndexDiffTest extends RepositoryTestCase {
IndexDiff diff = new IndexDiff(db, Constants.HEAD, iterator);
diff.diff();
assertEquals(1, diff.getAssumeUnchanged().size());
assertEquals(2, diff.getModified().size());
assertEquals(1, diff.getModified().size());
assertEquals(0, diff.getChanged().size());
assertTrue(diff.getAssumeUnchanged().contains("file2"));
assertTrue(diff.getModified().contains("file"));

git.add().addFilepattern(".").call();

@@ -261,10 +263,9 @@ public class IndexDiffTest extends RepositoryTestCase {
diff = new IndexDiff(db, Constants.HEAD, iterator);
diff.diff();
assertEquals(1, diff.getAssumeUnchanged().size());
assertEquals(1, diff.getModified().size());
assertEquals(0, diff.getModified().size());
assertEquals(1, diff.getChanged().size());
assertTrue(diff.getAssumeUnchanged().contains("file2"));
assertTrue(diff.getModified().contains("file2"));
assertTrue(diff.getChanged().contains("file"));
}


+ 2
- 1
org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java Просмотреть файл

@@ -232,7 +232,8 @@ public class IndexDiff {
missing.add(treeWalk.getPathString());
changesExist = true;
} else {
if (!dirCacheIterator.idEqual(workingTreeIterator)) {
if (workingTreeIterator.isModified(
dirCacheIterator.getDirCacheEntry(), true)) {
// in index, in workdir, content differs => modified
modified.add(treeWalk.getPathString());
changesExist = true;

Загрузка…
Отмена
Сохранить