我正在尝试用GitHub JGit爬行一个Wiki。
当我尝试使用一个URL时,它运行得非常好。然后我用另一个随机URL试了一下,得到了一个错误。
请看我代码的摘录:
import java.io.File;
import java.io.IOException;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
public class Main {
// with this URL I get an error
String url = "https://github.com/radiant/radiant.wiki.git";
// this URL works
// String url = "https://github.com/WardCunningham/Smallest-Federated-Wiki.wiki.git";
public static void main(String[] args) {
Main m = new Main();
m.jgitTest();
System.out.println("Done!");
}
public void jgitTest() {
try {
File localPath = File.createTempFile("TestGitRepository", "");
localPath.delete();
Git.cloneRepository().setURI(url).setDirectory(localPath).call();
} catch (IOException | GitAPIException e) {
System.err.println("excepton: " + e.getMessage());
e.printStackTrace();
}
}
}这是堆栈跟踪:
Exception in thread "main" org.eclipse.jgit.dircache.InvalidPathException: Invalid path (contains separator ':'): How-To:-Create-an-Extension.textile
at org.eclipse.jgit.dircache.DirCacheCheckout.checkValidPathSegment(DirCacheCheckout.java:1243)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkValidPathSegment(DirCacheCheckout.java:1225)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkValidPath(DirCacheCheckout.java:1185)
at org.eclipse.jgit.dircache.DirCacheCheckout.processEntry(DirCacheCheckout.java:311)
at org.eclipse.jgit.dircache.DirCacheCheckout.prescanOneTree(DirCacheCheckout.java:290)
at org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckout.java:408)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:393)
at org.eclipse.jgit.api.CloneCommand.checkout(CloneCommand.java:236)
at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:127)
at Main.jgitTest(Main.java:21)
at Main.main(Main.java:13)如果您访问不起作用的URL (https://github.com/radiant/radiant/wiki)的wiki页面,您会发现这个页面:如何:创建扩展。
此页面的标题是导致错误的原因:Invalid path (contains separator ':'): How-To:-Create-an-Extension.textile。
我想我需要逃避所有的输出。
发布于 2014-09-10 18:54:23
我想你是在窗户上。您不能在具有名称中的":“的窗口上创建文件。JGit应该以某种方式处理它,所以我认为这是JGit中的一个bug。
发布于 2016-02-10 17:33:45
我在纯git上也遇到了同样的问题,这个答案帮助了我:
git config core.protectNTFS falsehttps://stackoverflow.com/questions/25772908
复制相似问题