因此,从字面上看,经过几天的戳后,我点击了“提交”,我偶然发现了我认为的答案。
食谱示例仅调用
.close()上的结果的方法
cloneRepository()的
call()方法(A
Git实例)。API文档指出该方法还应该调用
.close基础
Repository实例的方法:
http://download.eclipse.org/jgit/site/4.0.1.201506240215-r/apidocs/org/eclipse/jgit/api/Git.html#close()
如果存储库是由此类中的静态工厂方法打开的,则此方法将在基础存储库实例上调用Repository.close()。
但是,我发现如果自己获取
Repository实例并调用其
.close()方法,则会释放所有文件系统锁。我认为这是我遵循的JGit菜谱参考中的遗漏,并将提交问题/建议。
这是有效的CFML代码。请注意
.close()底部的两个呼叫。
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.getRepository().close();result.close();



