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?


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.


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

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.


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.


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.


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.


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.


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.