respectivos arquivos numa pasta destino indicada, no nosso caso trunk/.As distribuicoes Linux ja costumam trazer esta ferramenta por padrao. Usuarios do Windows podem instala-la a partir do site GnuWin32. Provavelmente sera necessario adicionar os binarios do comando patch na variavel de ambiente PATH. Em geral os binarios sao instalados em C:\Arquivos de programas\GnuWin32\bin.Nota: O prompt de comando do Windows nao e capaz de identificar automaticamente alteracoes em variaveis de ambiente, por isso, depois de alterar uma variavel de ambiente lembre-se de fechar e abrir novamente o prompt de comando, ou simplesmente digite cmd.Importante: Para uma aplicacao de patches sem maiores problemas certifique-se de que nao existam alteracoes pendentes na sua pasta trunk, caso existam, submeta-as ao repositorio, e lembre-se de atualizar sua pasta trunk com o comando svn update antes de aplicar o patch. Estes dois passos evitam mensagens de erros durante a submissao das alteracoes ao repositorio.O comando patch le e aplica o arquivo patch com o seguinte comando:$ patch -d trunk < patch.txtNote que agora consultando o estado da pasta de trabalho serao listados os dois arquivos alterados em trunk.$ svn status? patch.txtM trunk/Main.javaM trunk/Janela.javaConfira o conteudo dos arquivos para ver como o comando patch aplicou as altercoes lidas do patch.txt. Note que aquelas alteracoes que fizemos diretamente na pasta trunk foram mantidas.Submeta as alteracoes ao repositorio.$ svn commit -m"Aplicando as alteracoes de branches/correcao/ entre as revisoes r3:r4 para o trunk/"$ svn updateComo visto, a aplicacao de patch e um processo bastante simples e pratica. No entanto tente manter as alteracoes no branches o menor tempo possivel. Quanto mais rapido as alteracoes no branch forem aplicadas ao trunk menor sera a chance de ocorrem conflitos.Nota: Conflitos neste contexto sao aquelas situacoes onde a mesma linha de um arquivo foi alterada por dois usuarios diferentes. Conflitos levam o comando commit a falhar durante a submissao. Nestes casos cabe ao usuario que recebeu a falha corrigir o conflito, em geral consultando os demais usuarios envolvidos no conflito, e submeter novamente as alteracoes.Svn merge, mais simples que o patchApenas seguindo o procedimento de patch visto ate agora ja poderiamos trabalhar com pastas branches a vontade com a garantia de conseguirmos facilmente devolver as alteracoes para o trunk, no entanto, o comando svn merge simplifica ainda mais este procedimento. Na verdade, ele e capaz de fundir as duas etapas de um patch em uma so, ele gera a diferenca e aplica o patch ao mesmo tempo. A sintaxe e bastante similar ao comando svn diff apresentado mais acima, acrescentando-se apenas a pasta destino.Para apresentar o merge na pratica vamos criar uma nova alteracao em branches. A este ponto do artigo os comandos utilizados pra manipulacao do branch ja devem ser familiares, por isso nao vamos entrar em detalhes sobre eles.Crie o branch branches/nova_fonte:$ svn copy trunk branches/nova_fonte$ svn commit -m"Preparacao para a troca da fonte"$ svn updateNossa alteracao consiste em trocar a fonte do label onde a mensagem e exibida. Esta alteracao sera feita apenas no arquivo Janela.java da pasta branches/nova_fonte.branches/nova_fonte/Janela.java11 label.setFont(new Font("Serif", 0, 36));Submeta a alteracao ao repositorio.$ svn commit -m"Trocando a fonte