Qual é o valor do uso do controle de versão?

19

Eu sou novo no controle de versão (atualmente usando SVN), mas não entendo como isso ajuda os desenvolvedores. O que o controle de versão faz que o torna útil em um ambiente de desenvolvimento?

john ryan
fonte
4
Basta ler a excelente série HOWTO de controle de fonte de Eric Sink: ericsink.com/scm/source_control.html . Quanto ao resto, não há muito o que responder aqui ou discutir.
Deckard
4
O controle de origem é uma daquelas coisas que parece inútil até que você precise. Então você percebe que não pode ficar sem isso. Infelizmente, então é tarde demais. Mais ou menos como seguro contra inundações, exceto que acho que o controle de origem tem uma utilidade muito maior.
Rein Henrichs
2
@rahmanisback você quer logo após fazer o File | New Project ... você precisa assim que tiver> 1 desenvolvedor no projeto (minha linha padrão é> 0 desenvolvedores - e acredito que isso seja mais verdadeiro agora do que nunca)
Murph
8
Trabalhar sem controle de versão é como remover o comando "Desfazer" do processador de texto usado para digitar sua redação ou remover todos os apagadores e fluidos de correção da sua mesa.
Rwong 10/05
2
@rahmanisback Assim que você excluir um arquivo acidentalmente ou perder dados, por exemplo. @rwong boa analogia.
Rein Henrichs

Respostas:

21

VisualSVN e TortoiseSVN são apenas clientes de interface do usuário para o servidor SVN. O servidor SVN é um sistema de controle de origem / versão. O sistema de controle de versão é um recurso essencial para qualquer desenvolvimento real, porque armazena versões suas de seus códigos-fonte. Ao usar o sistema de controle de versão, você mantém apenas uma cópia local dos códigos-fonte. A cópia principal é armazenada no sistema de controle de versão e você confirma as alterações no sistema.

O SVN permite:

  • fácil compartilhamento de códigos-fonte entre toda a equipe através do repositório central
  • fazendo backup de seus códigos-fonte e outros arquivos de recursos relacionados ao projeto
  • mantendo o histórico de como os códigos-fonte mudaram
  • você pode reverter para qualquer versão mantida no histórico
  • você pode comparar alterações entre versões
  • você pode ver quem fez as alterações
  • você pode bloquear o arquivo para acesso exclusivo, para que ninguém mais possa trabalhar nele.
  • você pode ver quem está trabalhando em qualquer arquivo de código-fonte ou quem bloqueou o arquivo
  • você pode mesclar alterações em caso de trabalho paralelo no mesmo arquivo
  • você pode ver comentários associados a alterações confirmadas
  • com ferramentas adicionais, você pode associar alterações confirmadas a tarefas
  • você pode rotular / marcar a versão para encontrar com facilidade, por exemplo, versões de produção
  • você pode ramificar o código-fonte - crie versões paralelas em que um ramo pode ser considerado como principal e outro pode ser usado para testar algum recurso especial ou para continuar o desenvolvimento da nova versão do produto enquanto as correções da versão atual de produção são fixadas no principal ramo
  • você pode mesclar alterações entre ramificações
  • etc.

O VisualSVN é uma extensão do Visual Studio, que permite usar o repositório SVN diretamente da interface do usuário do Visual Studio. O TortoiseSVN é uma extensão do Windows Explorer que permite usar o repositório SVN diretamente enquanto você navega em pastas e arquivos.

Ladislav Mrnka
fonte
+1. Haaa .. depois de usar o VCS por mais de uma década, é meio difícil responder 'por que'. Quero dizer, é tão óbvio - mas muito difícil de articular realmente 'por que' da maneira que você fez isso! Ótima resposta.
Dipan Mehta 12/03/2013
Acredito que o AnkhSVN também faz um trabalho matador integrando o SVN ao Visual Studio.
Saul Delgado
6

O controle de versão oferece várias coisas:

  • Arquive seu software para poder ver o estado em que estava nos momentos anteriores. Muito útil para descobrir onde um bug foi introduzido.
  • Permita que vários desenvolvedores no mesmo projeto compartilhem e coordenem seu trabalho, ajudando a evitar a substituição do trabalho um do outro.
  • Ofereça suporte à continuidade individual e comercial, principalmente por meio de um servidor central protegido e com backup.

É o mínimo para qualquer trabalho de desenvolvimento de software, além de apenas mexer para ver o que acontece.

Eu sempre aviso a quem trabalha pela primeira vez com um sistema de controle de versão que evitá-lo é apenas um problema. Eles vai correr em um problema que quando eles olham para trás que vai perceber que não teria acontecido se eles usaram o sistema.

Marca
fonte
0

O desenvolvedor mais produtivo está sozinho. Um desenvolvedor solitário nunca precisa se preocupar em coordenar com mais ninguém. Mas, assim que o projeto passa a plural, há uma sobrecarga. E para cada desenvolvedor adicionado à equipe, a sobrecarga piora. O trabalho do VCS é ajudar a gerenciar essa sobrecarga e minimizar os efeitos.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html

Jace Browning
fonte
8
Até um desenvolvedor solitário precisa de controle de versão. O VCS não apenas "gerencia a sobrecarga", como esta citação implica.
Alroc 23/07
5
Até um desenvolvedor solitário pode perceber que fez algo errado há uma semana e deseja recuperar o código antigo. Mesmo um desenvolvedor solitário pode querer experimentar um conjunto grande e complexo de refatores sem arriscar a base de código original.
Gort the Robot
Eu acho que os aspectos de "backup" e "restauração" do controle de versão são óbvios para a maioria, mas não é até você perceber como o controle de versão ajuda a reduzir a sobrecarga da colaboração que alguém realmente entende seu valor.
Jace Browning