Добавить репозитории в рабочее пространство
В этом руководстве показано, как зарегистрировать рабочую копию Git в рабочем пространстве, переиндексировать её и снова удалить.
Репозитории привязаны к рабочему пространству. Глобального реестра нет, и отдельного шага привязки тоже: добавить репозиторий и поместить его в рабочее пространство — одно и то же действие. Одна и та же рабочая копия, зарегистрированная в двух рабочих пространствах, становится двумя независимыми строками с разными идентификаторами: за пределами одного рабочего пространства идентичность репозитория определяется путём в файловой системе и никогда — идентификатором.
Прежде чем начать
Заголовок раздела «Прежде чем начать»Папку можно зарегистрировать, только если выполняются все три условия:
- Она находится внутри рабочего дерева git.
- В этом рабочем дереве настроен удалённый репозиторий
origin. - Удалённый репозиторий
originуказывает на поддерживаемую платформу: github.com, gitlab.com или bitbucket.org.
Во всех остальных случаях регистрация отклоняется с явным сообщением: «Folder is not inside a git work tree.», «No origin remote configured for this repository.» или «The origin remote is not hosted on a supported forge (github.com, gitlab.com, bitbucket.org).». Режима «только локально» не существует.
Платформа определяется по удалённому репозиторию и сохраняется в репозитории — вы её никогда не выбираете. В одном рабочем пространстве могут одновременно находиться репозитории со всех трёх платформ, и с каждой взаимодействие идёт через её собственный API с её собственными учётными данными. Вложенные пространства имён GitLab сохраняются, поэтому gitlab.com/group/subgroup/project регистрируется с владельцем group/subgroup и именем project.
Кроме того, папка должна находиться на машине, где работает cc_server, внутри одного из каталогов из его --repo-roots. По умолчанию этот список разрешённых каталогов — домашний каталог пользователя сервера, а переход выше корневого каталога отклоняется.
Зарегистрировать рабочую копию
Заголовок раздела «Зарегистрировать рабочую копию»- Откройте Настройки → Рабочее пространство → Репозитории (
/workspaces/<id>/settings/workspace/repositories). - Нажмите Добавить репозиторий.
В диалоге открывается браузер по файловой системе сервера, а не вашей. На компьютере, в веб-версии и на телефоне это один и тот же сценарий: системный выбор папки указал бы папку не на той машине.
- Перейдите в нужное место среди настроенных корневых каталогов сервера. Папки, которые являются рабочими копиями git, помечаются.
- Отметьте любое количество папок. Выбор сохраняется при переходах, поэтому можно собрать рабочие копии из нескольких папок.
- Зарегистрируйте их одним пакетом.
Одна неудачная отметка никогда не отменяет остальной пакет: вы получаете идентификаторы созданных репозиториев и отдельную ошибку по каждому отклонённому пути. Повторная регистрация пути, который уже есть в этом рабочем пространстве, возвращает существующий репозиторий, а не создаёт дубликат.
Каждый зарегистрированный репозиторий появляется в списке со своим owner/name, значком с названием платформы и путём на сервере. У репозиториев GitHub также показывается аватар владельца; у остальных платформ URL аватара владельца не выводится из данных, поэтому вместо него показываются инициалы.
Значок платформы важен в смешанном рабочем пространстве: два репозитория на разных платформах могут называться одинаково — acme/web, — а ведут себя по-разному: и в том, что может сделать ревью, и в том, куда ведёт ссылка.
Что происходит дальше
Заголовок раздела «Что происходит дальше»При регистрации возникает событие RepoAdded в рамках этого рабочего пространства, которое запускает конвейер index_code для этой рабочей копии. Именно он наполняет граф кода, чтобы поиску и анализу влияния было с чем работать.
Индексируются только файлы, для языка которых есть поставляемая грамматика (Dart, JavaScript, TypeScript, TSX, PHP, Python, Rust, Zig, C, C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB и Ada). См. Искать код через граф кода.
Переиндексировать репозиторий
Заголовок раздела «Переиндексировать репозиторий»В каждой строке есть кнопка Индексировать код. Нажмите её, чтобы заново запустить индексатор для этой рабочей копии; пока он работает, кнопка превращается в индикатор хода выполнения, показывающий число обработанных файлов из общего, с элементом отмены. По завершении он сменяется отметкой с количеством символов или предупреждением, если запуск не удался.
Изменить порядок репозиториев
Заголовок раздела «Изменить порядок репозиториев»Перетащите маркер в строке. Заданный порядок — это порядок, в котором читаются все списки репозиториев в приложении.
Исправить ссылку на GitHub
Заголовок раздела «Исправить ссылку на GitHub»Значок ссылки в строке открывает редактор владельца GitHub и имени репозитория — пригодится, если удалённый репозиторий переименовали или перенесли.
Удалить репозиторий
Заголовок раздела «Удалить репозиторий»- Откройте Настройки → Рабочее пространство → Репозитории.
- Нажмите значок корзины в строке.
- Подтвердите «Удалить репозиторий из рабочего пространства?»
В диалоге сказано, что именно произойдёт: «name будет удалён из этого рабочего пространства. Локальные файлы на диске не затрагиваются».
Удаление убирает строку репозитория из этого рабочего пространства и каскадно удаляет его строки в графе кода — символы, рёбра, файлы и контрольные точки индексации, — а также все права на репозиторий, выданные отдельным участникам, его связи с пространствами и записи об изолированных рабочих копиях. Та же рабочая копия, зарегистрированная в другом рабочем пространстве, — независимая строка, и удаление её не затрагивает. Рабочие деревья на диске, на которые указывали эти записи, при удалении не сносятся.
Связанные руководства
Заголовок раздела «Связанные руководства»- Искать код через граф кода
- Запускать агентов параллельно
- Настроить интеграцию GitHub
- Ваше первое рабочее пространство