Usando algum tipo de controle de versão ao trabalhar sozinho e com pequenos projetos?

30

Muitas vezes estou trabalhando em pequenos projetos apenas para mim. Estou trabalhando em uma máquina, mas recentemente pensei em usar algum tipo de controle de versão. Isso traria alguns benefícios, como por exemplo:

  • Não preciso mais me preocupar com backup local
  • Erros podem facilmente ser desfeitos
  • A história pode ser mantida

Mas, por outro lado, também tem algumas desvantagens, como por exemplo:

  • Recursos adicionais necessários
  • Hora de configurar, se acostumar, etc.

De acordo com a sua experiência, é bom usar o controle de revisão quando estiver trabalhando sozinho?

RoflcoptrException
fonte
Meus dois centavos: eu uso o Mercurial e o NetBeans e a parte mais valiosa do VCS que uso (Mercurial) é capaz de fazer alterações, examinar as alterações e limpá-las (confirmar) (arquivos por vez ou em todo o projeto) no meu lazer. (O NetBeans possui uma comparação gráfica que funciona com o Mercurial) Isso me ajuda a controlar o que acabei de fazer. Nossa empresa tem um histórico e um sistema de backup diferentes, então normalmente não o uso para esse fim.
Bryan Field

Respostas:

46

Sim.

Tudo o que precisamos é de um único erro e você estará se esforçando por isso. Você também está na posição de escolher qual sistema de controle de versão (VCS) é usado. Se houver alguma possibilidade de você trabalhar em uma equipe de desenvolvimento no futuro, este é um ótimo momento para se dar uma experiência prática com um VCS. SVN e Git (ou Mercurial) seriam ótimos pontos de partida e levariam apenas algumas horas para entender os comandos básicos em cada VCS.

Agora, para desmascarar o que os pontos negativos ...

1) Recursos adicionais necessários

O único recurso necessário é espaço em disco. Como essa é uma pequena porcentagem (menor no Git que X ) do seu código total, não acho que isso seja um problema. Também não custa dinheiro.

2) Hora de configurar, se acostumar, etc.

Haverá tempo necessário para aprendê-lo, mas são apenas algumas horas para cada um deles (como mencionado acima). A longo prazo, tem o potencial de economizar uma quantidade infinita de tempo (e muito mais). Depois de dominar o básico de um VCS, será muito menos complicado do que executar o backup local que você tem em mente.

Jonathan Khoo
fonte
5
+1: pontos muito bons. No entanto, eu não recomendaria o svn: ele não permite cometer alterações quando não está conectado à Internet, o que pode ser uma forte restrição às vezes. Eu recomendaria Git (para usuários avançados) ou Mercurial (para um sistema mais simples).
Eric O Lebigot
7
Outro voto para Mercurial.
21411 Chris Holmes
4
@EOL, SubVersion é viável neste caso. Se o repositório for local, uma conexão com a Internet não será necessária para fazer confirmações. (Embora eu sugeriria as necessidades de repositório para ser pelo menos em uma unidade separada da unidade de desenvolvimento.)
Ken Henderson
1
@EOL: Ah, sim, esqueci de incluir o Mercurial porque não o havia usado antes; irá editar agora. Enquanto (depois de usar o Git) eu não tocaria no SVN se precisasse, o SVN ainda é amplamente usado.
Jonathan Khoo
1
svn @ Ken com um repo local na caixa de depósito é ideal para um único usuário
Martin Beckett
13

Sim. Use-o para tudo. Use-o para todos os documentos que você escreve no Word. Use-o para todo o código que você escreve. Use-o para todas as imagens que você criar.

Além disso, depois de aprender a usá-lo, você estará melhor quando trabalhar em um ambiente de equipe.

davidhaskins
fonte
4
O único problema com o Word é que ele está no formato binário, então você não pode fazer um diff; outro motivo para usar o LaTeX.
gablin
Qual seria o sentido de usá-lo com imagens?
Rook
por exemplo WinMerge pode diff documentos do Word e Excel
Simon
2
@Rook: o objetivo de usá-lo com imagens é que, se você editar uma imagem, poderá sempre voltar à versão antiga, se precisar.
Alex D
9

Adoro usar o Git quando trabalho sozinho. Por exemplo, ao trabalhar em PHP, acabei de criar um repositório Git no meu diretório local que o Apache está servindo. Posso começar facilmente a trabalhar em um novo recurso (em uma filial) e testá-lo na minha máquina local. Então, se surgir algo e eu precisar fazer uma "correção de emergência", é simples como:

git checkout master

Voila! Meu diretório de trabalho está de volta ao estado em que estava antes da minha ramificação. Eu posso fazer a solução rápida. Quando terminar, posso voltar ao ramo e continuar desenvolvendo.

A curva de aprendizado não é muito íngreme e há muitas informações on-line para ajudar você a começar. Cave nele. Vale a pena.

TaylorOtwell
fonte
Git, juntamente com GitHub ou Gist, valem o esforço para projetos solo. Eles protegem você de si mesmo e facilitam a obtenção de ajuda quando você está pronto para que outras pessoas se envolvam.
Rob Allen
5

O changelog fornece um bom lugar para documentar suas alterações, sem sobrecarregar a fonte.

Joris Geer
fonte
2

Escolha algo hospedado como o SourceRepo. Não é muito caro, mas usar o controle de origem torna mais fácil desfazer erros e reverter o código.

E você pode acessá-lo em qualquer lugar, se precisar.

James Love
fonte
4
convém ter cuidado ao fazer o upload da propriedade da empresa para servidores externos. pode ser bom para algumas empresas, mas outras desaprovam isso.
Davidhaskins
1
Bom ponto de atenção. O Submitter disse que os projetos eram para si próprio, então eu assumi que era para uso pessoal, mas definitivamente garanta que os gerentes de linha estejam cientes do sistema com o qual você decide seguir (especialmente se eles são fóbicos em nuvem).
James Love
2

Eu sempre usei o git para o meu desenvolvimento, até que percebi que poderia usá-lo para outras coisas também. Então tente o git, ele fornece um repositório real, sem a necessidade de um servidor e uma conexão constante (isso é uma grande vantagem para mim); ele não espalha os subdiretórios do seu projeto com arquivos e pastas ocultos; em vez disso, existe apenas uma pasta na parte superior do projeto; você pode jogar tudo e clonar o que quiser e mesclá-los novamente, para que funcione.

Coiote21
fonte
2

Se você está procurando gratuitamente e suporte para código fechado, dê uma boa olhada no Visual Studio Online. É grátis para até 5 desenvolvedores, e ficar sozinho ... bem ... sim. Este é um post 4 anos depois, então sua situação provavelmente mudou, mas para outros desenvolvedores individuais que procuram um controle fácil de fonte, o VSO é uma das minhas escolhas favoritas se não quiser expor meu código-fonte. O IIRC Github é gratuito apenas para material de código aberto, mas seus preços são muito baratos. O VSO e o Github se integram muito bem ao Visual Studio, se esse for o seu IDE preferido.

Bill Sambrone
fonte
E o VSO agora suporta o Git! Adeus TFVC velho e desajeitado!
RubberDuck
1

Sempre configurei o controle de origem para meus próprios projetos, com um ambiente de integração contínuo e para criar / executar verificações de teste de unidade / integração de unidade sempre que faço check-in. Além disso, se for um aplicativo da web ou serviço do Windows, implemente destinos também. Economizei inúmeras horas depurando e implantando usando esse método e não é nada comparado à configuração inicial.

aceinthehole
fonte
1

Outro recurso muito interessante sobre repositórios é que você pode fazer experimentos / recursos realmente arriscados em outro ramo. Se funcionar, você poderá mesclar como parte do seu código principal. Se isso não ocorrer ou você ficar sem tempo, poderá abandoná-lo (salvo) e voltar ao código principal com a opção de retornar mais tarde, sem danificar sua base de códigos principal.

teoria do caos
fonte