У меня есть голый репозиторий, расположенный в main.git
и пытаюсь принести ветку (foo
, скажем) в другой репо, test
, который только был git init
«d:Git принести неудачу с помощью jgit: Remote не <branchname> доступны для выборки
fetchtest/
|- main.git/
|- test/
|- .git/
Использование регулярных команд Git, я могу сделать git fetch ../main.git foo:foo
и это сделает новый филиал foo
в test/
и извлечения объектов, необходимых для отрасли. Затем я хочу сделать то же самое, но программно с помощью JGit, т. Е. Не используя GIT CLI, но используя только код Java. Там нет никакого способа, я могу использовать GIT CLI:
Git git = Git.init().setDirectory(new File("fetchtest/test/")).call();
git.fetch().setRemote(new File("../main.git"))
.setRefSpecs(new RefSpec("foo:foo"))
.call();
но это просто ошибки с:
org.eclipse.jgit.api.errors.TransportException: Remote does not have foo available for fetch.
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:137)
// ......
Caused by: org.eclipse.jgit.errors.TransportException: Remote does not have foo available for fetch.
at org.eclipse.jgit.transport.FetchProcess.expandSingle(FetchProcess.java:349)
at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:139)
at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:113)
at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1069)
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:128)
Как получить эту работу?
Ответ вы * не * ищу: узнать ** командной строки мерзавец ** d = – dcow
@David: Я хотел бы добавить, что я * не * использовать командную строку мерзавца - я должен использовать его программно , (J) Git на самом деле является частью приложения, которое я создаю, которое будет запущено на аппаратном обеспечении клиента, и git не будет установлен (и я не хочу его устанавливать, будучи больно настроен на окна). Единственное, что у них будет, это Java. –
Несомненно. Я просто играл .. – dcow