Pergunta

Como faço para criar uma ramificação no SVN?

Foi útil?

Solução

A ramificação no Subversion é facilitada por um recurso de cópia muito leve e eficiente.

Ramificação e marcação são efetivamente iguais.Basta copiar uma pasta inteira do repositório para algum outro lugar do repositório usando o svn copy comando.

Basicamente, isso significa que é por convenção o que significa copiar uma pasta - seja um backup, tag, branch ou qualquer outra coisa.Dependendo de como você deseja pensar sobre as coisas (normalmente dependendo de qual ferramenta SCM você usou no passado), você precisa configurar uma estrutura de pastas em seu repositório para suportar seu estilo.

Estilos comuns são ter um monte de pastas no topo do seu repositório chamadas tags, branches, trunk, etc.- que permite copiar todo o seu trunk (ou subconjuntos) no tags e/ou branches pastas.Se você tiver mais de um projeto, talvez queira replicar esse tipo de estrutura em cada projeto:

Pode demorar um pouco para se acostumar com o conceito - mas funciona - apenas certifique-se de que você (e sua equipe) tenham clareza sobre as convenções que usarão.Também é uma boa idéia ter uma boa convenção de nomenclatura - algo que diga por que o branch/tag foi criado e se ainda é apropriado - considere maneiras de arquivar os ramos que estão obsoletos.

Outras dicas

Crie uma nova ramificação usando o svn copy comando da seguinte forma:

$ svn copy svn+ssh://host.example.com/repos/project/trunk \
           svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
      -m "Creating a branch of project"

Se seu repositório estiver disponível via https, você pode usar este comando para ramificar ...

svn copy https://host.example.com/repos/project/trunk \
       https://host.example.com/repos/project/branches/branch-name \
  -m "Creating a branch of project"
svn cp /trunk/ /branch/NEW_Branch

Se você tiver algumas alterações locais no tronco, use Rsync para sincronizar alterações

rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch

Normalmente você o copiaria para svn+ssh://host.example.com/repos/project/branches/mybranch para poder manter vários ramos no repositório, mas sua sintaxe é válida.

Aqui estão alguns conselhos sobre como configurar o layout do seu repositório.

Suponha que você queira criar uma filial a partir de um nome de porta -malas (como "teste") e use:

svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST

Se você planeja fundir sua filial, sugiro que você dê uma olhada nisso:

Svnmerge.py

Ouvi dizer que o Subversion 1.5 cria mais rastreamento de mesclagem, não tenho experiência com isso.Meu projeto está em 1.4.xe svnmerge.py salva vidas!

Dica importante para novos usuários de SVN;isso pode ajudar um pouco a obter os URLs corretos rapidamente.

Correr svn info para exibir informações úteis sobre a ramificação em check-out atual.

A URL deve (se você executar o svn na pasta raiz) fornecer a URL da qual você precisa copiar.

Além disso, para mudar para o branch recém-criado, use o svn switch comando:

svn switch http://my.repo.url/myrepo/branches/newBranchName
  • Crie uma nova pasta fora do seu projeto atual.Você pode dar qualquer nome.(Exemplo:Você tem um checkout para um projeto chamado "Personalização".E tem muitos projetos, como "Projeto1", "Projeto2"....E você deseja criar um branch de "Projeto1".Então primeiro abra a "Personalização", clique com o botão direito e crie uma nova pasta e dê um nome a ela, "Project1Branch").
  • Clique com o botão direito em "Myproject1"....TortoiseSVN -> Branch/Tag.
  • Escolha a cópia de trabalho.
  • Abra o navegador.... Logo à direita do paralelo em "Para URL".
  • Selecione personalização..... clique com o botão direito e depois em Adicionar pasta.e vá até a pasta que você criou.Aqui está "Projeto1Branch".Agora clique no botão OK para adicionar.
  • Dê uma olhada neste novo banco.
  • Novamente vá para o seu projeto qual branch você deseja criar.Clique com o botão direito em TorotoiseSVN -> ramificação/tag.Em seguida, selecione a cópia de trabalho.E você pode fornecer o URL como o nome da sua filial.como {seu endereço IP/svn/AAAA/Customization/Project1Branch}.E você pode definir o nome no URL para criar a pasta apenas com esse nome.Como {Seu endereço IP/svn/AAAA/Customization/Project1Branch/MyProject1Branch}.
  • Pressione o botão OK.Agora você pode ver os logs em ...sua cópia de trabalho será armazenada em sua filial.
  • Agora você pode dar uma olhada... e aproveitar seu trabalho.:)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top