diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java index e3c225ff6..9a9940898 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java @@ -417,7 +417,13 @@ public boolean checkout() throws IOException { if (!file.getParentFile().mkdirs()) { // ignore } + DirCacheEntry entry = dc.getEntry(path); + + // submodules are handled with separate operations + if (FileMode.GITLINK.equals(entry.getRawMode())) + continue; + checkoutEntry(repo, file, entry); }