Browse Source

WorkingTreeIterator should pass FS to submodules

Change-Id: I4b7bc6bab449b9e3aebba8170788ff9e4a04195a
Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
stable-4.10
Marc Strapetz 7 years ago committed by Matthias Sohn
parent
commit
8779092716
  1. 22
      org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java
  2. 3
      org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java

22
org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java

@ -223,7 +223,8 @@ public class SubmoduleWalk implements AutoCloseable {
*/
public static Repository getSubmoduleRepository(final Repository parent,
final String path) throws IOException {
return getSubmoduleRepository(parent.getWorkTree(), path);
return getSubmoduleRepository(parent.getWorkTree(), path,
parent.getFS());
}
/**
@ -238,6 +239,23 @@ public class SubmoduleWalk implements AutoCloseable {
*/
public static Repository getSubmoduleRepository(final File parent,
final String path) throws IOException {
return getSubmoduleRepository(parent, path, FS.DETECTED);
}
/**
* Get submodule repository at path, using the specified file system
* abstraction
*
* @param parent
* @param path
* @param fs
* the file system abstraction to be used
* @return repository or null if repository doesn't exist
* @throws IOException
* @since 4.10
*/
public static Repository getSubmoduleRepository(final File parent,
final String path, FS fs) throws IOException {
File subWorkTree = new File(parent, path);
if (!subWorkTree.isDirectory())
return null;
@ -245,7 +263,7 @@ public class SubmoduleWalk implements AutoCloseable {
try {
return new RepositoryBuilder() //
.setMustExist(true) //
.setFS(FS.DETECTED) //
.setFS(fs) //
.setWorkTree(workTree) //
.build();
} catch (RepositoryNotFoundException e) {

3
org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java

@ -341,7 +341,8 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator {
final Repository submoduleRepo;
try {
submoduleRepo = SubmoduleWalk.getSubmoduleRepository(directory,
e.getName());
e.getName(),
repository != null ? repository.getFS() : FS.DETECTED);
} catch (IOException exception) {
return zeroid;
}

Loading…
Cancel
Save