Я собираюсь разработать инструмент, который считывает файл свойств, а затем создает из него папки и вытаскивает репозитории из этих URL-адресов.Использование JGit для создания инструмента, который клонирует репозитории из свойств
На самом деле мне удалось позволить ей создать папку/подпапку и клонировать один проект в него:
File repoOne = new File("repositories/repo1");
Git git = Git.cloneRepository()
.setURI("https://github.com/xetra11/renderay.git")
.setDirectory(repoOne)
.call();
Когда я запускаю это во второй раз, я получаю следующее сообщение об ошибке:
Exception in thread "main" org.eclipse.jgit.api.errors.JGitInternalException: Destination path "repo1" already exists and is not an empty directory
Я действительно не понимаю, почему JGit пытается перезаписать существующий каталог. Я знаю, что повторение там бессмысленно, но меня беспокоит то, что JGit не собирается просто «переместиться» в эту папку и выполнить команду. Я собираюсь выполнить FetchCommand
в уже существующих репозиториях. В текущем состоянии я предполагаю, что JGit всегда скажет мне, что каталог уже существует.
Любые идеи, как позволить ему просто выполнить команду в папке ЕСЛИ она существует?
У меня есть проблема с этим способом, чтобы создать «не-голый» репозиторий. 'Git.init(). SetDirectory (dirPath) .call()' дает мне «не-голый», но я не нашел способа проверить, был ли репозиторий уже создан. – xetra11
В зависимости от того, что представляет _folder_, вам может потребоваться использовать 'BaseRepositoryBuilder :: setWorkTree()' вместо ':: setGirDir()' В статье, упомянутой в ответе, обсуждается git dir vs. work dir и как определить, существует ли репозиторий был создан по длине. –