# Normas e Instruções de uso do svn

# **Branch da versão**

<span style="font-weight: 400;">O branch da versão é a cópia de trabalho do trunk utilizada para testes e liberação. Isso garante a estabilidade do trunk, onde o teste é realizado em uma versão paralela e sempre atualizada, enquanto o trunk não é alterado. Este fato contribui para a liberação mais rápida e eficiente de versões do sistema, além de facilitar a liberação de casos emergenciais.</span>

<span style="font-weight: 400;">Quando o setor de Qualidade solicitar a atualização e geração do caso para testes, o caso deve ser seguido os passos de “</span>[<span style="font-weight: 400;">Realizando um merge da pasta do caso no Branch</span>](https://docs.google.com/document/d/1RXfgViKFc8re22xDPkqu-sRCpPZzzkGApV-CUM4cgmM/edit#heading=h.fdsvui5fatfa)<span style="font-weight: 400;">”.</span>

<span style="font-weight: 400;">Após os testes na versão do caso, o caso estará disponível para entrar na versão do sistema, porém isso só será permitido quando a Qualidade solicitar. Para realização dessa etapa deverão ser seguidos os passos de </span>[<span style="font-weight: 400;">Incluindo um tratamento do branch da versão</span>](https://docs.google.com/document/d/1RXfgViKFc8re22xDPkqu-sRCpPZzzkGApV-CUM4cgmM/edit#heading=h.qo7ucmfh2c69)<span style="font-weight: 400;">.</span>

<span style="font-weight: 400;">Neste documento estão incluídas instruções e normas de trabalho de uso do svn para seguir a nova forma de trabalho.</span>

<span style="font-weight: 400;">**[![Controle-de-Versões---Supersoft-ERP.png](https://wiki.supersoft.com.br/uploads/images/gallery/2019-12/scaled-1680-/Controle-de-Vers%C3%B5es---Supersoft-ERP.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2019-12/Controle-de-Vers%C3%B5es---Supersoft-ERP.png)**</span>

# **Iniciando um novo caso**

1. <span style="font-weight: 400;">Clicar com o botão direito na pasta https://svn.supersoft.com.br/svn/desenvolvimento/trunk/Codigo Base Skin</span>
2. <span style="font-weight: 400;">Selecionar a opção "Copy To".</span>
3. <span style="font-weight: 400;">https://svn.supersoft.com.br/svn/desenvolvimento/branches/Programador/Caso\_0000000</span>
    - <span style="font-weight: 400;">(substituir "Programador" pelo nome da pasta</span> referente<span style="font-weight: 400;"> ao programador)</span>
    - (substituir "0000000" pelo número do caso)
4. <span style="font-weight: 400;">Baixar a pasta referente ao caso em C:.</span>
5. Renomear<span style="font-weight: 400;"> a pasta para o nome "Código fonte".</span>

# **Baixando um caso do branch para o computador**

1. <span style="font-weight: 400;">Clicar com o botão direito em C: e selecionar a opção SVN Checkout…</span>
2. <span style="font-weight: 400;">Em “Url”, navegar até a pasta do caso e clicar em Ok. </span>
    - <span style="font-weight: 400;">Exemplo: “https://svn.supersoft.com.br/svn/desenvolvimento/branches/Tales/Caso\_0038751”</span>
3. <span style="font-weight: 400;">Em “Checkout directory” utilizar a “C:\\Caso 0038751” ou diretamente C:\\Codigo Fonte (caso não tenha outra pasta já criada com este nome).</span>

<span style="font-weight: 400;">Ou</span>

1. <span style="font-weight: 400;">Clicar com o botão direito em C: e selecionar a opção Tortoise SVN -&gt; Repo Browser</span>
2. <span style="font-weight: 400;">Navegar até a pasta do caso. </span>
    - Exemplo: “https://svn.supersoft.com.br/svn/desenvolvimento/branches/Tales/Caso\_0038751”
3. <span style="font-weight: 400;">Clicar com o botão direito e selecionar a opção CheckOut.</span>
4. <span style="font-weight: 400;">Em “Checkout directory” utilizar a “C:\\Caso 0038751” ou diretamente C:\\Codigo Fonte (caso não tenha outra pasta já criada com este nome).</span>

# **Realizando um merge da pasta do caso no Branch**

1. <span style="font-weight: 400;">Commite todas as alterações necessárias no branch.</span>
2. <span style="font-weight: 400;">Caso tenha alguma alteração não necessária realize o reverte ou exclua a unit e baixe novamente.</span>
3. <span style="font-weight: 400;">Clique com o botão direito na pasta -&gt; TortoiseSVN -&gt; Merge</span>
4. <span style="font-weight: 400;">Utilize o diretório abaixo para realizar o merge</span>
    - https://svn.supersoft.com.br/svn/desenvolvimento/trunk/CodigoBaseSkin
5. <span style="font-weight: 400;">Em </span>*<span style="font-weight: 400;">merge depth</span>*<span style="font-weight: 400;"> (profundidade da fusão), selecionar a opção </span>*<span style="font-weight: 400;">fully recursive</span>*<span style="font-weight: 400;"> (totalmente recursivo).</span>
6. <span style="font-weight: 400;">Realizar um Test merge para verificar possíveis conflitos.</span>
7. <span style="font-weight: 400;">Em caso de conflito em alguma unit, verificar e tratar o conflito.</span>
8. Commitar o *merge* <span style="font-weight: 400;">(o merge não deve ser commitado junto com alterações relativas ao caso).</span>

# **Incluindo um tratamento no Branch da Versão**

1. <span style="font-weight: 400;">Baixar a pasta a seguir para o computador.</span>
    - https://svn.supersoft.com.br/svn/desenvolvimento/branches/Versoes/ERP/001-Caso-0041704
2. <span style="font-weight: 400;">(substituir o nome da pasta para o nome da pasta da versão atual de trabalho).</span>
3. <span style="font-weight: 400;">Incluir as alterações do caso.</span>
4. <span style="font-weight: 400;">Realizar o commit na pasta da versão.</span>

# **Atualizando o Branch da versão**

1. <span style="font-weight: 400;">Clique com o botão direito na pasta -&gt; TortoiseSVN -&gt; SVN Update</span>
2. <span style="font-weight: 400;">Clique com o botão direito na pasta -&gt; TortoiseSVN -&gt; Merge</span>
3. <span style="font-weight: 400;">Utilize o diretório abaixo para realizar o merge</span>
    - https://svn.supersoft.com.br/svn/desenvolvimento/trunk/CodigoBaseSkin
4. <span style="font-weight: 400;">Em </span>*<span style="font-weight: 400;">merge depth</span>*<span style="font-weight: 400;"> (profundidade da fusão), selecionar a opção </span>*<span style="font-weight: 400;">fully recursive</span>*<span style="font-weight: 400;"> (totalmente recursivo).</span>
5. <span style="font-weight: 400;">Em caso de conflito em alguma unit, verificar e tratar o conflito.</span>
6. Commitar o *merge*<span style="font-weight: 400;">.</span>

# **Incluindo Branch da Versão no Trunk**

1. <span style="font-weight: 400;">Realizar o merge do branch da versão.</span>
2. <span style="font-weight: 400;">Baixar a pasta a seguir para o computador.</span>
    - https://svn.supersoft.com.br/svn/desenvolvimento/trunk/CodigoBaseSkin
3. <span style="font-weight: 400;"><span style="font-weight: 400;">Incluir as alterações do branch da versão para o Trunk</span></span>, para isso:
4. <span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;">Botão direito na pasta do Codigo Fonte do Trunk → TortoiseSVN → Merge</span></span></span>
5. <span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;">Usar a opção “Merge two different tress”</span></span></span>


[ ![Screenshot_4.png](https://wiki.supersoft.com.br/uploads/images/gallery/2020-11/scaled-1680-/screenshot-4.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2020-11/screenshot-4.png)

1. <span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;">Em “From” colocar o caminho do Código Fonte Trunk.</span></span></span>
2. <span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;">Em “To” colocar o caminho do Código Fonte do Branch da versão</span></span></span><span style="font-weight: 400;">[.![Screenshot_5.png](https://wiki.supersoft.com.br/uploads/images/gallery/2020-11/scaled-1680-/screenshot-5.png) ](https://wiki.supersoft.com.br/uploads/images/gallery/2020-11/screenshot-5.png)</span>
3. <span style="font-family: inherit;"><span style="font-size: small;"><span style="color: #444444;">Next → Fully Recursive → (Teste Merge/Merge)</span></span></span>
4. <span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;">Clique com o botão direito na pasta -&gt; </span></span></span><span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;">Commit</span></span></span>
5. <span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;">N</span></span></span><span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;">as Units com Status “modified(property change only)” dar um Revert</span></span></span>

[ ![Screenshot_6.png](https://wiki.supersoft.com.br/uploads/images/gallery/2020-11/scaled-1680-/screenshot-6.png)](https://wiki.supersoft.com.br/uploads/images/gallery/2020-11/screenshot-6.png)

<span style="color: #444444;"><span style="font-family: inherit;"><span style="font-size: small;"> 6. As Units que restaram são tratamentos do Branch em questão, mas vale fazer algum tipo de validação.</span></span></span>

<span style="font-weight: 400;"> 7. Realizar o commit no Trunk.</span>