Adicionar repos a um espaço de trabalho
Este guia mostra-lhe como registar um checkout Git num espaço de trabalho, voltar a indexá-lo e removê-lo.
Os repos têm âmbito de espaço de trabalho. Não existe um registo global nem um passo de ligação: adicionar um repo e colocá-lo num espaço de trabalho são o mesmo ato. O mesmo checkout registado em dois espaços de trabalho torna-se duas linhas independentes, com dois ids diferentes — entre espaços de trabalho, a identidade de um repo é o seu caminho no sistema de ficheiros, nunca o seu id.
Antes de começar
Secção intitulada “Antes de começar”Uma pasta só pode ser registada se estas três condições se verificarem:
- Está dentro de uma árvore de trabalho git.
- Essa árvore de trabalho tem um remoto
origin. - O remoto
originaponta para uma forge suportada: github.com, gitlab.com ou bitbucket.org.
Qualquer outra situação é recusada no momento do registo com uma mensagem explícita: “Folder is not inside a git work tree.”, “No origin remote configured for this repository.” ou “The origin remote is not hosted on a supported forge (github.com, gitlab.com, bitbucket.org).”. Não existe um modo apenas local.
A forge é lida a partir do remoto e guardada no repo — nunca a escolhe. Um espaço de trabalho pode conter repos das três ao mesmo tempo, e comunica-se com cada uma através da sua própria API, com a sua própria credencial. Os namespaces aninhados do GitLab são preservados, pelo que gitlab.com/group/subgroup/project é registado com o proprietário group/subgroup e o nome project.
A pasta também tem de residir na máquina que aloja o cc_server, dentro de um dos diretórios --repo-roots desse servidor. Essa lista de autorizações tem como predefinição o diretório pessoal do utilizador do servidor, e é recusada a navegação acima de uma raiz.
Registar um checkout
Secção intitulada “Registar um checkout”- Abra Definições → Espaço de trabalho → Repositórios (
/workspaces/<id>/settings/workspace/repositories). - Clique em Adicionar repositório.
A caixa de diálogo é um navegador navegável pelo sistema de ficheiros do servidor, não pelo seu. O fluxo é o mesmo no computador, na web e no telemóvel, porque um seletor de pastas nativo escolheria uma pasta na máquina errada.
- Navegue dentro das raízes configuradas do servidor. As pastas que são checkouts git são assinaladas.
- Assinale quantas quiser. A seleção mantém-se enquanto navega, pelo que pode reunir checkouts de várias pastas.
- Registe-os num único lote.
Uma escolha falhada nunca descarta o resto do lote — recebe os ids que foram criados e um erro por caminho para cada um que foi recusado. Voltar a registar um caminho já presente neste espaço de trabalho devolve o repo existente em vez de criar um duplicado.
Cada repo registado aparece na lista com o seu owner/name, um distintivo com o nome da sua forge e o seu caminho no servidor. Os repos do GitHub mostram também o avatar do proprietário; as outras forges não têm um URL de avatar de proprietário que se possa inferir, por isso recorrem às iniciais.
O distintivo da forge é importante num espaço de trabalho misto: dois repos podem chamar-se ambos acme/web em forges diferentes, e comportam-se de forma diferente — o que uma revisão pode fazer e para onde vai uma ligação.
O que acontece a seguir
Secção intitulada “O que acontece a seguir”O registo dispara um evento RepoAdded com âmbito neste espaço de trabalho, que inicia o pipeline index_code para esse checkout. É isso que preenche o grafo de código, para que a pesquisa e a análise de impacto tenham com que responder.
Só são indexados os ficheiros cuja linguagem tenha uma gramática incluída (Dart, JavaScript, TypeScript, TSX, PHP, Python, Rust, Zig, C, C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB e Ada). Consulte Pesquisar código com o grafo de código.
Voltar a indexar um repo
Secção intitulada “Voltar a indexar um repo”Cada linha tem um botão Indexar código. Clique nele para voltar a executar o indexador desse checkout; enquanto está a correr, o botão passa a mostrar o progresso com os ficheiros concluídos sobre o total, e um controlo para cancelar. Quando termina, fica com um visto e a contagem de símbolos, ou com um aviso se a execução falhou.
Reordenar repos
Secção intitulada “Reordenar repos”Arraste a pega de uma linha. A ordem que definir é a ordem com que todas as listas de repos na aplicação são lidas.
Corrigir a ligação ao GitHub
Secção intitulada “Corrigir a ligação ao GitHub”O ícone de ligação numa linha abre um editor para o proprietário e o nome do repositório GitHub do repo — útil quando o remoto foi renomeado ou transferido.
Remover um repo
Secção intitulada “Remover um repo”- Abra Definições → Espaço de trabalho → Repositórios.
- Clique no ícone do caixote do lixo na linha.
- Confirme “Remover repositório do espaço de trabalho?”
A caixa de diálogo explica o que faz: “name será removido deste espaço de trabalho. Os ficheiros locais no disco não são afetados.”
A remoção elimina a linha do repo deste espaço de trabalho e propaga a eliminação às suas linhas do grafo de código — símbolos, arestas, ficheiros e pontos de verificação de indexação —, além de todas as concessões de repo por membro sobre ele, das suas ligações espaço-repo e dos seus registos de checkouts isolados. O mesmo checkout registado noutro espaço de trabalho é uma linha independente e não é afetado. As árvores de trabalho em disco para as quais esses registos apontavam não são destruídas pela eliminação.
Guias relacionados
Secção intitulada “Guias relacionados”- Pesquisar código com o grafo de código
- Executar agentes em paralelo
- Configurar a integração com o GitHub
- O seu primeiro espaço de trabalho