|
|
|
@ -48,6 +48,7 @@ package org.eclipse.jgit.treewalk;
|
|
|
|
|
import java.io.ByteArrayInputStream; |
|
|
|
|
import java.io.File; |
|
|
|
|
import java.io.FileInputStream; |
|
|
|
|
import java.io.FileNotFoundException; |
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.io.InputStream; |
|
|
|
|
import java.nio.ByteBuffer; |
|
|
|
@ -69,8 +70,10 @@ import org.eclipse.jgit.errors.CorruptObjectException;
|
|
|
|
|
import org.eclipse.jgit.ignore.IgnoreNode; |
|
|
|
|
import org.eclipse.jgit.ignore.IgnoreRule; |
|
|
|
|
import org.eclipse.jgit.lib.Constants; |
|
|
|
|
import org.eclipse.jgit.lib.CoreConfig; |
|
|
|
|
import org.eclipse.jgit.lib.FileMode; |
|
|
|
|
import org.eclipse.jgit.lib.Repository; |
|
|
|
|
import org.eclipse.jgit.util.FS; |
|
|
|
|
import org.eclipse.jgit.util.IO; |
|
|
|
|
import org.eclipse.jgit.util.io.EolCanonicalizingInputStream; |
|
|
|
|
|
|
|
|
@ -897,7 +900,27 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator {
|
|
|
|
|
r = new IgnoreNode(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
File exclude = new File(repository.getDirectory(), "info/exclude"); |
|
|
|
|
FS fs = repository.getFS(); |
|
|
|
|
String path = repository.getConfig().get(CoreConfig.KEY) |
|
|
|
|
.getExcludesFile(); |
|
|
|
|
if (path != null) { |
|
|
|
|
File excludesfile; |
|
|
|
|
if (path.startsWith("~/")) |
|
|
|
|
excludesfile = fs.resolve(fs.userHome(), path.substring(2)); |
|
|
|
|
else |
|
|
|
|
excludesfile = fs.resolve(null, path); |
|
|
|
|
loadRulesFromFile(r, excludesfile); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
File exclude = fs |
|
|
|
|
.resolve(repository.getDirectory(), "info/exclude"); |
|
|
|
|
loadRulesFromFile(r, exclude); |
|
|
|
|
|
|
|
|
|
return r.getRules().isEmpty() ? null : r; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void loadRulesFromFile(IgnoreNode r, File exclude) |
|
|
|
|
throws FileNotFoundException, IOException { |
|
|
|
|
if (exclude.exists()) { |
|
|
|
|
FileInputStream in = new FileInputStream(exclude); |
|
|
|
|
try { |
|
|
|
@ -906,8 +929,6 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator {
|
|
|
|
|
in.close(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return r.getRules().isEmpty() ? null : r; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|