Pergunta

Qual seria o melhor sistema de controle de versão para aprender como um iniciante no controle de origem?

Foi útil?

Solução

Qualquer coisa menos fonte visual segura;de preferência um que suporte os conceitos de ramificação e fusão.Como já foi dito, o Subversion é uma ótima escolha, especialmente com o cliente TortoiseSVN.

Não deixe de conferir (desculpe o trocadilho) A série clássica de artigos COMO FAZER sobre controle de origem de Eric Sink.

Outras dicas

Eu sugiro que você experimente o Subversion, por exemplo com o Instalador SVN com 1 clique.Tente pesquisar no SO por "Subversion" e você encontrará muitas perguntas com respostas que apontam para bons tutoriais.

Boa sorte!

eu iria direto Git.Já usei o subversion antes, mas sempre senti que estava fazendo errado.Git fez sentido desde o primeiro dia.

Recursos úteis:

Existem alguns conceitos básicos que considero importantes aprender:

  1. Check-ins/check-outs (obviamente)
  2. Versões locais vs.versões do servidor
  3. Mapeamento/vinculação de um espaço de trabalho local a um armazenamento ou repositório remoto.
  4. Mesclar suas alterações de volta em um arquivo que contém alterações de outras pessoas.
  5. Ramificação (o que é, quando/por que usar)
  6. Mesclando alterações de uma ramificação de volta em uma ramificação principal ou tronco.

A maioria dos sistemas modernos de controle de origem exigem algum conhecimento dos tópicos acima e devem ajudar a facilitar seu aprendizado.Então você distribuiu o controle de origem, com o qual não tenho nenhuma experiência, mas que é bastante complicado e pode não ser adequado para iniciantes.

Subversão é ótimo porque tem todos os recursos modernos que você deseja e é gratuito.

Git também está se tornando uma opção cada vez mais popular e é outra alternativa gratuita ou de custo muito baixo ao Subversion.No entanto, o conhecimento sobre os conceitos de ramificação e fusão torna-se crítico para o uso do Git.

Você pode usar desvendar como uma maneira fácil e gratuita de experimentar o Git e o Subversion.Eu o uso para hospedar alguns repositórios Subversion para alguns projetos paralelos em que trabalhei no passado.

Não sou usuário avançado de controle de origem, mas estou aprendendo.Aqui está minha experiência com produtos de controle de origem:

  1. Há muito tempo, a empresa para a qual eu trabalhava na época decidiu usar o controle de origem.Eles apresentaram o conceito aos desenvolvedores e fizeram com que todos quisessem experimentá-lo.Eles optaram por usar o PVCS e o implementaram.Em pouco tempo, os desenvolvedores teriam que se coordenar para bloquear/desbloquear módulos e objetos e realmente não vimos muitos benefícios.

  2. Alguns anos depois, eu estava pensando em fazer um projeto de código aberto e na época o Rubyforge estava oferecendo repositórios CVS.Eu experimentei e era um pouco melhor que o PVCS.Concedido, eu era o único usando o repositório.No entanto, fiquei frustrado quando tentei reorganizar a estrutura dos meus arquivos porque não gostei da maneira como os importei inicialmente.Realmente não funcionou no CVS.

  3. Alguns anos depois, eu estava trabalhando em outro projeto pessoal e meu provedor de hospedagem oferecia repositórios Subversion (SVN) fáceis de configurar.Levei um pouco de pesquisa para colocá-lo em funcionamento corretamente, mas depois que passei da curva de aprendizado inicial, gostei.

  4. Pouco tempo depois, percebi que gostava de ter controle de origem e que meu trabalho atual não o tinha.Então eu evangelizei e, depois de um longo período de tempo, minha equipe implementou o Source Safe porque trabalhamos no Visual Studio e geralmente somos uma loja da Microsoft.Eu estava ansioso para usá-lo, mas logo descobri que estava perdendo arquivos e que o Visual Studio estava colocando as coisas no lugar errado e que eu trabalharia em um projeto por um tempo e depois exportaria meu trabalho para outro local e descobrir que não exportaria ou exportaria apenas alguns dos projetos em uma solução.Isso me fez perceber que mesmo pensando que estava usando um “sistema de controle de versão”, a cópia do código mais segura, robusta e completa era minha cópia de trabalho.Exatamente o oposto do que o controle de origem deve fazer.

  5. Então, na semana passada, eu estava tão farto do Source Safe que fui pesquisar.Depois de analisar algumas soluções, decidi tentar o git.Não vou dizer que foram tudo rosas, já que novamente tive alguma curva de aprendizado para fazê-lo fazer o que quero. No entanto, gostei o suficiente para converter todo o meu trabalho e projetos pessoais nele.Uma das coisas realmente legais sobre isso é que não preciso de um repositório centralizado, então posso usá-lo sem passar por muita burocracia no trabalho para instalá-lo.

Resumindo, eu recomendaria o git, eu uso o Mysysgit no Windows e ele tem a vantagem adicional de me fornecer um shell bash.No Linux você pode simplesmente instalá-lo a partir do seu gerenciador de pacotes.Se você não gosta do git, tente o subversion.Se você não gosta de nenhum deles, provavelmente também não gostará de CVS ou PVCS.Sob nenhuma circunstância tente o Source Safe, é horrível.

eu encontrei http://unfuddle.com me poupou de mexer na instalação do SVN ou do git.Você pode obter uma conta gratuita lá e usar qualquer uma delas - além de poder usar seu OpenID lá.

Assim você evita ter que mexer na configuração correta e se concentra em como vai usá-lo!

O Vault do SourceGear.com é excelente.É gratuito para usuários individuais e oferece uma excelente interface VS 2005/2008.Eu amo isso!

rp

@Ian Nelson:

Concordo com você que o Source Safe é ruim como sistema de controle de origem, mas tenha em mente que usar o Source Safe é muito melhor do que "carregar disquetes", como disse Joel Spolsky.

Para um iniciante pode não ser uma má ideia, já que o custo de não ter nenhum controle de origem é muito maior.

Cada ferramenta tem seus pontos fortes e fracos.É uma questão de quais são seus requisitos.Infelizmente, com esse problema, como muitos outros, muitas vezes não é a melhor ferramenta selecionada, mas aquela com a qual alguém está familiarizado.Por exemplo, se você não precisar de muitas filiais e sua equipe for pequena e local, quase todos os vcs farão o trabalho (exceto SourceSafe).As coisas mudam se você precisar de ramificações (o que quase por necessidade significa que você também precisa fazer fusões), sua equipe estiver distribuída, você precisar de segurança avançada (os subcontratados não têm permissão para acessar toda a árvore de origem), rastreamento de tarefas, etc.Há também a questão do custo de três maneiras diferentes:custo de licenças, custo de manutenção (algumas ferramentas são tão complicadas que na prática você precisa de alguém apenas para controlar os repositórios) e custo de treinamento.

Portanto, sugerir uma ferramenta em vez de outra é como sugerir qual seria a melhor linguagem de programação.

Apenas algumas dicas:

  • O StartEam é o mais fácil das ferramentas que usei.Exigiu muito pouco treinamento.Recebi um treinamento de um dia desde que seria o mantenedor.Essa manutenção levou menos de 30 minutos por semana.Os usuários que eu "treinei" escrevendo um manual de duas páginas e, depois disso, tive muito poucas perguntas a serem respondidas.
  • Continuus foi o outro extremo da escala no que diz respeito à facilidade de uso.Por outro lado, o gerenciamento de tarefas foi ótimo e ofereceu um bom suporte para gerenciamento de versões.O problema é que, mesmo como gerente de lançamento, nunca pensei que a facilidade de fazer lançamentos (foi depois que você aprendeu como, mas isso levou um tempo considerável) deveria ser mais importante do que o trabalho diário que os desenvolvedores fazem.
  • A fusão e a criação de ramificação diferem descontroladamente entre as ferramentas.Algumas ferramentas tornam isso simples, como Git e Clearcase (embora este seja muito lento), algumas basicamente o forçam a fazer a mesclagem manualmente.Se você precisar fazer muito, o custo pode ficar alto.Clearcase também era caro nas três categorias mencionadas antes (embora seja necessário dizer que usamos todas as coisas avançadas que não são necessárias).Por outro lado, não possui uma boa interface do usuário e alguns conceitos diferem do que você pode estar acostumado.Também estão falta os recursos de segurança do Git (a gitose aborda alguns problemas, mas não todos).
  • A maioria das ferramentas que usei também é bastante lenta.Ferramentas como PVCs/dimensões foram lentas, não importa o quê (coisas básicas como abrir um diretório no repositório), algumas muito lentas de maneiras mais específicas (como o ClearCase).

Das ferramentas que usei eu selecionaria StarTeam se seus desenvolvedores não forem muito experientes (e se você não se importa em pagar a licença, que é bem cara) e git se você tiver alguns vcs experientes a bordo que possam configurar o ambiente para outros caras.O Mercurial também parece um concorrente interessante e parece ter interfaces de usuário um pouco melhores.

Continuus, PVCS/Dimensions e ClearCase são muito lentos, muito complexos e muito caros para quase todos os projetos.Se alguém insistir em selecionar um desses, eu escolheria o ClearCase.

Eu não usei o Subversion, que muitos parecem gostar (ainda assim, tenho a sensação de que isso está prestes a mudar em um futuro próximo), então não posso comentar como ele se compara às outras ferramentas que usei (geralmente como um build e/ ou gerenciador de lançamento).

Quanto à primeira ferramenta a escolher, o problema do Git, Bazaar e Mercurial é que são vcs distribuídos.Isso é diferente do modelo tradicional servidor-cliente, onde você tem um repositório central.Para aprender apenas as coisas, recomendo também ler sobre os conceitos.Ramificação, por exemplo, é algo que você pode não entender corretamente apenas tentando (existem diferentes estratégias de ramificação para diferentes situações).Além disso, é muito diferente se você for o único acessando o repositório, conflitos de mesclagem, por exemplo, não seriam um problema (você pode vê-los, mas também os corrigiria facilmente, já que conhece o código em ambos os ramos).É claro que você aprenderia sobre check-outs, check-ins e coisas assim, mas não acho que essas questões sejam particularmente difíceis em primeiro lugar.

Um problema adicional com os vcs é que eles tendem a usar termos diferentes.No StarTeam, que de outra forma é fácil de usar, eles, por algum motivo, insistem em usar os termos "check-out" e "check-out e bloqueio".Este último é o que a maioria das pessoas pensa que o primeiro faz.Há uma razão para isso (você pode editar arquivos mesmo que não tenha um bloqueio exclusivo), mas ainda faria muito mais sentido chamá-los de “Obter” e “Verificar” para evitar confusão.

Qualquer coisa, mas eu mesmo aprenderia um sistema moderno como o git ou o subversion.Meu primeiro VCS foi o RCS, mas aprendi o básico.

Bem, se você quer apenas aprender por conta própria, eu diria que você deveria escolher algo gratuito, como o subversion.Se você é uma empresa que nunca usou controle de origem antes, isso realmente depende de suas necessidades.

Minha primeira exposição foi CVS com WinCVS como cliente.foi horrível.Em seguida veio o Subversion, com integração do TortoiseSVN e Eclipse.Foi intuitivo e celestial.Eu acho que usar CVS com TortoiseCVS e Eclipse também seria bom, embora eu prefira a maneira como o SVN lida com a revisão.Todo o repositório é versionado a cada check-in, não arquivos individuais.

Eu também recomendaria o Subversion.A configuração não demora muito, é gratuita e há um livro muito bom disponível on-line que aborda o básico e também alguns tópicos avançados: http://svnbook.red-bean.com/

Subversão com tartarugasvn.(tortoisesvn porque você pode ver muito do que acontece visualmente e fornecerá um bom ponto de partida para o material da linha de comando.) Há muita documentação por aí e provavelmente você a verá em pelo menos um ponto de sua carreira.Quase todas as empresas em que trabalhei e entrevistei executam SVN.

Se você deseja aprender um produto comercial enquanto começa, o Perforce oferece um cliente e um servidor gratuitos, com o servidor suportando dois usuários e cinco espaços de trabalho de clientes.

No meu local de trabalho anterior, ele era usado religiosamente, não apenas para códigos de nossos programadores, mas também para recursos artísticos e níveis de jogos, além de minha própria documentação.

O Subversion é um bom lugar para começar.É um sistema de controle de versão muito estável e moderno.O melhor recurso online para começar a aprender sobre o Subversion seria Controle de versão com Subversion.Existem muitas opções no que diz respeito a softwares de servidor e cliente.Eu pessoalmente prefiro (para ambiente Windows).

  1. Servidor VisualSVN

  2. Cliente integrado no shell TortoiseSVN e

  3. Complemento AnkhSVN Visual Studio Subversion

Novamente, com o Subversion existem muitas opções disponíveis.Além disso, é um sistema de controle de versão em constante evolução (ao contrário do SourceSafe desatualizado).Ele pode ser facilmente integrado a inúmeras ferramentas de construção automatizadas (CruiseControl, FinalBuilder) e sistemas de rastreamento de bugs/problemas (JIRA).

Se você está procurando sistemas de controle de versão de última geração, opte pelo Git (desenvolvido por Linus Torvalds).Mas se você é totalmente novo em sistemas de controle de versão, sugiro começar com o Subversion.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top