Autor: Marcello HenriqueDescricao: Explicacao de como trabalhar com subversionFonte: http://code.google.com/p/svnbook-pt-br/ Legendas:$ => usuario normal do sistema[] => Tudo entre colchetes sao comandos opcionais Estrutura padrao de diretorios de projetos:- (nome do projeto ou produto)|- trunk (Tronco, diretorio base de desenvolvimento.)|- branches (ramos, para conter copias de trabalho)|- 1.0- 2.0|- tags (folhas ou releases pontuais, que contem as versoes congeladas.)|- v1.0.0- v1.0.1- v2.0.01. Criando um projeto (nosso projeto chama-se teste) 1.1 Fazer o checkout do projeto. (Baixar os codigo para sua maquina)$svn checkout https://svn.cercomp.ufg.br/svn/testeA teste/trunkA teste/trunk/teste.txtA teste/branchesA teste/tagsGerado copia de trabalho para revisao 3.1.2 Entrando no projeto$cd teste2. Criando ramos 2.1 Fazendo um copia do tronco para um ramo$svn copy trunk branches/1.0A branches/1.0 $svn commit -m "Criando copia do /trunk para branches/1.0"Adicionando branches/1.0Adicionando branches/1.0/teste.txt Commit da revisao 4. $svn updateNa revisao 4.3. Trabalhando em uma ramificacao 3.1 Entrando na ramificacao$cd branches/1.03.2 Fazendo as alteracoes que forem necessarias$echo -e "linha 2\n" >> teste.txt$cat teste.txtlinha 1linha 23.3 Fazendo o commit$svn commit -m "Add linha 2, branches/1.0/teste.txt"Enviando 1.0/teste.txtTransmitindo dados do arquivo .Commit da revisao 5.3.4 Faca os testes de acordo com sua realidade, se houver erros volte ao passo 3.2 e siga adiante, sorria! ;-D. 3.5 Faca o update$svn updateNa revisao 5.4. Fazendo a fusao (Lembrem do Dragon Ball Z) 4.1 Indo para raiz do projeto$cd /home/marcello/teste4.2 Verificando os logs$svn log------------------------------------------------------------------------r5 | marcello | 2008-07-16 23:22:29 -0300 (Qua, 16 Jul 2008) | 1 line Add linha 2, branches/1.0/teste.txt------------------------------------------------------------------------r4 | marcello | 2008-07-16 23:20:47 -0300 (Qua, 16 Jul 2008) | 1 line Criando copia do /trunk para branches/1.0------------------------------------------------------------------------r3 | marcello | 2008-07-16 23:17:56 -0300 (Qua, 16 Jul 2008) | 1 line Add linha 1 in trunk/teste.txt------------------------------------------------------------------------r2 | marcello | 2008-07-16 23:17:28 -0300 (Qua, 16 Jul 2008) | 1 line Add trunk/teste.txt------------------------------------------------------------------------r1 | marcello | 2008-07-16 23:15:54 -0300 (Qua, 16 Jul 2008) | 1 line Criando projeto.------------------------------------------------------------------------4.4 Fundindo a sua ramificacao testada para o tronco$svn merge https://svn.cercomp.ufg.br/svn/teste/trunk@3 https://svn.cercomp.ufg.br/svn/teste/branches/1.0@5 trunk/U trunk/teste.txt4.5 Commitando a fusao$svn commit -m "Fundindo branches/marcello/trunk para trunk"Enviando trunk/teste.txtTransmitindo dados do arquivo .Commit da revisao 6.4.6 Atualizando$svn updateNa revisao 6.4.7 Verificando os logs$svn log------------------------------------------------------------------------r6 | marcello | 2008-07-16 23:37:56 -0300 (Qua, 16 Jul 2008) | 1 line Fundindo branches/marcello/trunk para trunk------------------------------------------------------------------------r5 | marcello | 2008-07-16 23:22:29 -0300 (Qua, 16 Jul 2008) | 1 line Add linha 2, branches/1.0/teste.txt------------------------------------------------------------------------r4 | marcello | 2008-07-16 23:20:47 -0300 (Qua, 16 Jul 2008) | 1 line Criando copia do /trunk para branches/1.0------------------------------------------------------------------------r3 | marcello | 2008-07-16 23:17:56 -0300 (Qua, 16 Jul 2008) | 1 line Add linha 1 in trunk/teste.txt------------------------------------------------------------------------r2 | marcello | 2008-07-16 23:17:28 -0300 (Qua, 16 Jul 2008) | 1 line Add trunk/teste.txt------------------------------------------------------------------------r1 | marcello | 2008-07-16 23:15:54 -0300 (Qua, 16 Jul 2008) | 1 line Criando projeto.------------------------------------------------------------------------5. Casos de conflito 5.1 Verificando o arquivo de conflito no ramo$cat branches/1.0/teste.txtlinha 1linha 2 //mexendo na linha 2 do branches/1.0/teste.txt5.2 Commitando a ramificacao para gerar o conflito$svn commit -m "Alterando o arquivo branches/marcello/trunk/teste.txt para dar conflito"Enviando branches/marcello/trunk/teste.txtTransmitindo dados do arquivo .Commit da revisao 7. $svn updateNa revisao 7.5.3 Alterando o tronco na mesma linha para gerar o conflito$cat trunk/teste.txtlinha 1linha 2 //mexendo na mesma linha 2 do trunk/teste.txt5.4 Commitando o tronco para