Ошибка, которая не будет исправлена. Он встроен в то, как разные операционные системы допускают символы в именах файлов. Решение не может быть найдено в JGit или Git на данный момент.Ошибка JGit при клонировании репозитория
Когда я пытаюсь запустить Git.cloneRepository() Я получаю ошибку, что синтаксис для файла, каталога или тома lable. Это начало появляться внезапно без какого-либо изменения кода в отношении этой части моего программного обеспечения.
JRE: 1,7
код я использую:
private void cloneCommit() throws Exception {
try {
File mineDir = new File(m_target, this.m_name);
if (!mineDir.exists()) {
mineDir.mkdir();
mineDir.setWritable(true);
mineDir.setExecutable(true);
}
Git g = null;
WindowCacheConfig cfg = new WindowCacheConfig();
cfg.setPackedGitMMAP(false);
WindowCache.reconfigure(cfg);
g = Git.cloneRepository()
.setURI(m_localUri)
.setDirectory(mineDir)
.call();
g.reset().setRef(this.m_current.getName()).setMode(ResetType.HARD).call();
GlobalMessages.commitPulled(this.m_i, this.m_current.getName());
g.getRepository().close();
m_runningThreads--;
} catch (Exception e) {
errorHandlingMining(e, this.m_current);
}
}
Сообщение об ошибке:
org.eclipse.jgit.api.errors.JGitInternalException: Incorrect syntax for file name, directory name or volume label
at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:130)
at se.lnu.cs.doris.git.GitRepository$Cloner.cloneCommit(GitRepository.java:423)
at se.lnu.cs.doris.git.GitRepository$Cloner.guardedCloner(GitRepository.java:446)
at se.lnu.cs.doris.git.GitRepository$Cloner.run(GitRepository.java:440)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Incorrect syntax for file name, directory name or volume label
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(Unknown Source)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkoutEntry(DirCacheCheckout.java:968)
at org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckout.java:457)
at org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:391)
at org.eclipse.jgit.api.CloneCommand.checkout(CloneCommand.java:229)
at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:127)
... 4 more
Я не понимаю, в чем проблема. Я попытался исправить это, пропустив первый if-clause, просто используя myDir.createNewFile() и т. Д. Код работал великолепно всего несколько дней назад. Какие-либо предложения?
Кажется произвольным, когда возникает ошибка. В том же хранилище нет ошибки через 30 минут после публикации вопроса. –