相关疑难解决方法(0)

如何通过JGit克隆repo后释放文件系统锁

我正在使用jGit克隆远程现有仓库,遵循指南:

https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/CloneRemoteRepository.java

我正在使用CFML作为我的例子:

Git = createObject( 'java', 'org.eclipse.jgit.api.Git' );

localPath = createObject( 'java', 'java.io.File' ).init( expandPath( 'temp' ) );

result = Git.cloneRepository()
        .setURI( 'https://github.com/github/testrepo.git' )
        .setDirectory( localPath )
        .call();

result.close();
Run Code Online (Sandbox Code Playgroud)

克隆工作得很好,但在temp\.git\objects\pack我停止Java进程之前,文件锁不会在"pack"文件中发布.

然后我也注意到API文档对于结果.close()方法的行为似乎有些过于谨慎:http: //download.eclipse.org/jgit/site/4.0.1.201506240215-r/apidocs/org/eclipse/jgit/ LIB/Repository.html#close()方法

减少使用次数,并可能关闭资源.

也许?那是什么意思?为了"放弃任何底层资源",我需要做什么,如AutoCloseable.close()方法帮助实现的接口中指定的那样?

在SO上有几个类似的问题,但没有一个涉及使用静态方法org.eclipse.jgit.api.Git来克隆新的repo.

java filehandle jgit

8
推荐指数
1
解决办法
1397
查看次数

标签 统计

filehandle ×1

java ×1

jgit ×1