De que controle de origem eu preciso para um grande projeto em uma empresa média? [fechadas]

10

Eu sei que o Git é ótimo para projetos de código aberto. Mas eu estava pensando: para uma empresa com 20 programadores trabalhando em um projeto de 1 ano, qual sistema de controle de origem é desejável? Pelo que ouvi, Git usa puxar; não seria menos do que desejável precisar passar por outra pessoa para obter suas alterações no porta-malas principal? Especialmente quando todo mundo está trabalhando ao mesmo tempo?

Isso é apenas um exemplo que eu estava pensando. Eu sei como usar o SVN, mas mesmo no meu último trabalho, não o usamos em nossos projetos, pois tudo foi feito em PHP e esses eram normalmente projetos independentes de 1 semana. Eu só tinha SVN para o meu código local e não precisava usá-lo com outras pessoas.

Então, o que são bons controles de origem e, especificamente, por que é bom para isso?

Martin Maat
fonte
13
Porque você codifica em php não é um motivo para não usar VCS.
Chris
@ Chris: Se dependesse de mim, haveria um repo na rede. Mas, infelizmente, essa empresa não o usou. Eu estava apenas dizendo que eu não tinha experiência 'time' com controle de origem

Respostas:

29

Use o que sua equipe se sentir confortável. Todos os sistemas de controle de versão fazem aproximadamente a mesma coisa de maneiras semelhantes; não há razão para reinventar a roda porque "pode ​​funcionar melhor". Se sua equipe não estiver confortável com nada, escolha a opção que tem a integração mais fácil com o IDE padrão da sua equipe.

EricBoersma
fonte
11
Essa é uma resposta inteligente e não partidária - eu gosto.
Murph
11
Os sistemas de controle de fonte +1 são complexos o suficiente, qualquer coisa que você possa fazer para minimizar isso será para melhor!
Dal
3
Existem coisas que os VCS distribuídos fazem muito melhor do que os centralizados, e você sempre pode usar um DVCS como centralizado; portanto, para uso geral a longo prazo, recomendo o Git ou o Mercurial. Para situações como essa, qualquer VCS razoavelmente moderno será bem, e o Subversion é provavelmente o mais fácil de aprender.
David Thornley
Definitivamente, use o que sua equipe conhece ou se sente à vontade. (A menos que seja CVS ou RCS.) Se você mudar para algo novo e todos precisarem aprender, faça as contas: 20 pessoas * 3 horas de treinamento * $ 40 / hora = $ 2.400.
Barry Brown
Ou esperar que eles saibam como escolher competentemente-se uma nova VCS em 5 minutos ...
alternativa
4

Mercurial é excelente, distribuído e gratuito.

Steven A. Lowe
fonte
4

Eu acho que depende de qual nível de suporte você precisa.

Uso o git em casa para meus projetos divertidos quando tenho um problema que me custa tempo, mas posso gastar o tempo aprendendo o que preciso para corrigi-lo.

No trabalho, usamos o Perforce porque é essencial ter suporte técnico 24/7. Temos pessoas trabalhando no código em Nova York, Alemanha, Irlanda e Japão o tempo todo. Se houver algum problema, precisamos obter uma resposta o mais rápido possível. Na minha experiência, as pessoas da Perforce realmente sabem o que estão fazendo e são receptivas a sugestões.

Mark Thalman
fonte
11
+1: Perforce é caro, mas você obtém o que paga.
Ninguém
3

Embora eu ache que essa pergunta seja ampla e deva ser abordada por empresa, com base na estrutura de TI e nas estruturas de rede / desenvolvimento, acho que o aspecto mais importante da escolha do controle de origem / versão não é qual aplicativo você usa, mas se o seu uso é praticamente estruturado e aplicado.

Estrutura e aplicação do uso são os aspectos mais importantes do controle de versão.

Planeje com antecedência e leve todos a bordo. Impor uso. Não apenas com programadores, mas com tudo relacionado a projetos (documentos, imagens, etc.).

O SVN é um ótimo aplicativo e pode ser integrado a muitos complementos (incluindo rastreamento de bugs / tarefas), não precisa de um servidor separado e é gratuito!

Também existem outras aplicações de controle de fontes boas, como @EricBoersma disse:

Use o que sua equipe se sentir confortável.

Basta ter processos e práticas recomendadas e comprar daqueles que podem aplicá-lo.

Paige Watson
fonte
3

Você tem alguns grandes equívocos sobre como o git funciona. Enviar uma solicitação pull a um gatekeeper é apenas uma maneira de fazê-lo. Existem muitas outras maneiras de configurá-lo, incluindo exatamente como o svn, que é exatamente quantas pessoas começam antes de se sentirem confortáveis ​​o suficiente para personalizar. Com um DVCS como o git, você tem opções suficientes para estruturar seu controle de origem em torno do fluxo de trabalho, e não o contrário.

Karl Bielefeldt
fonte
2

Eu costumava ver que o controle de origem era apenas uma ferramenta e que cada um dos produtos fazia mais ou menos a mesma coisa. E então o ponto desses sistemas distribuídos de controle de versão clicou comigo.

O controle de versão distribuído permite que você tenha mais de um repositório central. Imagine alterações de código migrando do repositório local do desenvolvedor, para o repositório de recursos, para o repositório do produto, para o repositório de QA e, finalmente, para o repositório liberado.

Pessoalmente, uso um produto comercial chamado Kiln, baseado em Hg, mas o principal recurso é o controle de versão distribuído . Ele revoluciona o fluxo de novo código do desenvolvedor para um produto lançado.

Michael Shaw
fonte
São muitos repositórios para um projeto. Que pesadelo para a fusão.
precisa saber é o seguinte
3
Eu concordaria com você se estivesse se unindo ao SubVersion ou CVS. A razão pela qual esses produtos de controle de versão distribuído funcionam é porque eles tornam a fusão simples e praticamente livre de conflitos.
Michael Shaw
2

Você sabe como usar o SVN e, em seguida, use o SVN - migre apenas para um DVCS se houver algo necessário.

O que é realmente importante é que você use algo que você gosta de usar, que seja fácil de usar. Martin Fowler fez uma pesquisa rápida e simples sobre VCSs, os resultados são muito interessantes.

gbjbaanb
fonte
2

Eu configurei o git no meu último trabalho, onde estávamos trabalhando em um projeto de tamanho semelhante (15 desenvolvedores, projeto de 18 meses) e funcionou bem.

A maneira como configuramos foi:

Tínhamos um servidor git que era nosso servidor git autorizado e centralizado. Os membros da equipe foram desencorajados a se afastarem um do outro diretamente, para que todas as alterações fossem feitas no servidor central.

Usamos o ramo principal como o principal ramo de produção, com tags para cada versão. Cada módulo no projeto era um submódulo git. Cada submódulo tinha ramificações para cada membro da equipe. Um mantenedor (geralmente o autor original) foi designado para cada submódulo e eles foram responsáveis ​​por lidar com solicitações pull de outros membros da equipe e por emitir solicitações pull ao líder da equipe que atualizaria o submódulo na ramificação principal quando estivesse pronto para ser integrado ao ramo de produção. Usamos tags para identificar confirmações que concluíram um recurso específico ou que correspondiam a uma liberação.

Cercerilla
fonte
0

Eu daria uma boa olhada no Team Foundation System (TFS) da Microsoft. Entendo pelos seus comentários que você não é uma loja da Microsoft. No entanto, meu entendimento é que existe um plug-in Eclipse bastante robusto se você usar esse IDE para desenvolvimento.

Os mecanismos de mesclagem e ramificação funcionam tão bem quanto qualquer outro sistema de controle de origem (melhor que o svn, na minha experiência, e quase o mesmo que forçosamente), mas o que realmente brilha são os aspectos de rastreamento e gerenciamento de projetos do produto, e a automação integrada para compilações e implantações.

Se você estiver escrevendo um aplicativo baseado na Web, dê uma olhada na estrutura de teste de UI automatizada e na estrutura de teste de carga que você pode criar e configurar em pouco tempo. Um recurso elegante: simulação de navegadores móveis integrados ao teste de carga.

aceinthehole
fonte
Falando como alguém que usou o TFS do Eclipse. Não, é horrível. (posso entrar em detalhes), eu definitivamente não chamaria isso de robusto. TFS é grande, mas a extensão Eclipse é chocantemente ruim (Onde como AnhkSVN para Visual Studio é grande)
Lyndon Branco
Eu tenho uma experiência muito, muito ruim do TFS por várias razões, apesar de trabalhar no ambiente Microsoft e gostar das ferramentas .Net e Ms em geral. Nunca recomendarei TFS a ninguém.
AFract