svn add trunk/*.java$ svn commit -m"Criacao da janela de mensagens"$ svn updateExemplo de aplicacao da tecnica de patchExiste um classico processo para a distribuicao de correcoes de programas conhecido como patch. Este processo se encaixa perfeitamente na aplicacao das alteracoes de branches para o trunk como veremos nessa secao.Alterando o projeto no branchVamos comecar realizando uma pequena mudanca nos arquivos do nosso projeto. Estas mudancas serao feitas num branch e ao final aplicadas de volta ao trunk. Essa aplicacao das alteracoes no trunk sera feita atraves de patch e ao final submetidas a repositorio. Para um estudo um pouco mais abrangente vamos simular uma segunda alteracao diretamente na pasta trunk, que acontecera durante a nossa primeira alteracao, ou seja, ela sera submetida ao repositorio depois da criacao do nosso branch porem antes da aplicacao do nosso patch. O resultado esperado com esta segunda alteracao e que a aplicacao do patch nao sobreponha esta segunda alteracao. Ambas devem prevalecer apos a submissao ao repositorio. Este risco de perder a segunda alteracao nao existe de fato, vamos apenas mostrar que o patch e seguro.De inicio vamos copiar a pasta trunk para branches/correcao.$ svn copy trunk branches/correcao$ svn commit -m"Preparacao para a correcao do projeto" $ svn updateNo nosso codigo fonte criado mais acima a mensagem exibida na janela esta fixa como "Hello World". Vamos alterar o programa para suportar uma mensagem personalizada, e vamos passar uma mensagem diferente no construtor da janela dentro do metodo main.Aplique nos arquivos dentro da pasta branches/correcao as alteracoes listadas abaixo. Note que destacamos o numero de cada linha para facilitar a localizacao da porcao a ser alterada.branches/correcao/Main.java3 new Janela("Ola mundo!").setVisible(true);branches/correcao/Janela.java6 Janela(String mensagem) {10 JLabel label = new JLabel(mensagem);A alteracao acima faz com que seja exibida uma mensagem diferente na janela. O programa pode ser executado da seguinte forma:$ javac branches/correcao/*.java$ java -cp branches/correcao MainAo final submeta as alteracoes ao repositorio.$ svn commit -m"Tornando a mensagem personalizavel"$ svn updateSimulando uma segunda alteracao direto no trunkComo dito anteriormente, vamos realizar uma segunda alteracao, dessa vez diretamente na pasta trunk. Nossa alteracao sera centralizar a janela na tela. Esta alteracao sera feita em duas linhas com um calculo bem tradicional.Acrescente no arquivo Janela.java as duas linhas abaixo antes da instrucao pack();.trunk/Janela.java26 Dimension tamanhoTela = Toolkit.getDefaultToolkit().getScreenSize();27 setLocation((tamanhoTela.width-getSize().width)/2, (tamanhoTela.height-getSize().height)/2);Submeta as alteracoes ao repositorio.$ svn commit -m"Centralizando a janela"$ svn updateGerando o patch com as alteracoesVamos agora gerar o patch para as nossas alteracoes realizadas dentro da pasta branches/correcao. O patch nada mais e que um arquivo texto contendo as diferencas das versoes de cada arquivo antes e depois da alteracao do projeto. Este arquivo com as diferencas pode ser gerado pela ferramenta svn diff. Note que o importante e informar para a ferramenta a revisao exata de quando a pasta branches/correcao foi criada e a revisao referente a submissao ao repositorio da nossa ultima alteracao, de forma a conseguir um patch contendo todas as nossas alteracoes feitas nessa pasta. Note que no nosso caso foi apenas uma alteracao, tornar a mensagem personalizavel, mas numa situacao real provavelmente teriamos submetido mais de uma alteracao