Pergunta

Atualmente estou trabalhando em uma equipe onde estamos "usando" um repositório Subversion. Eu digo "usando", porque, na realidade, todo mundo está apenas a edição de arquivos diretamente em um servidor através de ações de samba, enquanto que de vez em quando o nosso arquiteto faz um commit a partir desse servidor com as nossas alterações, que são então empurrados para servidores.

Então, basicamente, nós estamos perdendo a possibilidade de ter significativa comprometer mensagens de diferentes usuários, e ser capaz de cometer tão frequentemente como nós gostamos.

Eu tenho tentado para despertar algum interesse sobre sistemas distribuídos, e como o fluxo de trabalho que temos parece que poderia ser criado muito bem com algo como git (nos comprometendo em nossas máquinas locais e, em seguida, empurrando changesets a ele por rever), mas eu não sinto que eu tenho bastante experiência com git. A maioria da minha experiência DVCS tem sido com mercurial.

Todo mundo é muito bonito trabalhando em um ambiente Windows utilizando tortoisesvn, e essa é a maneira como eles são usados ??para interagir com o sistema, mas, ocasionalmente, usar PuTTY ao trabalho em um dos servidores Linux, e sabe como fazer uma linha de comando cometer.

O que é o caminho a percorrer com isso, eu vi um pouco do trabalho que está sendo feito para criar gateways entre SVN e alguns DVCS'es, alguém tem configurar e trabalhar em tal ambiente qualquer experiência?

Como sobre migrações em grande escala de SVN para um DVCS?

Foi útil?

Solução

Se sua equipe não pode entender como usar a subversão bem, eu não sei como você vai ser capaz de levá-los a compreender git. Especialmente desde que eles estão na mentalidade de "deixa todo o trabalho na mesma cópia de trabalho", eles vão ter muita dificuldade para entender um sistema de controle de versão distribuído.

Na minha experiência, para uso svn-git, você tem que saber como usar git E você tem que saber como usar svn. Eu recomendo ensinando-os a usar svn corretamente.

Outras dicas

Existe uma razão que você não quer apenas manter seu repositório SVN, e usá-lo da maneira que SVN se destina a ser usado?

Por que simplesmente não têm checkin todos e merge, uso ramos, etc? Por que mudar se você tiver uma configuração de repositório?

Parece que o problema que você está descrevendo principalmente tem a ver com os procedimentos adequados e protocolos para cometer código. recebendo um produto differnt não iria mudar a forma como as pessoas trabalham. você precisa educar-los primeiro. mostrar-lhes como fazer as coisas melhor.

Em uma nota diferente, eu não entendo como você usa tortoiceCVS para interface com SVN.

Para mim, soa como a escolha de um sistema de controle de versão não é a questão. O que você precisa fazer é convencer o arquiteto que ele precisa para chegar a algumas políticas sãs de usar um sistema de controle de revisão.

Seu sistema atual svn seria perfeitamente adequada; permitir que os usuários criar ramificações se você precisa manter tronco limpo. O arquiteto pode fundi-los em como ele precisa.

Agora, você poderia move o um DVCS e há boas razões para o fazer. Mas se a equipe não está acostumado a usar um cliente / servidor RCS então este pode constituir um desafio. E você poderia uso git ou hg localmente, mas estas são soluções para um uso rcs fundamentalmente quebrada. Obter todos para usar svn primeira seria a minha sugestão.

edição de arquivos em um compartilhamento de samba ?? Seriamente?!

git-svn é definitivamente a sua melhor aposta aqui. Você vai ser capaz de usar todo o controle versão local e revisão alterar os recursos do git, mas em última análise, pode empurrar-se "finais" check-ins para o seu repositório SVN existente.

Isto tem o incrível efeito colateral de ser capaz de deixar sua equipe molhar os pés com git um pouco de cada vez (tanto porque você pode experimentar antes de comprar e porque você ainda pode utilizar quaisquer processos de implantação / manutenção existentes que você desenvolveu usando SVN).

Há também uma boa crash-curso sobre sintaxe git para usuários svn que você pode usar para obter a sua equipe até a velocidade.

Seu problema não é em si SVN, mas não usá-lo corretamente.

Como Steve Yegge poderia dizer: TOOOOOLS

Como outros dizem, se você não pode levá-los a usar svn, eles não vão usar um vcs distribuídos.

Será que eles usam IDEs? Se assim for, encontrar plugins para o IDE que torná-lo fácil de usar svn. Assim, eles podem clique direito em um arquivo ou pasta no IDE e check-in. Se você torná-lo mais fácil de controle de origem uso em uma cópia local do que para acessar os arquivos centrais diretamente que você pode ter uma chance. Então você pode usar TortoiseSVN para tarefas mais complexas.

Alguns links para SVN plugins para IDEs populares para você começar:

aqui está uma lista de plugins IDE no site da subversão.

hg é bastante bom em trabalhar com o Subversion, também - veja https: // www. mercurial-scm.org/wiki/WorkingWithSubversion . A equipe de desenvolvimento do núcleo Python só decidiu mudar de Subversion para Mercurial (após uma longa discussão e período c onde git e bazar também foram considerados); em um desenvolvimento relacionado, de code.google.com serviço gratuito de hospedagem para projetos de código aberto adicionou suporte hg ao seu apoio de longa data para o SVN.

ambos git e bazar tem um bom suporte para o SVN. infact git-svn amadureceu um pouco ao longo dos últimos meses.

experimentar git, para um DVCS é muito bom, e aint tão difícil como você faz isso soar como.

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