Перейти до вмісту

Додати репозиторії до робочого простору

Цей посібник показує, як зареєструвати копію Git у робочому просторі, переіндексувати її та знову видалити.

Репозиторії існують у межах робочого простору. Немає ні глобального реєстру, ні окремого кроку зв’язування: додати репозиторій і помістити його в робочий простір — це одна й та сама дія. Та сама копія, зареєстрована в двох робочих просторах, стає двома незалежними рядками з двома різними ідентифікаторами — у межах різних робочих просторів ідентичність репозиторію визначає його шлях у файловій системі, а не ідентифікатор.

Папку можна зареєструвати, лише якщо виконуються всі три умови:

  1. Вона лежить усередині робочого дерева git.
  2. У цього робочого дерева є віддалене сховище origin.
  3. Віддалене сховище 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 цього сервера. Типово цей список дозволеного — домашній каталог користувача сервера, і перегляд вище за корінь відхиляється.

  1. Відкрийте Налаштування → Робочий простір → Репозиторії (/workspaces/<id>/settings/workspace/repositories).
  2. Натисніть Додати репозиторій.

Діалогове вікно — це навігаційний оглядач файлової системи сервера, а не вашої. Це той самий процес на комп’ютері, у вебі та на телефоні, бо системний засіб вибору папок вибрав би папку на не тій машині.

  1. Переміщуйтеся налаштованими коренями сервера. Папки, які є копіями git, позначено.
  2. Позначте будь-яку їх кількість. Вибір зберігається під час навігації, тож ви можете зібрати копії з кількох папок.
  3. Зареєструйте їх одним пакетом.

Один невдалий вибір ніколи не скасовує решту пакета — ви отримуєте створені ідентифікатори та помилку для кожного шляху, який було відхилено. Повторна реєстрація шляху, який уже є в цьому робочому просторі, повертає наявний репозиторій, а не створює дублікат.

Кожен зареєстрований репозиторій з’являється у списку зі своїм 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 і назви репозиторію — стане в пригоді, коли віддалене сховище перейменували чи перенесли.

  1. Відкрийте Налаштування → Робочий простір → Репозиторії.
  2. Натисніть іконку кошика в рядку.
  3. Підтвердьте «Видалити репозиторій із робочого простору?»

У вікні сказано, що саме станеться: «name буде видалено з цього робочого простору. Локальні файли на диску не змінюються.»

Видалення прибирає рядок репозиторію з цього робочого простору й каскадно видаляє його рядки графа коду — символи, ребра, файли та контрольні точки індексації — а також усі дозволи на репозиторій для окремих учасників, його зв’язки з просторами та записи про ізольовані копії. Та сама копія, зареєстрована в іншому робочому просторі, — це незалежний рядок, і її це не зачіпає. Робочі дерева на диску, на які вказували ці записи, видалення не знищує.