Terminologia
Contenido
La terminología empleada puede variar de sistema a sistema, pero a continuación se describen algunos términos de uso común.[1][2].
Repositório
O repositório é onde os dados atualizados e históricos de alterações são armazenados, geralmente em um servidor. Às vezes é chamado de depósito ou depósito. Pode ser um sistema de arquivos em um disco rígido, um banco de dados, etc.
Módulo
Conjunto de diretórios e/ou arquivos dentro do repositório que pertencem a um projeto comum.
Revisão ("versão")
Uma revisão é uma versão específica da informação que está sendo gerenciada. Existem sistemas que identificam revisões com um contador (por exemplo, subversion). Existem outros sistemas que identificam revisões usando um código de detecção de modificação (por exemplo, Git usa SHA1). A versão mais recente geralmente é identificada de forma especial com o nome HEAD. rótulos ou tags são usados para marcar uma revisão específica.
Rótulo ou Rótulo ("tag")
Dê a alguma versão de cada um dos arquivos no módulo em desenvolvimento em um momento específico um nome comum ("tag" ou "rótulo") para garantir que esse estado de desenvolvimento possa ser encontrado posteriormente com esse nome. Na prática, todos os arquivos são rotulados em um determinado momento. Para isso, o módulo “congela” durante a rotulagem para impor uma versão coerente. Mas sob certas circunstâncias pode ser necessário utilizar versões de alguns arquivos que não coincidem temporariamente com as dos outros arquivos do módulo.
Linha de base
Uma revisão aprovada de um documento ou arquivo de origem, a partir da qual alterações subsequentes podem ser feitas.
Filial aberta ("filial") ou filial
Um módulo pode ser ramificado ou bifurcado em um instante de tempo para que, a partir desse momento, existam duas cópias (ramificações) que evoluem de forma independente seguindo sua própria linha de desenvolvimento. O módulo então possui 2 (ou mais) "ramos". A vantagem é que pode ser feita uma “mesclagem” das modificações de ambas as ramificações, possibilitando a criação de “ramos de teste” que contenham código para avaliação. Caso seja decidido que as modificações feitas no “ramo de teste” sejam preservadas, é feito um “merge” com o ramo principal. Motivos comuns para a criação de ramificações são a criação de novos recursos ou correções de bugs.
Implantar ("Check-out", "checkout", "co")
Uma implantação cria uma cópia de trabalho local do repositório. Você pode especificar uma revisão específica, e a mais recente geralmente é retornada por padrão.
Consolidar, publicar ou enviar ("commit", "check-in", "ci", "install", "submit")
Um commit acontece quando uma cópia das alterações feitas em uma cópia local é escrita ou integrada ao repositório.
Conflito
Um conflito ocorre quando o sistema não consegue lidar adequadamente com as alterações feitas por dois ou mais usuários no mesmo arquivo. Por exemplo, se esta sequência de circunstâncias ocorrer:
-
- Os usuários X e Y implantam versões do arquivo A nas quais as linhas n1 a n2 são comuns.
-
- O usuário X envia alterações entre as linhas n1 e n2 para o arquivo A.
-
- O usuário Y não atualiza o arquivo A após o usuário X enviá-lo.
-
- O usuário Y faz alterações entre as linhas n1 e n2.
-
- O usuário Y subsequentemente tenta enviar essas alterações para o arquivo A.
O sistema não consegue mesclar as alterações. O usuário Y deve resolver o conflito mesclando as alterações ou escolhendo uma delas para descartar a outra.
Resolver
O ato de intervenção do usuário para resolver um conflito entre diferentes alterações no mesmo arquivo.
Alterar ("alterar", "diff", "delta")
Uma alteração representa uma modificação específica em um arquivo sob controle de versão. A granularidade da modificação considerada uma mudança varia entre diferentes sistemas de controle de versão.
Lista de alterações ("changelist", "conjunto de alterações", "patch")
Em muitos sistemas de controle de versão com commits atômicos de múltiplas alterações, uma lista de alterações identifica o conjunto de alterações feitas em um único commit. Isso também pode representar uma visão sequencial do código-fonte, permitindo que a fonte seja examinada a partir de qualquer identificador de lista de alterações específico.
Exportar
Uma exportação é semelhante a um check-out, exceto que cria uma árvore de diretórios limpa sem metadados de controle de versão presentes na cópia de trabalho. Muitas vezes é usado antes da publicação de conteúdo.
Importar
Uma importação é a ação de copiar uma árvore de diretórios local (que atualmente não é uma cópia de trabalho) para o repositório pela primeira vez.
Integração ou fusão (“mesclagem”)
Uma integração ou mesclagem une dois conjuntos de alterações em um arquivo ou conjunto de arquivos em uma revisão unificada do referido arquivo ou arquivos.
Integração reversa
O processo de fusão de filiais de diferentes equipes no tronco principal do sistema de lançamento.
Atualizar ("sincronizar" ou "atualizar")
Uma atualização integra alterações que foram feitas no repositório (por exemplo, por outras pessoas) na cópia de trabalho local.
Cópia de trabalho ("espaço de trabalho")
A cópia de trabalho é a cópia local dos arquivos em um repositório, em um momento específico ou revisão. Todo o trabalho realizado nos arquivos de um repositório é inicialmente realizado em uma cópia de trabalho, daí seu nome. Conceitualmente, é uma sandbox ou sandbox.
Congelar
Significa permitir que as últimas alterações (commits) para corrigir bugs sejam resolvidas em um lançamento (release) e suspender quaisquer outras alterações antes de um lançamento, a fim de obter uma versão consistente. Se o repositório não estiver congelado, um desenvolvedor poderá começar a resolver um bug cuja resolução não esteja planejada e cuja resolução resulte em efeitos colaterais imprevistos.