Ссылка:
1 2 3 |
https://gerrit.googlesource.com/git-repo https://source.android.com/docs/setup/reference/repo?hl=ru https://source.android.com/docs/setup/reference/repo |
Установка из пакетов:
1 2 3 4 5 6 7 8 |
Repo дополняет Git, упрощая работу с несколькими репозиториями. # Debian/Ubuntu. $ sudo apt-get install repo # Gentoo. $ sudo emerge dev-vcs/repo You can install it manually as well as it's a single script. |
Установка:
1 2 3 4 |
$ mkdir -p ~/.bin $ PATH="${HOME}/.bin:${PATH}" $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo $ chmod a+rx ~/.bin/repo |
Использование:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Использование репо принимает следующую форму: repo command options Необязательные элементы показаны в скобках []. Например, многие команды принимают project-list в качестве аргумента. Вы можете указать project-list как список имен или список путей к локальным исходным каталогам проектов: repo sync [project0 project1 ... projectn] repo sync [/path/to/project0 ... /path/to/projectn] repo init -u url [options] - Устанавливает Repo в текущий каталог. Эта команда создает каталог .repo/ с репозиториями Git для исходного кода Repo и стандартных файлов манифеста Android. Параметры: -u : укажите URL-адрес, по которому нужно получить репозиторий манифестов. Общий манифест находится по адресу https://android.googlesource.com/platform/manifest -m : выбрать файл манифеста в репозитории. Если имя манифеста не выбрано, по умолчанию используется default.xml -b : указать ревизию, то есть конкретную manifest-branch |
Синхронизировать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
repo sync [project-list] Загружает новые изменения и обновляет рабочие файлы в вашей локальной среде, по сути выполняя git fetch во всех репозиториях Git. Если вы запустите repo sync без аргументов, она синхронизирует файлы для всех проектов. Когда вы запускаете repo sync , происходит вот что: Если проект никогда не синхронизировался, то repo sync эквивалентна git clone ; все ветки удаленного репозитория копируются в локальный каталог проекта. Если проект уже был синхронизирован ранее, то repo sync эквивалентна: git remote update git rebase origin/branch Где branch — это текущая извлеченная ветка в локальном каталоге проекта. Если локальная ветка не отслеживает ветку в удаленном репозитории, синхронизация проекта не происходит. Ключевые параметры: -c : получить с сервера только текущую ветку манифеста. -d : переключить указанные проекты обратно на версию манифеста. Эта опция полезна, если проект находится в тематической ветке, но версия манифеста необходима временно. -f : продолжить синхронизацию других проектов, даже если проект не удалось синхронизировать. threadcount : разделите синхронизацию между потоками для более быстрого завершения. Убедитесь, что вы не перегружаете свою машину — оставьте часть процессора зарезервированной для других задач. Чтобы увидеть количество доступных процессоров, сначала запустите nproc --all. -q : работать тихо, подавляя сообщения о состоянии. -s : синхронизировать с заведомо исправной сборкой, указанной в элементе manifest-server в текущем манифесте. Чтобы получить дополнительные параметры, запустите repo help sync. |
загрузить
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
repo upload [project-list] Загружает изменения на сервер проверки. Для указанных проектов Repo сравнивает локальные ветки с удаленными ветвями, обновленными во время последней синхронизации Repo. Репо предложит вам выбрать одну или несколько веток, которые не были загружены на проверку. Все коммиты в выбранных ветках затем передаются в Gerrit через соединение HTTPS. Вам необходимо настроить пароль HTTPS, чтобы включить авторизацию загрузки. Чтобы создать новую пару имени пользователя и пароля для использования через HTTPS, посетите генератор паролей . Когда Gerrit получает данные объекта через свой сервер, он превращает каждый коммит в изменение, чтобы рецензенты могли прокомментировать конкретный коммит. Чтобы объединить несколько коммитов контрольных точек в один, используйте git rebase -i перед запуском загрузки. Если вы запускаете repo upload без аргументов, он ищет во всех проектах изменения для загрузки. Чтобы редактировать изменения после их загрузки, используйте такой инструмент, как git rebase -i или git commit --amend чтобы обновить локальные коммиты. После завершения редактирования: Убедитесь, что обновленная ветка является текущей извлеченной веткой. Используйте repo upload --replace PROJECT , чтобы открыть редактор сопоставления изменений. Для каждого коммита в серии введите идентификатор изменения Gerrit в скобках. После завершения загрузки изменения имеют дополнительный набор патчей. Если вы хотите загрузить только извлеченную в данный момент ветку Git, используйте флаг --current-branch (или --cbr для краткости). |
разница
1 2 |
repo diff [project-list] Показывает существенные изменения между фиксацией и рабочим деревом с помощью "git diff" |
скачать
1 2 3 4 5 6 7 8 |
repo download target change Загружает указанное изменение из системы проверки и делает его доступным в локальном рабочем каталоге вашего проекта. Например, чтобы загрузить изменение 23823 в каталог вашей platform/build : repo download platform/build 23823 Запуск repo sync удаляет все коммиты, полученные при "repo download". Или вы можете проверить удаленную ветку, используя git checkout m/main |