Недавно мастер ветка для инструмента репо Google была обновлена для поддержки ОС Windows.Из журналов коммитов ясно: https://gerrit.googlesource.com/git-repo/+log
Я могу запускать базовые команды, такие как repo init и repo sync, используя инструмент репо в Windows (который использует MinGW Git в Windows).В моей работе мне нужно создать локальное зеркало репозитория, а затем использовать его.Утилита repo прекрасно работает для создания зеркального хранилища.
Вот команды, используемые для создания зеркального хранилища на локальном диске в ОС Windows.
$ repo.cmd init -u <URL> -b <branch_name> -m <manifest_file_name> --mirror --no-repo-verify
$ repo.cmd sync --no-tags
- - no-repo-verify isиспользуется для принудительного использования главной ветви инструмента репо.
- Приведенные выше команды создают зеркало на локальном диске C: \ git-repo \ test \ mirror-testing \ mirror
Но когдаЯ отсылаю вышеупомянутое зеркало для синхронизации на другом диске, тогда оно показывает ошибку.
Command:
$ repo.cmd init -u <URL> -b <Branch_name> -m <manifest_file_name> --reference="C:\git-repo\test\mirror-testing\mirror" --no-repo-verify
Error:
error: object directory C:/git-repo/test/mirror-testing/mirror/project/manifest.git/objects? does not exist; check .git/objects/info/alternates.
Приведенная выше команда создает альтернативный файл в C: / git-repo / test / mirror-testing / mirror / project / manifest.git / objects / info / directory, и этот файл содержит следующий путь:
C:\git-repo\test\mirror-testing\mirror\project/manifest.git\objects
Я пробовал другие форматы для предоставления ссылочного значения:
Git format: "/C/git-repo/test/mirror-testing/mirror"
Cygwin format: "/cygdrive/c/git-repo/test/mirror-testing/mirror"
Использование вышеуказанных форматов в ссылках не создаетфайл альтернатив в каталоге объектов.
время инициализации репо во всех вышеперечисленных случаях просто предполагает, что зеркало не передается, а инициализация выполняется из сети.
Когда я повторяю тот же тест с Cygwin Git + Google repo tool (стабильная ветвь), то я не вижу никаких ошибок, и время инициализации репо и время синхронизации очень меньше по сравнению с временем инициализации и синхронизацией зеркала, котороепросто предлагает использовать зеркало.
repo.cmd - это пакетный файл-обертка для запуска инструмента репозитория с python.Файл repo.cmd содержит одну строку
@ call python% ~ dp0 \ repo% *
Я использую терминал Cygwin в Windows 7 для запуска этих команд.
Для ясности, инициация репозитория и синхронизация репозитория показывают ошибку при обращении к зеркалу, но успешно завершаются при синхронизации из внешней сети.Проблема в том, что зеркало не упоминается.
Кто-нибудь использовал Google репо в Windows для создания зеркала и синхронизации на другом диске, используя в качестве ссылки?