Pergunta

Eu estou apenas começando a usar "Subversion", com "cliente Tortoise SVN" para um dos meu projeto opensource que está hospedado em "Google Code". Eu gostaria de obter algumas das melhores práticas em usá-lo. Estou seguindo a estrutura de pastas padrão (tronco, filial, tag). A seguir estão as perguntas

  1. Quando você vai fazer o check-in inicial? É só depois de terminar um conjunto de recursos ou a partir do primeiro dia de desenvolvimento?
  2. Para que o diretório do check-in inicial vai? É em "tronco" ou você check-in para "ramo" e de mesclagem para "trunk" uma vez que um recurso é completa. Neste caso, "tronco" estará vazia até que o recurso é feito.
  3. Quando as mudanças sempre são feitas, você vai check-in para "tronco" diretamente? Se não a sua cópia de trabalho será sempre usando o diretório "ramo", certo?

Qualquer ajuda seria apreciada.

Foi útil?

Solução

  1. Eu recomendo que você check-in dos arquivos antes de começar a fazer modificações pesadas para eles ( check-in mais cedo, check-in, muitas vezes ).

  2. Depende, algumas pessoas gostam de ter o tronco estável , o trabalho em ramos e em seguida, mesclar os ramos de volta ao tronco quando os recursos estão prontos, mas você também pode comprometer diretamente a o tronco.

  3. Ele também depende de como você vai trabalhar eo que você gostaria de ter no tronco (a última versão estável ou a versão mais recente borda do sangramento).

Outras dicas

Eu sugiro verificar no início e muitas vezes.

Existem muitas maneiras de fazer isso, mas o mais comum eu tenho trabalhado com sucesso com está trabalhando fora de um ramo de desenvolvimento e fundindo ao tronco quando você chegar a um ponto estável (versão menor releases, marcos, etc).

Se você não tiver, consulte a livro vermelho , é um grande recurso para obter informações SVN.

Ao criar um novo projeto a partir do zero Eu costumo fazê-lo em uma área do usuário no SVN como

/svn/users/me/project1

isso é porque a maioria dos projetos começam como jogar fora protótipos e eu raramente usam galhos para estes. Uma vez que um projeto se torna oficial e se aproxima de seu primeiro "protótipo" liberar vou migrá-lo ao longo de seu próprio repositório

/svn/project1/trunk

O uso de ramos exigir um pouco de trabalho extra por isso não usá-los a menos que forem necessárias. Que é quando várias pessoas estão trabalhando no mesmo projeto e as colisões são frequentemente ou eu estou trabalhando em um recurso que eu poderia decidir voltar e jogar fora. Se feito em um ramo que eu posso simplesmente optar por não merge e apenas excluí-lo.

Todas as respostas sugerem que você check-in antecipado, check-in, muitas vezes, eu não poderia concordar mais. Então, isso é tudo que eu vou dizer sobre isso. No entanto, eu li o resumo como: Que tipo de usos podem Subversion ajuste? Então aqui está uma resposta para isso.

Eu li sobre empresas que usam Subversion como seu repositório de aplicativos. Então, eles dizer ao servidor que deseja instalar versão X de Y. aplicativo Então, o servidor executa uma atualização no servidor SVN. E eles também são armazenados os arquivos de configuração em lá também. E quaisquer alterações feitas na configuração (através de uma interface web separada para consumidores finais) foram, então, comprometida com a configuração repo SVN. Isto é brilhante. 'É claro que esses caras estavam usando MS Power Shell no Win2k3, mas ainda assim a técnica pode ser aplicada em outros lugares.

check-in imediatamente, não cedo. Mesmo se você não tem nada mais para cometer do que um ad-hoc arquivo de texto contendo brainstorms e algum código pseudo terrivelmente enigmático, cometê-lo.

I (como muitos) encontrar projetos assim como seus de ao fazer algum tipo de busca do código, ou à procura de um programa que faz o que eu quero. Vou ler sua primeira página, em seguida, imediatamente navegar em seu tronco SVN para ver o que você está fazendo.

Se você tem o código zero no tronco, eu provavelmente vai esquecer tudo sobre você. Se você tem pelo menos algum arquivo explicando o seu desenho pretendido e algum código pseudo, eu provavelmente vai começar a enviar-lhe manchas que mostram as minhas ideias.

Um projeto com um repositório vazio grita "coceira que nunca será arranhado" .. então empurrão algo tão breve quanto possível.

Depois disso, cometem frequentemente. Eu gosto de fazer muitos compromissos pequenos, ordenados para que seja fácil rastrear regressões e back roll / corrigir revisões tóxicos.

  1. Check-in depois de ter criado a sua em branco projecto de base / estrutura solução. Em branco, porque neste estado é realmente compilable embora nenhum código de trabalho. O princípio é manter o projeto inteiro - pelo menos - em um estado compilable ao longo do desenvolvimento como a equipe de forma incremental e regularmente compromete pequena mudanças, de modo que a construção dificilmente é quebrado

  2. Não há nenhuma lei que exige o check-in inicial deve acontecer no tronco ou ramo. Você pode iniciar o Tronco com projeto vazio por isso é certo estável desde o início, em seguida, ramificar-se para realizar o desenvolvimento e mesclá-lo de volta para o tronco, uma vez concluída. Você também pode optar por fazer o check-no projeto vazio para um ramo e desenvolver o primeiro trabalho ou recurso de base antes de se fundir algo substancial para o tronco. De qualquer forma, com base no ponto # 1 do tronco deve ser estável e de alta qualidade . Apenas mesclar conteúdo de alta qualidade para o tronco.

  3. Novamente, não há mandato rigoroso sobre este tipo de práticas. Algumas equipes ramificar-se tudo , mesmo simples refactoring do nome da variável muda. Algumas equipes nem sequer sabem ramificação / fusão e desenvolver tudo em um único ramo (o tronco). Cada equipe tem seu próprio nível de equilíbrio sobre esta questão. Minha orientação pessoal é se não vão ser novos recursos ou grandes correções de bugs ou re-design, ramificar-lo para teste. Se é uma pequena correção, como erros de ortografia ou corda exibindo quatro casas decimais em vez de dois em sua página web, fixando a cópia do tronco deve ser suficiente. Claro, interpretações de "major" versus "menor" vão diferir modo que os fios desenvolvimento / equipe deve estabelecer seus padrões. De qualquer forma, deve haver testes unidade / integração que acompanham as mudanças para verificar o ramo ou o tronco estão trabalhando como previsto, conforme quanto possível livre de defeitos. A palavra-chave para se lembrar é sempre "de alta qualidade, código testado".

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