Usando o controle de versão para desenvolvimento doméstico?

138

Até agora, desenvolvi meus projetos pessoais e escolares em casa sem usar nenhuma forma de software de controle de revisão para lidar com minhas alterações e outros enfeites.

Minha pergunta é: quão viável é usar um aplicativo de controle de versão (como o TortoiseSVN ) para projetos pessoais que faço para mim (e até mesmo projetos escolares)?

Vale a pena o trabalho de fazer check-in, realizar alterações e toda essa rotina, apenas para 'projetos domésticos' em vez de apenas fazer backups manuais?

Ligações :

Peter Mortensen
fonte
2
É muito mais fácil usar o controle de origem do que fazer backups manuais! Talvez seja mais fácil aprender a fazer backups manuais do que aprender a usar o controle de origem.
Yfeldblum
1
Eu posso recomendar o VisualSVN, muito fácil de usar. E o seu servidor de subversão é livre :) ( visualsvn.com )
Svish
Em vez disso, use um servidor hospedado; você recebe zero de manutenção + backup. Eu uso Unfuddle: stackoverflow.com/questions/430742/…
ripper234

Respostas:

191

Completamente.

Créditos também para http://blogs.embarcadero.com/nickhodges/2010/04/23/39416 :

  • Às vezes cometemos erros estúpidos. Ter uma rede de segurança de controle de fonte é uma obrigação.
  • Marque marcos importantes. Mesmo no desenvolvimento doméstico, você pode marcar um conjunto de arquivos e revisões como sendo uma versão específica do software.
  • Você treina para a sua vida profissional. Colocar na sua cabeça a metodologia de trabalho associada ao uso do controle de origem o prepara profissionalmente.
  • Eficiência de armazenamento. Os sistemas atuais de controle de fonte armazenam as revisões como uma diferença delta para a revisão anterior. Isso significa que é mais eficiente em disco, pois o arquivo inteiro não é armazenado, mas apenas as diferenças.
  • Você tem o histórico de toda a sua árvore de fontes. Você pode ver rapidamente o que foi alterado e quando foi alterado. Compare arquivos de diferentes revisões e mesclar facilmente.
  • Você pode ramificar para experimentar. Se você tem algumas experiências em mente, pode criar uma ramificação (uma nova linha de desenvolvimento independente) e testá-la. No final, se você estiver satisfeito com os resultados, mescle-o na HEAD (linha principal de desenvolvimento). Você obtém tudo isso de graça, sem precisar criar uma cópia e receber os mesmos benefícios do uso do controle de origem, mesmo durante a experiência.
smink
fonte
13
Apenas uma coisa a acrescentar: desde que o sistema de controle de versão esteja em uma máquina remota, ele fornece um backup online simples do seu trabalho.
NotMe
Eu concordo completamente. Sempre que você precisar tirar proveito de um único desses recursos, você já recuperou o custo menor do uso do controle de origem.
31580 Chris Farmer
O ponto 4 do marcador não é aplicável ao git. O git é otimizado para desempenho de mesclagem, e o armazenamento de diferenças não é benéfico para esse objetivo. hoje em dia, presume-se que você tenha espaço em disco suficiente para o seu código-fonte. No entanto, todos os outros pontos são razões para usar qualquer controle de origem e, obviamente, o git satisfaz todos eles.
SingleNegationElimination
Mais uma vez, recomendo o git, especialmente para os pontos 2. 5. e 6. O git tem uma interface muito legal para marcação, ramificação, mesclagem etc. e algumas das ferramentas gráficas, como qgit ou gitk, tornam muito fácil ver como todos ramos se encaixam .. é também um pedaço de bolo para transformar sua atual (sem versão) diretório de trabalho em um diretório git com 3 comandos: git init git add, git commit.
David Claridge
Se o seu projeto pessoal é grande o suficiente para tornar o ponto 4 (eficiência de armazenamento) importante, você definitivamente precisa de controle de origem!
Tikhon Jelvis
31

Vale totalmente a pena.

Observe que você também não precisa configurar um servidor SVN completo. Você pode simplesmente criar um repositório no sistema de arquivos local e conectar-se ao arquivo: // sintaxe da URL. Isso significa que você não precisa enfrentar o incômodo de configurar um daemon SVN (que provavelmente é um exagero para um projeto de usuário único)

Você também pode procurar opções mais leves, como o git, que mantêm todos os arquivos de trabalho localmente, sem a necessidade de criar um repositório separado. O Git oferece mais algumas opções de como você também configura seu controle de origem no caminho.

madlep
fonte
1
Eu tentei recentemente o git porque um projeto que eu estava seguindo o usou. Eu imediatamente mudei para o git para meus projetos pessoais e de trabalho assim que vi como é simples e rápido . Altamente recomendado.
Dave Sherohman
8

Usar o controle de origem também é bom para fins de backup. Se você sempre fizer check-in de tudo, poderá fazer backup de todos os seus projetos de código-fonte, fazendo backup de todos os seus repositórios. Se você possui várias máquinas, não precisa se preocupar com a localização da versão mais recente do código - ela está no servidor de repositório.

Greg Hewgill
fonte
6

Eu mantive minha tese de mestrado inteira sob controle de origem - tanto o código quanto a própria tese -, por isso sou um forte defensor disso, e não apenas pelo código.

Para projetos individuais, a principal vantagem é a liberdade de mudar as coisas e experimentar, sabendo que você sempre pode voltar à versão anterior, se não funcionar. E fornece backups implícitos do seu trabalho (apenas verifique se o seu repositório svn está no mínimo em um disco rígido diferente do trabalho principal)

Kena
fonte
5

Absolutamente, vale a pena fazer. Dá a você a capacidade de experimentar refatorações malucas e loucas e depois retirá-las com facilidade, se não funcionarem. Ele também cria bons hábitos para se / quando você trabalha de forma mais colaborativa com um grupo.

Com o Subversion (pelo menos), você nem precisa ter um "servidor" - um diretório simples pode servir como seu repositório se você acessá-lo com os URLs do tipo "file: //". Existe até um livro gratuito que contém praticamente tudo o que você precisa saber para começar:

http://svnbook.red-bean.com/nightly/en/index.html

Sistema límbico
fonte
4

Acho que é extremamente útil ter uma configuração de servidor SVN porque me vejo voltando a revisões e outros projetos de 'descarte' porque lembrei de alguma função ou maneira de fazer algo que eu poderia usar agora. Tendo o servidor SVN, sei que o código está armazenado em casa e posso recuperá-lo mais tarde.

Bryan Rehbein
fonte
4

O controle de revisão é ótimo porque permite que você seja mais experimental, sabendo que, se seus experimentos falharem, você terá algo a que recorrer.

dreamlax
fonte