Как сделать "git clone --mirror" в JGit? - PullRequest
2 голосов
/ 10 октября 2019

Чтение документации кажется, что нет явного способа сделать git clone --mirror в JGit.

В случае git push есть обходной путь . Мне было интересно, есть ли для git clone также. Есть идеи?

1 Ответ

1 голос
/ 11 октября 2019

Насколько я понимаю, при использовании --mirror все ссылки копируются как есть. Чтобы смоделировать это поведение с помощью JGit, инициализируйте пустой репозиторий и настройте удаленный репозиторий.

Теперь используйте FetchCommand для передачи всех ссылок из удаленного репозитория. Удостоверьтесь, что в спецификациях ссылок указаны все соответствующие ссылки, такие как заголовки, теги, заметки и т. Д.

Git git = Git.init().setBare(true).setGitDir(...).call()
git.remoteAdd().setName("origin").setUri(new URIish("URL/to/mirror/source")).call();
git.fetch().setRemote("origin").setRefSpecs("+refs/*:refs/*").call();
...