Merge branch 'stable-2.0'
* stable-2.0: Improve performance of persisting an index by magnitudes Change-Id: I880f4d0be81c263b598ee24e8373c6f8cb781c51 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
commit
c0b4b79296
|
@ -57,8 +57,10 @@
|
||||||
import java.security.DigestOutputStream;
|
import java.security.DigestOutputStream;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.jgit.errors.CorruptObjectException;
|
import org.eclipse.jgit.errors.CorruptObjectException;
|
||||||
import org.eclipse.jgit.errors.LockFailedException;
|
import org.eclipse.jgit.errors.LockFailedException;
|
||||||
|
@ -74,6 +76,7 @@
|
||||||
import org.eclipse.jgit.storage.file.LockFile;
|
import org.eclipse.jgit.storage.file.LockFile;
|
||||||
import org.eclipse.jgit.treewalk.FileTreeIterator;
|
import org.eclipse.jgit.treewalk.FileTreeIterator;
|
||||||
import org.eclipse.jgit.treewalk.TreeWalk;
|
import org.eclipse.jgit.treewalk.TreeWalk;
|
||||||
|
import org.eclipse.jgit.treewalk.filter.PathFilterGroup;
|
||||||
import org.eclipse.jgit.util.FS;
|
import org.eclipse.jgit.util.FS;
|
||||||
import org.eclipse.jgit.util.IO;
|
import org.eclipse.jgit.util.IO;
|
||||||
import org.eclipse.jgit.util.MutableInteger;
|
import org.eclipse.jgit.util.MutableInteger;
|
||||||
|
@ -941,7 +944,15 @@ private void registerIndexChangedListener(IndexChangedListener listener) {
|
||||||
*/
|
*/
|
||||||
private void updateSmudgedEntries() throws IOException {
|
private void updateSmudgedEntries() throws IOException {
|
||||||
TreeWalk walk = new TreeWalk(repository);
|
TreeWalk walk = new TreeWalk(repository);
|
||||||
|
List<String> paths = new ArrayList<String>(128);
|
||||||
try {
|
try {
|
||||||
|
for (int i = 0; i < entryCnt; i++)
|
||||||
|
if (sortedEntries[i].isSmudged())
|
||||||
|
paths.add(sortedEntries[i].getPathString());
|
||||||
|
if (paths.isEmpty())
|
||||||
|
return;
|
||||||
|
walk.setFilter(PathFilterGroup.createFromStrings(paths));
|
||||||
|
|
||||||
DirCacheIterator iIter = new DirCacheIterator(this);
|
DirCacheIterator iIter = new DirCacheIterator(this);
|
||||||
FileTreeIterator fIter = new FileTreeIterator(repository);
|
FileTreeIterator fIter = new FileTreeIterator(repository);
|
||||||
walk.addTree(iIter);
|
walk.addTree(iIter);
|
||||||
|
|
Loading…
Reference in New Issue