Я довольно новичок в Git/LibGit2Sharp и пытаюсь создать зеркало репозитория git с помощью LibGit2Sharp. Следуя указаниям, приведенным здесь: https://github.com/libgit2/libgit2sharp/issues/577, я первый зеркальный внешний репозиторий в локальную папку, добавив к нему пульт дистанционного управления, и используется repo.Network.fetch(remote, fetchRefSpec)
где fetchRefSpec
является refs/\*:refs/*
Libgit2sharp Как сделать зеркальное нажатие
Теперь я хочу, чтобы передать данные на другой удаленный репозиторий. Здесь я смущен. Потому что, когда вы делаете это с помощью команд git, вы устанавливаете запись конфигурации remote.remoteName.mirror
в значение true, а затем делаем git push remoteName
. Указание любого другого refSpec
, когда зеркало установлено в true, дает ошибку.
Однако при использовании LibGit2Sharp, даже после того, как я установил mirror = true
, я все равно должен предоставить pushRefSpec
при нажатии. Предоставление пустого или подстановочного знака refSpecs
исключает исключение. Я даже попробовал refs/tags/\*:refs/tags/*
, но у меня такое же исключение. Цикл через все ветки в pushRefSpec
работает, но не создает зеркала.
Кто-нибудь пробовал это? Возможно, лучший способ сделать это?
Спасибо за ваш ответ Карлос. Проникновение через каждый референт в локальном хранилище помогает. – SJM
Привет, Карлос. Можете ли вы указать пример кода для этой задачи? Мне нужно сделать то же самое, но не понимаю, как изменить URL-адрес назначения. 'Network.Push (remote)' пытается нажать на старое репо, и я не вижу способов его изменить. – Skyblade