添加文件时出现 JGitInternalException
JGitInternalException while adding files
我刚开始尝试使用 JGit,现在在做最基本的事情时遇到了一个奇怪的异常。
我的代码:
public class JGitTest {
public static void main(String[] args) throws Exception {
File worktree = new File(
"C:\Users\nils\Desktop\tmp\gittest\jgittest");
File repodir = new File(worktree, ".git");
Repository repository = FileRepositoryBuilder.create(repodir);
Git git = new Git(repository);
git.add().addFilepattern(".").call();
}
}
执行此代码段时出现以下异常:
Exception in thread "main" org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of add command
at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:212)
at de.njo.test.JGitTest.main(JGitTest.java:18)
Caused by: java.io.IOException: Das System kann den angegebenen Pfad nicht finden
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(Unknown Source)
at org.eclipse.jgit.internal.storage.file.ObjectDirectoryInserter.newTempFile(ObjectDirectoryInserter.java:233)
at org.eclipse.jgit.internal.storage.file.ObjectDirectoryInserter.toTemp(ObjectDirectoryInserter.java:199)
at org.eclipse.jgit.internal.storage.file.ObjectDirectoryInserter.insert(ObjectDirectoryInserter.java:91)
at org.eclipse.jgit.internal.storage.file.ObjectDirectoryInserter.insert(ObjectDirectoryInserter.java:102)
at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:188)
... 1 more
当 运行 这个片段在 Java EE 服务器上时,我得到了一个非常相似的异常。我的错误在哪里?
编辑:更多信息:
- 创建的存储库完全是空的(没有目录:hooks、HEAD 或
任何东西)
- 我正在使用 JGit v3.7.0.201502260915-r
JGitInternalException
的原因是指定位置没有存储库。
尽管名称如此,FileRepositoryBuilder.create()
并不创建(即 git init
)存储库。 FileRepositoryBuilder
只能用于为现有的 git 存储库创建 Repository
的实例(class 表示 JGit 中的存储库)。阅读 more on this here.
要初始化新存储库,请使用
Git git = Git.init().setDirectory( "c:\users\..." ).call();
不要忘记 git.close()
使用完存储库后。
我刚开始尝试使用 JGit,现在在做最基本的事情时遇到了一个奇怪的异常。
我的代码:
public class JGitTest {
public static void main(String[] args) throws Exception {
File worktree = new File(
"C:\Users\nils\Desktop\tmp\gittest\jgittest");
File repodir = new File(worktree, ".git");
Repository repository = FileRepositoryBuilder.create(repodir);
Git git = new Git(repository);
git.add().addFilepattern(".").call();
}
}
执行此代码段时出现以下异常:
Exception in thread "main" org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of add command
at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:212)
at de.njo.test.JGitTest.main(JGitTest.java:18)
Caused by: java.io.IOException: Das System kann den angegebenen Pfad nicht finden
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(Unknown Source)
at org.eclipse.jgit.internal.storage.file.ObjectDirectoryInserter.newTempFile(ObjectDirectoryInserter.java:233)
at org.eclipse.jgit.internal.storage.file.ObjectDirectoryInserter.toTemp(ObjectDirectoryInserter.java:199)
at org.eclipse.jgit.internal.storage.file.ObjectDirectoryInserter.insert(ObjectDirectoryInserter.java:91)
at org.eclipse.jgit.internal.storage.file.ObjectDirectoryInserter.insert(ObjectDirectoryInserter.java:102)
at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:188)
... 1 more
当 运行 这个片段在 Java EE 服务器上时,我得到了一个非常相似的异常。我的错误在哪里?
编辑:更多信息:
- 创建的存储库完全是空的(没有目录:hooks、HEAD 或 任何东西)
- 我正在使用 JGit v3.7.0.201502260915-r
JGitInternalException
的原因是指定位置没有存储库。
尽管名称如此,FileRepositoryBuilder.create()
并不创建(即 git init
)存储库。 FileRepositoryBuilder
只能用于为现有的 git 存储库创建 Repository
的实例(class 表示 JGit 中的存储库)。阅读 more on this here.
要初始化新存储库,请使用
Git git = Git.init().setDirectory( "c:\users\..." ).call();
不要忘记 git.close()
使用完存储库后。