Controle de versão para desenvolvedores independentes?

60

Você acha que vale a pena usar o controle de versão se você é um desenvolvedor independente e, se sim, por quê? Você mantém o repositório em seu próprio computador ou em outro lugar, onde ele pode servir como backup?

vedosidade
fonte
54
Eu adoraria ver um farmacêutico perguntar: "Devo armazenar medicamentos de forma organizada ou simplesmente jogá-los todos em uma gaveta? Vale a pena o esforço?"
Erik
23
Imagine-se trabalhando duro por uma semana criando esse incrível software. Em seguida, apague-o. Como você se sentiria? Não é apenas armazenamento. Quando algo está quebrado e funcionou na semana passada, você pode ver o que mudou e, geralmente, o que quebrou. Ainda vejo desenvolvedores 'profissionais' com as pastas backup001 e backup_backup001 misturadas com a origem. Forme bons hábitos enquanto você ainda é jovem.
Erik
@Erik Yuck, as pastas de backup parecem desagradáveis. Uso o controle de origem em meus projetos, embora não seja muito bom em comprometer-se com frequência.
precisa

Respostas:

61

Se você usar o controle de fonte descentralizado (Mercurial ou Git ou Bazaar ou qualquer outra coisa), obterá vantagens sobre o SVN / CVS que tornam mais fácil, útil e poderoso o uso no caso de você ser um indy:

  1. Você confirma localmente : o diretório do seu projeto é seu repositório com o histórico COMPLETO. Portanto, você não precisa ter um servidor, confirma diretamente no seu repositório e pode ter vários repositórios no mesmo computador. Você usa um laptop que você abre às vezes para continuar trabalhando? Ótimo! Você não precisa configurar um servidor e, se precisar dele mais tarde, é fácil e basta "empurrar" e "puxar" as alterações entre os repositórios.
  2. Ele foi criado para facilitar a experimentação : geralmente você precisa ter uma idéia sobre um recurso sem poluir o código. Com o SVN e o CVS, você já pode usar um sistema de ramificação e abandonar a ramificação se o recurso não for tão bom quanto você queria. Mas se você deseja mesclar o recurso com a versão do tronco, será muito difícil corrigir surpresas. Git, Mercurial e Bazaar (pelo menos) tornam as fusões e ramificações muito fáceis. Você pode até duplicar um repositório, trabalhar nele por algum tempo, ainda assim enviá-lo e executá-lo ou enviar suas alterações no repositório principal, se desejar.
  3. Flexibilidade da organização : como indicado anteriormente, como você reposiciona e organiza conforme necessário, é fácil começar sozinho e permitir que outras pessoas trabalhem com você alterando sua organização. Nenhuma organização é imposta, então você só precisa configurá-la e pronto. Costumo apenas pressionar / puxar alterações entre meus próprios computadores (laptop / desktop / servidor) e ainda estou sozinho em meus desenvolvedores. Eu uso o Mercurial e isso me ajuda a duplicar meu trabalho, mas também funciona em recursos que eu pensava fora do meu laptop, continuo trabalhando em outros recursos da área de trabalho, pressiono as alterações do meu laptop na área de trabalho ou no servidor e mesclamos toda a área de trabalho laptop e colocá-lo (como backup e futuro repositório de trabalho em equipe) no meu servidor.
  4. Ajuda a configurar backups : se você configurar um repositório central (no GitHub, se for público, ou em um repositório particular no BitBucket), poderá escrever facilmente um script que será executado toda vez que um computador for inicializado, e depois passar o script em aos seus amigos, para que faça backups automáticos do seu trabalho regularmente. É o que estou fazendo agora. Tenho certeza de que não será fácil perder meu trabalho.

De fato, atualmente, você não tem desculpa para não usar uma ferramenta de fonte de controle para nenhum projeto. Porque eles são mais poderosos e flexíveis do que antes e se adaptam às suas necessidades.

Klaim
fonte
6
Sempre existe o GitHub .
HedgeMage
8
Ou bitbucket.org, se você estiver usando o Mercurial.
Terence Ponce
7
O Mercurial com um repositório de sistema de arquivos local no dropbox funciona muito bem para um único desenvolvedor.
Pieter Breed
11
@ Guillaume: Um único desenvolvedor pode usar o aspecto "distribuído" de um DVCS. Eu faço. Por exemplo, eu posso trabalhar no computador A, empurrar o meu trabalho no meu usb chave, e depois extrair desta chave USB no computador B.
Barjak
11
@Guillaume "Distribuído" é um aspecto técnico, não organizacional. Você pode usar um sistema de origem de construção centralizado com uma organização com integradores autorizados apenas a validar o código confirmado. Isso é possível, mas difícil de configurar devido à natureza centralizada da ferramenta. Mas isso ainda é um problema ortogonal.
Klaim
34

controle de código fonte é totalmente inútil para desenvolvedores independentes, porque como todos sabemos:

  • desenvolvedores independentes nunca cometem erros
  • desenvolvedores independentes nunca fazem revisões que não dão certo
  • desenvolvedores independentes nunca têm mais de uma versão e, portanto, não têm uso para ramificações
  • desenvolvedores independentes nunca se preocupam com o que mudaram ontem ou na semana passada
  • desenvolvedores independentes nunca, nunca precisam de backups

Me chame de "desenvolvedor dependente": os repositórios do Mercurial clonam facilmente entre meu desktop, laptops, unidades de backup USB e o bitbucket.org. Eu cresci dependente e gosto dessa maneira!

Steven A. Lowe
fonte
6
Esta resposta é sarcástica?
4
@kurtnelle: extremamente!
Steven A. Lowe
11
Kewlio, apenas verificando.
21

Por que não?

Sou desenvolvedor solo e uso BitBucket e Mercurial para meus projetos pessoais. Ter a capacidade de reverter e bifurcar seu código é bom demais para deixar passar.

Terence Ponce
fonte
8
+1 para BitBucket - eles oferecem repositórios privados ilimitados gratuitamente.
quer
2
Os repositórios privados gratuitos são a razão pela qual eu uso o BitBucket no GitHub.
Terence Ponce
4
repo privado grátis ?? Você pode ter me convertido de git para hg.
Gauthier
@ Gauthier, sim, o BitBucket tem acordos privados gratuitos. Não tenho certeza se eles são ilimitados.
Terence Ponce
11
Você ainda pode usar o git com o bitbucket. De fato, a importação diretamente do github, incluindo chaves ssh. Apenas fez a jogada, mas ainda usar git (eu gosto melhor!)
Daniel Casserly
1

Eu acho valor nisso pessoalmente. Meus projetos são todos verificados em repositórios git (todos os quais mantenho em várias máquinas em caso de falha de hardware). Os recursos mais úteis são ramificação (para que eu possa executar um experimento que mexa com metade da minha base de código, e não me preocupo em explodir qualquer coisa permanentemente) e reverter (o que é basicamente apenas desfazer esteróides; caso eu ache que fiz alguns erro fora do intervalo normal de desfazer).

Inaimathi
fonte
1

Sim. É muito, muito útil. Meu amigo Matt Gallagher publicou este excelente artigo sobre esse assunto há apenas alguns dias no seu blog de desenvolvimento iOS / MacOS "Cocoa With Love".

O artigo é centrado no Mac & Git, mas aborda o básico.

Você também pode estar interessado nas seguintes perguntas sobre o StackExchange (e suas respostas).

orj
fonte
1

Que vale a pena?? Devo! Se você não usa o Controle de origem, não controla suas fontes, e isso é ruim. Você não pode diferenciar, não pode reverter, não pode acompanhar as alterações - você passará horas tentando descobrir o bug que acabou de inserir. É melhor tê-lo em algum servidor de backup, mas você também pode usar seu computador e usar qualquer método de backup que achar adequado.

Assimiz
fonte
2
Na verdade, eu uso o controle de origem, mas também costumo fazer coisas como excesso de engenharia e adoção de coisas que são exageradas. Eu sou bem conhecido por isso no trabalho. Por outro lado, não acho que nenhum programador em que trabalho, inclusive eu, tenha trabalhado em outro lugar como programador, e a maioria de nós ainda está no ensino médio.
precisa
1

Absolutamente use o controle de origem. Em seguida, configure um servidor de compilação e automatize seus processos de compilação e teste. O gatilho cria a partir da sua fonte confirma o seu repositório central. Trabalho sozinho há três anos e é maravilhoso.

Dave Neeley
fonte
0

Sim.

Até desenvolvedores individuais precisam, às vezes, ver o estado de seu código em alguma revisão anterior. E é sempre uma boa idéia fazer backup de tudo que é importante, e isso se aplica a todas as pessoas.

whatsisname
fonte