Jgit 抛出 java.io.IOException:为 /.config/jgit 创建目录失败

Omk*_*kar 11 java git jgit

最近将 Jgit 升级到 5.10.0.202012080955-r。之后,我们将IOException克隆一个裸 git 存储库。到目前为止,它似乎没有造成任何明显的功能影响,但它引起了人们的关注。此问题仅在 Kubernetes 部署中出现,在 Junit 测试中不会出现。这是一个已知问题吗?如果是,有什么解决方法或这里缺少什么吗?

谢谢。

[36morg.eclipse.jgit.util.FS                [0;39m [2m:[0;39m Cannot save config file 'FileBasedConfig[/.config/jgit/config]'

java.io.IOException: Creating directories for /.config/jgit failed
    at org.eclipse.jgit.util.FileUtils.mkdirs(FileUtils.java:411) ~[org.eclipse.jgit-5.10.0.202012080955-r.jar!/:5.10.0.202012080955-r]
    at org.eclipse.jgit.internal.storage.file.LockFile.lock(LockFile.java:130) ~[org.eclipse.jgit-5.10.0.202012080955-r.jar!/:5.10.0.202012080955-r]
    at org.eclipse.jgit.storage.file.FileBasedConfig.save(FileBasedConfig.java:219) ~[org.eclipse.jgit-5.10.0.202012080955-r.jar!/:5.10.0.202012080955-r]
    at org.eclipse.jgit.util.FS$FileStoreAttributes.saveToConfig(FS.java:735) ~[org.eclipse.jgit-5.10.0.202012080955-r.jar!/:5.10.0.202012080955-r]
    at org.eclipse.jgit.util.FS$FileStoreAttributes.lambda$4(FS.java:424) ~[org.eclipse.jgit-5.10.0.202012080955-r.jar!/:5.10.0.202012080955-r]
    at org.eclipse.jgit.util.FS$FileStoreAttributes$$Lambda$1660/0x00000000f4008230.run(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:836) ~[na:na]
Run Code Online (Sandbox Code Playgroud)

Omk*_*kar 11

在这种特殊情况下,Jgit 尝试在基于的路径创建配置文件XDG_CONFIG_HOME.

如果XDG_CONFIG_HOME没有设置,它将有默认值$HOME/.config。在我的 Kubernetes 环境中无法访问此特定路径。

更改XDG_CONFIG_HOME为指向适当的路径。这样 Jgit 将能够创建配置文件。