Eu preciso trabalhar com 4-5 programadores em um aplicativo PHP bastante médio usando o codeigniter. Estamos em cinco locais diferentes em uma cidade, e nem todos os programadores são muito bem educados e estou assumindo que a maioria deles nunca usou nenhum sistema de controle de versão.
Você pode recomendar uma plataforma muito fácil de entrar para colaborar em um projeto como este? Estou falando de algo que é apenas um pouco mais sofisticado do que uma pasta compartilhada da caixa de depósito.
Respostas:
Você já sabe a resposta
O controle de versão foi projetado para resolver esse problema exato . Se seus desenvolvedores não estiverem dispostos a aprender a usar essa prática padrão de desenvolvimento, talvez seja necessário reconsiderar seus desenvolvedores. Que tipo de software eles produzirão se mostrarem aversão às práticas padrão aceitas, bem como aversão a aprender coisas novas?
Eu sugiro que eles leiam o Pro Git e configurem um repositório git privado para sua equipe.
fonte
... FTP
Ok, foi assim que comecei a colaborar, conectando o Notepad ++ ao FTP, fazendo backup de porcaria a cada 10 minutos em pastas renomeadas realmente sugadas, se você fizer isso, pelo bem do seu projeto, pelo menos use o controle de versão no servidor.
Um IDE online
O Cloud9 é muito bom e possui edição simultânea; no entanto, você terá mais de um espaço de trabalho privado para trabalhar com sua equipe, mas vale a pena.
... tente Mercurial
Se você não achar o Git acessível o suficiente por seus colegas de trabalho, tente o Mercurial com o TortoiseHG, que é um cliente GUI do Mercurial. Levará dois minutos para configurar e menos para começar a usá-lo.
Faça com que eles usem a GUI, eles apenas precisam aprender a usar 4 botões (puxar, atualizar, confirmar, pressionar) e aprender 2 ou 3 conceitos para salvar e compartilhar seu trabalho.
Faça com que eles se registrem no bitbucket . Crie um repositório para o seu projeto e peça que eles o bifurcem para que eles possam trabalhar em seu próprio espelho do repositório e dessa forma eles não precisam lidar com a mesclagem. Você faz a integração e apenas pede que eles emitam solicitações pull de seu fork do Bitbucket, uma vez que foram enviadas. Faça com que eles puxem apenas do seu repositório (aquele de onde eles bifurcaram).
Aprenda você mesmo a Mercurial, para que possa resolver todos os problemas relacionados. Este é um bom começo: http://hginit.com/
Tente ambos
Você pode usar o Mercurial do Cloud9, como isso é legal?
Pare de assumir
Se você procura usar as ferramentas corretas, já está em uma posição de liderança. Não assuma que eles não são educados e converse com eles sobre como as coisas são feitas no mundo real.
Seja entusiasmado com isso e não condescendente.
Realmente não fica mais fácil do que isso se você quiser fazer as coisas corretamente. Se eles expressamente não quiserem usar o controle de versão, você poderá ter outro tipo de problema mais sério.
fonte
Eu recomendo seus desenvolvedores para http://try.github.com
Mas se nenhum controle de versão for possível, você pode optar por algo adequado para o iniciante / júnior que é básico (e arcaico).
A configuração da pasta da web do servidor de desenvolvimento também pode ser svn checkout (ou git) e você pode configurar o crontab para confirmar automaticamente as revisões de vez em quando automaticamente ou você pode simplesmente instalar um backup ou sincronizar a pasta para outro local de backup para quando eles substituem os arquivos uns dos outros (como acontecerá) e você precisa dar a Bob as alterações que ele perdeu. Eventualmente, depois de trabalhar com o sistema por alguns meses, eles implorarão que você conceda a eles acesso svn / git.
fonte
Você precisa corrigir essa suposição e descobrir se eles possuem ou não algum conhecimento ou experiência em qualquer sistema de controle de versão. Não adianta assumir quando eles podem ter conhecimento.
Como outras respostas disseram, é para isso que serve o controle de versão. Git é provavelmente o melhor caminho a seguir, e Learn Git é realmente um bom ponto de partida
fonte
Bem, não há saída do que usar o controle de versão .
O Dropbox tem um tipo de controle de versão , mas acredito que se duas pessoas salvarem um arquivo, a versão mais recente substituirá a versão mais antiga, o que não é desejável para o controle de versão durante o desenvolvimento do software.
O Svn é um sistema de controle de versão fácil de aprender (pelo menos mais fácil que o git), e você pode encontrar vários repositórios públicos hospedados online, mas eu não o recomendaria para equipes distribuídas geograficamente.
Portanto, o caminho a seguir para as equipes distribuídas é o git. Se não for um problema ter sua fonte pública OU comprando um plano privado , crie um repositório no github , caso contrário, configure um repositório git local.
Pode ser que você encontre uma GUI para o git, o que pode facilitar para esses desenvolvedores começarem a entender um sistema de controle de versão conceitualmente. Para Windows, seu TortoiseGIT . Como não usei nenhum cliente git gui para Linux ou MAC, não recomendo um aqui.
fonte
Você está no caminho certo
O
version controlling
é o caminho a seguir! Serve bem para colaborar com o compartilhamento de código e ajudar na integração. Além disso, check-in (s) freqüente (s) é uma disciplina muito importante que toda equipe precisa praticar.No entanto, escolher o controle de versão correto para o seu projeto é muito importante.
Há um post recente e respostas agradáveis para ajudá-lo a decidir: Qual é um bom exemplo de brinquedo para ensinar controle de versão?
fonte