Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Git.cloneRepository时,jgit occurs Packfile被截断_Java_Eclipse_Jgit - Fatal编程技术网

Java 使用Git.cloneRepository时,jgit occurs Packfile被截断

Java 使用Git.cloneRepository时,jgit occurs Packfile被截断,java,eclipse,jgit,Java,Eclipse,Jgit,当我使用EclipseJgitAPI Git.cloneRepository()克隆一个大型repo时,会出现java.io.EOFException:Packfile被截断。 位于org.eclipse.jgit.transport.PackParser.fill(PackParser.java:1241) 我的代码: CloneCommand cmd = Git.cloneRepository(); cmd.setDirectory(repo) cmd.setGitDir() cmd.set

当我使用EclipseJgitAPI Git.cloneRepository()克隆一个大型repo时,会出现java.io.EOFException:Packfile被截断。 位于org.eclipse.jgit.transport.PackParser.fill(PackParser.java:1241)

我的代码:

CloneCommand cmd = Git.cloneRepository();
cmd.setDirectory(repo)
cmd.setGitDir()
cmd.setURI()
cmd.setCredentialsProvider()
cmd.setProgressMonitor()
cmd.setTimeout(600000)
git = cmd.call()
出现以下trunck错误: 接收对象:94%(143964/152511)


谢谢。

最后,我用ssh解决了这个问题。注意,这个回购协议超过了4.5G! 如果您的repo足够大,例如大于4G,请不要使用jgit使用HTTP格式URI进行克隆,您应该使用SSH URI使用jgit api进行克隆,否则您将收到文件截断错误。即使您使用最新的jgit版本

CloneCommand cmd = Git.cloneRepository()
cmd.setDirecotry()
cmd.setGitDir()
cmd.setURI()
cmd.setCredentialsProvider(new CredentialsProvider(){

})
cmd.setProgressMonitor(new TextProgressMonitor())
cmd.setTimeout(600000)
cmd.setTransportConfigCallback(new TransportConfigCallback(){
    @Override
    public void configure(Transport transport){
         SshTransport ssh = (SshTransport)transport
         ssh.setSshSessionFactory(new JshConfigSessionFactory(){
              @Override
              protected void configure(OpenSshConfig.Host host,Session 
              session){
                  session.setConfig("StrictHostKeyChecking","no"); 
              }
              @Override
              protected JSch getJSch(Final OpenSshConfig.Host hc,FS fs) 
              throws JSchException {
                  JSch jsch = super.getJSch(hc,fs);
                  jsch.removeAllIdentity();
                  jsch.addIdentity("/path/to/your/private key")//note must be 
//a rsa private key format,otherwise you will get the bad private key error 
                  return jsch;

              } 

         })
    } 
})
git = cmd.call();

请参阅,获取完整的cmd.setCredentialsProvider(new-CredentialsProvider(){}),这是JSch的限制吗?如果是,它是否可以将ApacheMina sshd用作SSH客户端?