Changes between Initial Version and Version 1 of WF/utilizandobranches


Ignore:
Timestamp:
05/11/10 17:51:09 (14 years ago)
Author:
viani
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/utilizandobranches

    v1 v1  
     1= Como Trabalhar com os Branches do Sandbox Utilizando Comandos SVN = 
     2 
     3Como descrito anteriormente, tickets que exijam grandes modificações devem ser implementados em branches separados, ao invés de utilizar diretamente o trunk. 
     4 
     5O primeiro passo é criar um novo branch: 
     6{{{ 
     7  svn copy https://svn.expressolivre.org/sandbox/workflow/trunk \ 
     8           https://svn.expressolivre.org/sandbox/workflow/branches/{nnnn} \ 
     9           -m "Ticket #{nnnn} - Criando novo branch para implementação do ticket." 
     10}}} 
     11O comando '''svn copy''' é utilizado para a criação de branches. Na forma que é mostrado acima, este comando não precisa ser executado a partir de um repositório svn, todo procedimento é realizado no servidor. O primeiro parâmetro é o branch de origem, de onde serão copiados os dados. Os branches criados para os tickets da versão experimental do Workflow devem sempre utilizar o repositório /sandbox/workflow/trunk como origem. O segundo parâmetro especifica o endereço do novo branch. O novo branch deve seguir o padrão /sandbox/workflow/branches/{nnnn}, onde {nnnn} corresponde ao número do ticket. Já o terceiro parâmetro, especificado pela opção ''-m'', especifica a mensagem do commit que criará o novo branch. É importante notar que o commit inicial de criação do branch, será visível apenas ao novo branch, mas não através do branch de origem (trunk). Desta forma, a partir do repositório de origem, não é possível determinar o momento exato de criação dos branches. 
     12 
     13Após criado, o branch pode ser acessado de duas formas: 
     14{{{ 
     15  svn checkout https://svn.expressolivre.org/sandbox/workflow/branches/{nnnn} 
     16 
     17  para criar uma nova cópia local do repositório já em seu novo branch 
     18}}} 
     19ou: 
     20{{{ 
     21  svn switch https://svn.expressolivre.org/sandbox/workflow/branches/{nnnn} 
     22 
     23  para mudar o branch de sua cópia local. 
     24}}} 
     25Se estiver trabalhando com mais de um branch e utilizar o svn switch para alternar entre eles, sempre verifique a qual branch sua cópia local está ligada, antes de alterar arquivos, ou realizar commits. Isso evitará atualizações indesejadas que depois ficam difíceis de reverter. Utilizar o comando '''svn info''' para mostrar a url do repositório. 
     26 
     27== Outros Comandos SVN Úteis == 
     28 
     29|| svn up || Atualiza a sua cópia local || 
     30|| svn st || Mostra os arquivos da sua cópia local pendentes de atualização no repositório || 
     31|| svn log || Lista as mensagens de commits já realizados || 
     32|| svn info || Mostra a url do repositório e a revisão em que está a sua cópia local || 
     33|| svn revert {arquivo} || Atualiza um arquivo local com a última revisão no repositório || 
     34|| svn ci -m "{mensagem}" || Realiza a transferência dos arquivos alterados na cópia local, para o repositório || 
     35 
     36== Como Realizar o Merge de um Branch no Trunk == 
     37 
     38Depois que o branch estiver concluído e testado, chegou a hora de transferir as atualizações para o ramo trunk do sandbox. Primeiro obtenha uma cópia local do ramo trunk, com o comando: 
     39{{{ 
     40  svn co https://svn.expressolivre.org/sandbox/workflow/trunk 
     41}}} 
     42Depois entre no diretório da sua cópia local do trunk e execute o comando: 
     43{{{ 
     44  svn merge --dry-run -r{n1}:{n2} https://svn.expressolivre.org/sandbox/workflow/branches/{nnnn} 
     45 
     46  onde {n1} corresponde a revisão inicial do branch e 
     47  {n2} corresponde a revisão final do branch  
     48}}} 
     49A opção --dry-run irá rodar o merge em modo simulação, sem que alterações sejam realizadas na sua cópia local do trunk. Será apresentada uma lista dos arquivos a serem atualizados. Observe o indicador no início de cada linha, ele informa o tipo de atualização que o arquivo sofrerá, podendo ser: 
     50 
     51 U - Arquivo da cópia local será atualizado 
     52 
     53 D - Arquivo da cópia local será excluído 
     54 
     55 A - Arquivo será incluído na cópia local 
     56 
     57 G - Arquivo da cópia local possui alterações conflitantes com o branch, mas o Svn fará o merge 
     58 
     59 C - Arquivo da cópia local possui alterações conflitantes com o branch, e será necessário intervenção manual para resolver o conflito. 
     60 
     61Se quiser prosseguir com o merge, execute o comando novamente sem a opção --dry-run. Caso existam conflitos, o svn solicitará que sejam resolvidos neste momento. 
     62 
     63Após o merge verifique se a sua cópia local continua integra, e proceda o commit no repositório: 
     64{{{ 
     65 svn ci -m "Ticket #{nnnn} - Merged {n1}:{n2} /sandbox/workflow/branches/{nnnn} em /sandbox/workflow/trunk"  
     66}}} 
     67 
     68