Como crio uma ramificação no SVN?
A ramificação no Subversion é facilitada por uma facilidade de cópia muito leve e eficiente.
Ramificação e marcação são efetivamente iguais. Apenas copie uma pasta inteira no repositório para outro lugar no repositório usando o svn copy
comando
Basicamente, isso significa que é por convenção o que copiar uma pasta significa - seja um backup, etiqueta, ramificação 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 no seu repositório para suportar seu estilo.
Estilos mais comuns são para ter um monte de pastas na parte superior do seu repositório chamado tags
, branches
, trunk
, etc. - que lhe permite copiar todo o seu trunk
(ou sub-conjuntos) para os tags
e / ou branches
pastas. Se você tiver mais de um projeto, poderá replicar esse tipo de estrutura em cada projeto:
Pode demorar um pouco para se acostumar com o conceito - mas funciona - apenas verifique se você (e sua equipe) são claros quanto às convenções que você usará. Também é uma boa idéia ter uma boa convenção de nomenclatura - algo que indique por que a ramificação / tag foi feita e se ainda é apropriada - considere maneiras de arquivar ramificações obsoletas.
svn cp
usa cópias baratas, não copia os arquivos reais durante a ramificação. Veja svnbook.red-bean.com/en/1.1/ch04s02.htmlCrie uma nova ramificação usando o
svn copy
comando da seguinte maneira:fonte
svn switch svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH .
(se você deseja alternar a saída atual para uma nova ramificação) ousvn checkout svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH
(se você deseja ter uma nova ramificação em um diretório separado) para começar a trabalhar na ramificação recém-criada.--parents
opçãosvn copy
!-m
opção, ele diz comosvn: E155010: Path '/home/constantine/someDirectory/svn+ssh:https:/myhost.com/svn/dir1/dir2/trunk/dir3/dir4/dir5' does not exist
. Com-m
isso dizsvn: E205009: Local, non-commit operations do not take a log message or revision properties
. (Substituí os endereços, mas eles existem, exceto, ofc, o novo diretório da filial e todo o caminho + URL que o SVN, por algum motivo, fundiu no erro) .Se seu repo estiver disponível via https, use este comando para ramificar ...
fonte
Se você tiver algumas alterações locais no tronco, use
Rsync
para sincronizar as alteraçõesfonte
rsync
dessa maneira.svn cp
também copiará quaisquer alterações locais.Suponha que você queira criar uma ramificação a partir de um nome de tronco (como "TEST") e use:
fonte
Normalmente, você o copia para svn + ssh: //host.example.com/repos/project/branches/mybranch, para que você possa manter várias ramificações no repositório, mas sua sintaxe é válida.
Aqui estão alguns conselhos sobre como configurar o layout do seu repositório .
fonte
Dica para novos usuários de SVN; isso pode ajudar um pouco na obtenção rápida dos URLs corretos.
Execute
svn info
para exibir informações úteis sobre a filial com saída atual.A URL deve (se você executar o svn na pasta raiz) fornecer a URL da qual você precisa copiar.
Também para alternar para o ramo recém-criado, use o
svn switch
comando:fonte
Se você planeja mesclar sua filial, sugiro que você analise isso:
Svnmerge.py
Ouvi dizer que o Subversion 1.5 constrói mais o rastreamento de mesclagem, não tenho experiência com isso. Meu projeto está no 1.4.xe svnmerge.py salva a vida!
fonte
fonte
Abaixo estão as etapas para criar uma ramificação do tronco usando o TortoiseSVN na máquina Windows. Obviamente, isso precisa do cliente TortoiseSVN para ser instalado.
fonte