Pergunta

Eu sempre usei a Subversão ou CVS para controle de versão, que usam uma 'série' metodologia.Um dos meus amigos fala sobre Necessariamente, e quão grande ele é, com suas listas de alterações e check-out metodologia.

Enquanto eu tenho certeza que muitos dos que se resume a experiência e preferência pessoal, eu queria saber se qualquer pesquisa tinha sido feita para o qual o método de controle de versão é mais eficiente para trabalhar?

EDITAR: Para esclarecer, eu sei tanto, Necessariamente, & SVN permitir fecho & integração, mas SVN 'incentiva' liberal editar série e de método, considerando que, tal como eu o entendo, Necessariamente, incentiva o check-out-checkin método.

Foi útil?

Solução

Honestamente, eu acho que depende da disciplina dos desenvolvedores.

Eu uso o Subversion para o meu trabalho e eu usei-o em alguns trabalhos.O que eu gosto sobre o Subversion é que eu não tenho para caçar alguém e perguntar-lhes porque eles estão trabalhando em algo e se seria OK para me fazer algum trabalho.O problema vem quando alguém decide começar a trabalhar em algo e não verificá-lo por um tempo;isto pode fazer a fusão difícil como várias alterações são feitas entre o seu check-out e check-in.

Eu uso, Necessariamente, de agora e por algum motivo eu gosto de SVN melhor.Forçosamente, definitivamente, me dá uma melhor indicação de que haverá conflitos de mesclagem, e ainda tem built-in ferramentas para me ajudar a resolver a mescla.Ele tem o mesmo problema que se alguém faz de toneladas de mudanças durante um longo período de tempo, a série vai ser mais difícil.

Basicamente, ambos os modelos requerem que você check-in de alterações, muitas vezes.Se você fazer vários check-ins e, em seguida, reduzir a probabilidade de que você vai exigir uma série.Eu sou culpado de manter as coisas em check-out para demasiado longo caminho muitas vezes.Pessoalmente, sinto-me como o SVN é preço compensa qualquer coisa que falta comparado com Forçosamente;Ainda não encontrei uma diferença entre eles.

Outras dicas

Série é mais eficiente.Pela simples razão de que as alterações no mesmo arquivo simultaneamente tende a ser comum, e a intercalação permite que você recuperar isso.Em contraste, o único checkout impede um pouco de trabalho extra, mas fá-lo à custa de enormes ineficiências na programação.Normalmente, demora um curto período de tempo para mesclar duas alterações no mesmo arquivo (por exemplo,minutos), considerando que é preciso uma quantidade significativa de tempo para efectuar alterações a um ficheiro (por exemplo,muitas horas ou dias) para que impedindo o acesso para a edição de um arquivo é uma enorme ineficiência.

Observe que, Necessariamente, não força o check-out metodologia, permite simultâneas checkouts (equivalente a série).

Em nossa última avaliação, Necessariamente, de bater o subversion no seu suporte para a ramificação e a integração de alterações entre os ramos.O trabalho estava em andamento no Subversion para remediar esta curta-vinda, mas não fomos de volta para o check-out.

Em Forçosamente, quando a ramificação de um arquivo, Necessariamente, de se "lembra" de onde veio e quais as revisões foram "integrados" em duas versões.Ele também tem algumas otimizações de armazenamento em repositório para que um ramo de cópia, realmente, não se materializar até que alguém faz uma alteração no ramo e, em seguida, (se eu entendi corretamente), ele usa comparações contra a base de cópia, assim como revisões dentro do ramo.

Necessariamente, de acompanhamento das relações entre os poderes é um grande trunfo.Se o Subversion tem implementado isso agora, por favor, me dar um heads-up.

Talvez você quis dizer de Fonte Segura, ao invés de incluir, Necessariamente?Necessariamente apoia fusão, e na verdade tiveram um melhor suporte da impressão que o SVN até SVN 1.5 onde nomeado mescla foram adicionados (bem como alterar listas, o que, Necessariamente, sempre teve e eu mis muito movendo-se para uma loja que usado SVN, mas não vamos atualização até 1,5 foi um pouco mais de tempo testados).

Vale a pena notar que o SVN e, Necessariamente, de ambos permitem que você faça um bloqueado checkout, então você pode fazer o "não integrado" modelo, se você quiser, mas, para além, talvez, de gestão de binários com controle de versão, não vejo muita utilidade para isso.

De qualquer maneira, a resposta simples para sua pergunta é "mesclar modelos são muito melhores do qualquer momento, mais do que um desenvolvedor está envolvido."

Se eu entendi corretamente, Forçosamente faz com que todos os arquivos que não são verificados somente leitura.Este comportamento é semelhante ao Microsoft TFS e VSS.O Subversion, por outro lado, não define os atributos só de leitura.IMO, o Subversion método é mais fácil porque você não tem que se preocupar com o controle de origem do cliente, a fim de modificar arquivos -- você vá em frente e modificar com irresponsabilidade e, em seguida, comparar o que foi alterado no disco com o servidor quando você estiver pronto para o check-in.

Quando todos os arquivos são somente leitura, eu encontro-me constantemente alterar um arquivo, a tentar salvar, o descobrir é só de leitura e, em seguida, ter de saltar sobre o controle de origem do cliente para verificar.Não é tão ruim se o controle de origem do cliente é integrada em seu editor, mas se você estiver armazenando coisas que não são de código fonte sob controle de versão esta muitas vezes não é uma opção.

Se eu entendi corretamente, Forçosamente faz com que todos os arquivos que não são verificados somente leitura.

Este é apenas o padrão de comportamento.Se necessário, freqüentemente mudando de arquivos pode ser definido para ser de leitura-escrita, em vez disso.Veja a lista completa de arquivo modificadores aqui.

Também, para o meu ambiente, eu estou usando o Eclipse com o Necessariamente, De Plugin.Com este plugin, a edição de um arquivo imediatamente abre o arquivo para edição.

Não tenho certeza sobre a investigação, mas aqui é um ponto de dados para você:
Minha equipe escolheu PVCS (checkout), principalmente por causa do conforto.Dúvidas sobre a série e a falta de consciência de ferramentas como o Subversion contribuiu decisivamente para isso.

Eu não tenho certeza se entendi a pergunta aqui que eu não estou ciente de qualquer um moderno sistema de controle de origem (diferente do Visual SourceSafe) que não suportam totalmente a fusão.

Eu definitivamente prefiro a série de metodologia.

Eu usei o Visual Sourcesafe (espero que nunca), CVS, subversion e bzr.Visual sourcesafe impõe o "checkout antes de editar" metodologia e pode ser doloroso.O CVS e o subversion não tenha sido grande em aceitar mescla historicamente, apesar de eu ouvir o subversion 1.5, tem melhorado isso.

Eu recomendo usar um de VCS que foi projetado com frequente fusão em mente desde o início.bzr é o que eu usei que faz isso, mas os outros grandes distribuído vcs sistemas (git e mercurial), também o fazem.

Mas, em última análise, eu não sei de qualquer investigação sobre esta área específica.Em geral, há muito pouca pesquisa em eficiência de programação, Peopleware sendo uma das notáveis exceções.

Eu realmente não obter a pergunta, para ser honesto.Mas eu posso garantir, Necessariamente, a eficiência e a capacidade de lidar com mais do que uma pessoa a modificação de um arquivo asnychronously, e a manipulação da fusão de edições.

Em Forçosamente, se alguém dá em um arquivo que você também modificar e, em seguida, quando você próximo de sincronização a partir do servidor (por exemplo,obter os mais recentes arquivos) você é informado de que existem algumas mudanças que precisam resolver.A escolha sobre quando fazer isso é com você.Quando você "resolver" um arquivo, ele faz a série em sua versão local - e as ferramentas que são bons para isso.

Ter uma escolha quando você é importante, você pode sincronizar-se de modo que você pode obter algumas atualizações não relacionadas diretamente a sua tarefa (correção de bugs, por exemplo), e não nesta fase em que quer lidar com o trabalho fora, se alguém alterar para o mesmo arquivos que você está trabalhando em vão afetar você.Assim que você realizar, fazer a compilação e teste, em seguida, depois que você resolver os arquivos no seu próprio tempo.

O outro caso é que você enviar as suas edições sem ter primeiro sincronizadas com o arquivo atualizado.Neste caso, Necessariamente impede que a submissão e sinalizadores de arquivos para ser resolvido.Qualquer sensata desenvolvedor, nesta fase, vai efectuar a impressão em série e, em seguida, recompilar e/ou teste, antes de enviar a mudar de volta para Forçosamente.

O que eu gosto sobre isso é que ele tenta realmente difícil para você parar de enviar as alterações de volta para o servidor central que não tenham sido explicitamente processados, e, portanto, minimiza as chances de quebrar a construir.O processo de resolução é fácil e muito baixo overhead, para que não haja um problema de eficiência em tudo.

Necessariamente, é muito explícito em dar-lhe a escolha e o controle sobre como as alterações são propagadas, e faz isso com excelentes ferramentas para gerenciar mesclagem de edições.Pessoalmente eu gosto de escolha e o poder de exercer escolhas facilmente.Sem dúvida, o Subversion tem suas próprias alternativas também.

Eu acho que ele provavelmente se resume ao que você está acostumado - eu não acho que há uma significativa ou mensuráveis problema de eficiência.

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