【发布时间】:2015-10-24 04:53:14
【问题描述】:
我正在按照此处的指南使用 jGit 克隆远程现有存储库:
我使用 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();
克隆效果很好,但在我停止 Java 进程之前,不会在 temp\.git\objects\pack 内的“打包”文件上释放文件锁。
然后我还注意到 API 文档对于结果的 .close() 方法的行为似乎有点虚伪。:
http://download.eclipse.org/jgit/site/4.0.1.201506240215-r/apidocs/org/eclipse/jgit/lib/Repository.html#close()
减少使用次数,并可能关闭资源。
也许?那是什么意思?我需要做什么才能按照.close() 方法帮助实现的AutoCloseable 接口中指定的“放弃任何底层资源”?
关于 SO 有几个类似的问题,但没有一个涉及使用 org.eclipse.jgit.api.Git 上的静态方法来克隆新的 repo。
【问题讨论】:
标签: java jgit filehandle