De que se trata o artigo: Aborda os conceitos de um sistema de controle de versões através da implementação e configuração de um repositório servidor e das estações de trabalho utilizando a ferramenta Open Source TortoiseSVN.
Em que situação o tema é útil: Este artigo apresenta soluções para os problemas relacionados ao desenvolvimento de grandes projetos de
software e principalmente em conjunto com vários desenvolvedores. Com um sistema de controle de versões implantado pode-se garantir o registro de toda a evolução do
projeto, além de permitir reconstruir uma revisão específica de um arquivo sempre que desejado.
Resumo DevMan: Este artigo visa auxiliar o aprimoramento da estrutura da equipe de desenvolvimento, com a finalidade de gerenciar diferentes versões no desenvolvimento de software, históricos e desenvolvimento de códigos fonte e documentação, o que possibilita vários desenvolvedores trabalharem em paralelo sobre os mesmos arquivos sem que um sobrescreva o código do outro.
O controle de versão, ou versionamento, é uma prática comum na Engenharia de Software para manter o código fonte atualizado no contexto da equipe de desenvolvimento.
Sistemas de controle de versões são ferramentas de apoio aos desenvolvedores cuja principal função é controlar as modificações realizadas em um arquivo de projeto. Ainda possuem um mecanismo automatizado para identificar e controlar as modificações realizadas nos arquivos de um projeto ao longo do tempo, garantindo integridade e rastreabilidade das modificações. O controle de versões é visto como uma extensão natural do processo de desenvolvimento, permitindo que se possam realizar modificações paralelas e de forma coerente e padronizada, especialmente se tratando de equipes geograficamente dispersas.
O repositório é o componente principal do sistema de controle de versões. É o seu núcleo, composto por uma sequência de revisões armazenadas ao longo do tempo. Em geral, o usuário só interage diretamente com o repositório durante operações de leitura. A escrita no repositório é realizada por intermédio de outro componente denominada cópia de trabalho.
Cada revisão do repositório representa o estado completo do documento ou projeto em um determinado instante no tempo. Para um software, isso significa que uma revisão contém toda a árvore de diretórios e os arquivos no estado em que se encontravam naquele momento.
O CVS (Concurrent Version System), um conhecido sistema de controle de versões, foi inicialmente baseado em um sistema de controle de versões bastante simples, chamado RCS (Revision Control System), capaz de trabalhar apenas com arquivos individuais, e não projetos inteiros, como o Subversion (SVN), um outro importante e conhecido sistema de controle de versões. Hoje, esse modelo adotado pelo CVS já está obsoleto.
Após criadas, as revisões são imutáveis, pois fazem parte do histórico do projeto. Algumas ferramentas permitem alterar ou remover revisões antigas, mas não é um procedimento natural de um sistema de controle de versões.
Cada revisão está ligada à sua revisão diretamente ancestral e geralmente é armazenada como "uma fotografia" do momento (Figura 1).
A cópia de trabalho é uma cópia usável do projeto contido no repositório, em uma determinada revisão. Por padrão, obtém-se uma cópia de trabalho da última revisão, pois é sobre ela que o desenvolvedor prossegue com o desenvolvimento do projeto.
O processo de obtenção de uma cópia de trabalho é chamado de checkout. Sobre a cópia de trabalho, o desenvolvedor realiza as modificações no projeto, de forma semelhante a como faria sem o sistema de controle de versões. O sistema conhece o estado da cópia de trabalho original e, através dela, é possível reconhecer onde foram realizadas alterações.
Algumas operações precisam ser informadas explicitamente ao sistema de controle de versões, como adição, remoção e cópia de arquivos.
A submissão, ou commit, consiste em registrar o estado atual da cópia de trabalho com suas alterações de volta ao repositório. Uma nova revisão é criada como resultado da submissão. Após a submissão, a cópia de trabalho já é considerada como sendo derivada da nova revisão e o desenvolvedor pode continuar fazendo novas alterações e novas submissões normalmente.
Ramificações ocorrem quando, por um motivo qualquer, o desenvolvimento do projeto em uma determinada revisão precisa seguir um rumo diferente da linha de desenvolvimento principal. Quando uma ramificação ocorre, duas ou mais revisões possuem uma única revisão ancestral. O desenvolvedor pode, portanto, submeter alterações para qualquer uma das revisões.
As ramificações podem ser explícitas ou implícitas. Ramificações explícitas ocorrem quando você informa ao sistema de controle de versões para bifurcar a linha de desenvolvimento em determinado ponto. Essa pratica é de grande utilidade para manter versões legadas de software (por exemplo, lançar uma versão 1.1 do programa com uma pequena correção em relação à versão 1.0, enquanto o desenvolvimento principal segue em direção à versão 2.0), implementar novos recursos que podem causar períodos de instabilidade no código, ou fazer experiências sem afetar a linha principal de desenvolvimento.
Ramificações implícitas ocorrem quando o desenvolvimento se ramifica de uma forma natural, sem um procedimento especial junto ao controle de versões. Por exemplo, dois ou mais desenvolvedores obtém cópias de trabalho da mesma última revisão do repositório, e fazem alterações em suas cópias simultaneamente. Nesse caso, cada cópia de trabalho representa uma ramificação implícita, que o controle de versões não participa até o momento da submissão.
...Confira outros conteúdos:
Teste de Acessibilidade de Software
Boas Práticas em TDD
Principais Anomalias Arquiteturais de...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.