При инициализации репо принадлежащего мне зеркала:
repo init -b git@<server>/path/to/repo
repo sync
Как правильно обновить манифест на зеркале, чтобы нисходящие клиенты могли правильно синхронизироваться?
Я пытался использовать жесткий путь при работе на той же машине, что и зеркало, и это работает. Я попытался использовать имя сервера для выборки при запуске на другом компьютере, и это не удается. Но когда я пытаюсь извлечь fetch = ".", Это фактически приводит к получению правильного URL. И пока я ценю это fetch = "."означает «использовать текущий каталог», а fetch = «..» означает использовать каталог верхнего уровня, поэтому для меня это не имеет смысла.
При использовании локального репозитория (на той же машине, что изеркало) Я могу использовать
<remote fetch="/local/mirror/repo/location" name="new_name"/>
<default remote="new_name" revision="current_branch"/>
И это работает для синхронизации кода.
На другой машине я, когда я пытаюсь использовать это:
<remote fetch="git@<server>/path/to/repo/" name"new_name"/>
<default remote="new_name" revision="current_branch"/>
Это не удается. Каждое git-repo получает новое удаленное имя «new_name», и URL-адрес заканчивается тем, что он ожидает обработки удаленного пути к репо к значению оператора fetch, а затем отправляет его с указанием пути к проекту. Это неверный URL, который Git может использовать для получения. Когда я наконец понял, что это работает:
<remote fetch="." name="new_name" />
<default remote="new_name" revision="current_branch"/>
Я действительно не понял, почему. URL, используемый репозиторием git, по-видимому, получен из URL, используемого в «repo init».
Поскольку использование полного пути работает во время работы на сервере, я ожидал указать путь к тому жеместоположение, все-это-с предваренной git @ string.
Что я хочу знать, так это как на самом деле собираются строки при обновлении файла .git / config для каждого git-репо и где это строго определено.