SVN - Ciclo de Vida

O ciclo de vida de um Sistema de Controle de Versão é discutido neste capítulo. Em capítulos posteriores, veremos o comando Subversion para cada operação.

Criar Repositório:

O repositório é um local central onde os desenvolvedores armazenam todo o seu trabalho. O repositório não apenas armazena arquivos, mas também o histórico de mudanças. O que significa que ele mantém um histórico das alterações feitas nos arquivos.

A operação 'criar' é usada para criar um novo repositório. Na maioria das vezes, essa operação é feita apenas uma vez. Quando você cria um novo repositório, seu VCS espera que você diga algo para identificá-lo, como onde você deseja que ele seja criado ou que nome deve ser dado ao repositório.

Verificação de saída

A operação 'Checkout' é usada para criar uma cópia de trabalho do repositório. A cópia de trabalho é um local de trabalho privado onde os desenvolvedores fazem suas alterações e, posteriormente, enviam essas alterações para o repositório.

Atualizar

Como o nome sugere, a operação 'update' é usada para atualizar a cópia de trabalho. Esta operação sincroniza a cópia de trabalho com o repositório. Como o repositório é compartilhado por todas as equipes, outros desenvolvedores podem enviar suas alterações e sua cópia de trabalho se torna mais velha.

Suponhamos que Tom e Jerry sejam os dois desenvolvedores trabalhando em um projeto. Ambos verificam a versão mais recente do repositório e começam a trabalhar. Neste ponto, suas cópias de trabalho estão completamente sincronizadas com o repositório. Jerry conclui seu trabalho de forma muito eficiente e envia suas alterações para o repositório.

Agora a cópia de trabalho de Tom está desatualizada. A operação de atualização puxará as últimas alterações de Jerry do repositório e atualizará a cópia de trabalho de Tom .

Realizar mudanças

Após o checkout, pode-se fazer várias operações para realizar as alterações. Editar é a operação mais comum. Pode-se editar o arquivo existente para adicionar / remover conteúdo do arquivo.

Pode-se adicionar arquivos / diretórios. Mas imediatamente esses arquivos / diretórios não se tornam parte do repositório, em vez disso, são adicionados à lista de alterações pendentes e se tornam parte do repositório após a operação de confirmação.

Da mesma forma, pode-se excluir arquivos / diretórios. A operação de exclusão exclui imediatamente o arquivo da cópia de trabalho, mas a exclusão real do arquivo é adicionada à lista de alterações pendentes e as alterações são feitas no repositório após a operação de confirmação.

A operação 'Renomear' altera o nome do arquivo / diretório. A operação 'Mover' é usada para mover arquivos / diretórios de um lugar para outro em uma árvore de repositório.

Rever alterações

Quando você faz check-out da cópia de trabalho ou atualiza a cópia de trabalho, então sua cópia de trabalho é completamente sincronizada com o repositório. Mas conforme você faz alterações em sua cópia de trabalho, ela se torna mais recente que o repositório. E é uma boa prática revisar suas alterações antes da operação de 'confirmação'.

A operação de 'Status' lista as modificações que foram feitas na cópia de trabalho. Como mencionamos antes, sempre que você faz alterações na cópia de trabalho, todas essas alterações se tornam parte da lista de alterações pendentes. E a operação de 'status' é usada para ver a lista de alterações pendentes.

A operação 'Status' fornece apenas uma lista de alterações, mas não os detalhes sobre elas. Pode-se usar a operação diff para ver os detalhes das modificações que foram feitas na cópia de trabalho.

Corrigir erros

Suponhamos que alguém tenha feito alterações em sua cópia de trabalho, mas agora, ele deseja descartar essas alterações. Nessa situação, a operação 'reverter' ajudará.

A operação de reversão reverte as modificações que foram feitas na cópia de trabalho. É possível reverter um ou mais arquivos / diretórios. Também é possível reverter toda a cópia de trabalho. Neste caso, a operação 'reverter' destruirá a lista de alterações pendentes e trará a cópia de trabalho de volta ao seu estado original.

Resolver conflitos:

Podem ocorrer conflitos no momento da fusão. A operação de 'fusão' trata automaticamente tudo o que pode ser feito com segurança. Todo o resto é considerado conflito. Por exemplo, o arquivo "hello.c" foi modificado no ramo e excluído em outro ramo. Tal situação exige que uma pessoa tome a decisão. A operação 'resolver' é usada para ajudar o usuário a descobrir as coisas e informar o VCS sobre as formas de lidar com os conflitos.

Confirmar alterações

A operação 'Commit' é usada para aplicar mudanças da cópia de trabalho ao repositório. Esta operação modifica o repositório e outros desenvolvedores podem ver essas mudanças atualizando sua cópia de trabalho.

Antes de confirmar, é necessário adicionar arquivos / diretórios à lista de alterações pendentes. Este é o lugar onde as mudanças esperam para serem confirmadas. Com o commit, geralmente fornecemos uma mensagem de log para explicar por que alguém fez alterações. Esta mensagem de log torna-se parte da história do repositório. A confirmação é uma operação atômica, o que significa que a confirmação inteira foi bem-sucedida ou foi revertida. Os usuários nunca veem o commit incompleto.