TortoiseSVN 1.6.10 Pt PT

Embed Size (px)

Citation preview

TortoiseSVNCliente de Subversion para Windows Verso 1.6.10

Stefan Kng Lbbe Onken Simon Large

TortoiseSVN: Cliente de Subversion para Windows: Verso 1.6.10por Stefan Kng, Lbbe Onken e Simon Large Publicado 2010/03/31 16:00:35 (r19115)

ndicePrefcio .......................................................................................................................... xi 1. Audincia ............................................................................................................ xi 2. Guia de Leitura .................................................................................................... xi 3. O TortoiseSVN grtis! ....................................................................................... xii 4. Comunidade ....................................................................................................... xii 5. Agradecimentos ................................................................................................... xii 6. Terminologia utilizada neste documento .................................................................. xii 1. Introduo .................................................................................................................... 1 1.1. O que o TortoiseSVN? ...................................................................................... 1 1.2. A histria do TortoiseSVN ................................................................................... 1 1.3. Funcionalidades do TortoiseSVN ........................................................................... 1 1.4. Instalando o TortoiseSVN .................................................................................... 2 1.4.1. Requesitos de sistema ............................................................................... 2 1.4.2. Instalao ................................................................................................ 3 1.4.3. Pacotes de Linguas ................................................................................... 3 1.4.4. Corretor Ortogrfico ................................................................................. 3 2. Conceitos Bsicos de Controlo de Verses ......................................................................... 5 2.1. O Repositrio ..................................................................................................... 5 2.2. Modelos de Controlo de Verses ........................................................................... 5 2.2.1. O Problema da Partilha de Ficheiros ............................................................ 6 2.2.2. A Soluo Bloquear-Modificar-Desbloquear .................................................. 6 2.2.3. A soluo Copiar-Modificar-Integrar ............................................................ 8 2.2.4. O que faz o Subversion? .......................................................................... 10 2.3. O Subversion em Aco ..................................................................................... 10 2.3.1. Cpias de Trabalho. ................................................................................ 10 2.3.2. URLs do Repositrio ............................................................................... 12 2.3.3. Revises ................................................................................................ 12 2.3.4. Como as Cpias de Trabalho Seguem o Repositrio ...................................... 14 2.4. Resumo ........................................................................................................... 15 3. O Repositrio ............................................................................................................. 16 3.1. Criao do Repositrio ....................................................................................... 16 3.1.1. Criar um Repositrio com o Cliente de Linha de Comandos ............................ 16 3.1.2. Criar O Repositrio Com o TortoiseSVN .................................................... 16 3.1.3. Acesso Local ao Repositrio ..................................................................... 17 3.1.4. Aceder ao Repositrio numa Partilha de Rede .............................................. 17 3.1.5. Estrutura do Repositrio .......................................................................... 18 3.2. Cpia de Segurana do Repositrio ...................................................................... 19 3.3. Scripts de gancho de servidor .............................................................................. 20 3.4. Ligaes de Checkout ........................................................................................ 20 3.5. Aceder ao Repositrio ........................................................................................ 21 3.6. Servidor Baseado em Svnserve ........................................................................... 21 3.6.1. Introduo ............................................................................................. 21 3.6.2. Instalar o svnserve .................................................................................. 21 3.6.3. Executar o svnserver ............................................................................... 22 3.6.4. Autenticao Bsica com o svnserve .......................................................... 24 3.6.5. Segurana Melhorada com SASL ............................................................... 25 3.6.6. Autenticao com svn+ssh ........................................................................ 26 3.6.7. Autorizao com o svnserve baseada em Caminhos ....................................... 26 3.7. Servidor Baseado em Apache .............................................................................. 26 3.7.1. Introduo ............................................................................................. 26 3.7.2. Instalar o Apache .................................................................................... 27 3.7.3. Instalar o Subversion ............................................................................... 28 3.7.4. Configurao ......................................................................................... 28 3.7.5. Repositrios Mltiplos ............................................................................. 30 3.7.6. Autorizao Baseada-em-Caminhos ............................................................ 31

iii

TortoiseSVN

3.7.7. Autenticao Com um Domnio Windows ................................................... 3.7.8. Mltiplas Fontes de Autenticao .............................................................. 3.7.9. Proteger o servidor com SSL .................................................................... 3.7.10. Usando certificador cliente com hospedeiros SSL virtuais. ............................ 4. Guia de Uso Dirio ...................................................................................................... 4.1. Comeando ...................................................................................................... 4.1.1. Sobreposio de cones ............................................................................ 4.1.2. Menus de Contexto ................................................................................. 4.1.3. Arrastar e Largar .................................................................................... 4.1.4. Atalhos comuns ...................................................................................... 4.1.5. Autenticao .......................................................................................... 4.1.6. Maxiizando Janelas ................................................................................. 4.2. Importando Dados Para Um Repositrio ................................................................ 4.2.1. Importar ................................................................................................ 4.2.2. Importar no local .................................................................................... 4.2.3. Ficheiros Especiais .................................................................................. 4.3. SVN Exportar Para Uma Cpia de Trabalho .......................................................... 4.3.1. Profundidade do Checkout ........................................................................ 4.4. Submetendo as tuas alteraes para o Repositrio ................................................... 4.4.1. A Caixa de Dilogo Submeter ................................................................... 4.4.2. Listas de Alteraes ................................................................................ 4.4.3. Excluir itens da lista a Submeter ................................................................ 4.4.4. Mensagens de Registo de Submeter ............................................................ 4.4.5. Progresso do Submeter ............................................................................ 4.5. Actualizar a Tua Cpia de Trabalho Com Alteraes de Outros .................................. 4.6. Resolvendo Conflitos ......................................................................................... 4.6.1. Conflitos de Ficheiro ............................................................................... 4.6.2. Conflitos de rvore ................................................................................ 4.7. Obter informao de Estado ................................................................................ 4.7.1. Sobreposio de cones ............................................................................ 4.7.2. Colunas TortoiseSVN no Explorador do Windows ........................................ 4.7.3. Estado Remoto e Local ............................................................................ 4.7.4. Vendo diferenas .................................................................................... 4.8. Listas de Alteraes ........................................................................................... 4.9. Caixa de Dilogo Registo de Revises .................................................................. 4.9.1. Invocando a Caixa de Dilogo Registo de Reviso ........................................ 4.9.2. Aces de Registo de Revises ................................................................. 4.9.3. Obtendo Informao Adicional .................................................................. 4.9.4. Obtendo mais mensagens de registo ........................................................... 4.9.5. Reviso Actual da Cpia de Trabalho ......................................................... 4.9.6. Funcionalidades de Rastreamento de Integrao ............................................ 4.9.7. Alterando a Mensagem de Registo e Autor .................................................. 4.9.8. Filtrando Mensagens de Registo ................................................................ 4.9.9. Informao Estatstica .............................................................................. 4.9.10. Modo Fora de Linha .............................................................................. 4.9.11. Refrescar a Vista .................................................................................. 4.10. Ver Diferenas ................................................................................................ 4.10.1. Diferenas em ficheiros .......................................................................... 4.10.2. Opes de Fim-de-Linha e Espaos-Brancos .............................................. 4.10.3. Comparando Pastas ............................................................................... 4.10.4. Comparando Imagens usando o TortoiseDiff .............................................. 4.10.5. Ferramentas de Comparao/Integrao ..................................................... 4.11. Adicionar Novos Ficheiros e Pastas .................................................................... 4.12. Copiando/Movendo/Renomeando Ficheiros e Pastas ............................................... 4.13. Ignorando Ficheiros E Pastas ............................................................................. 4.13.1. Correspondncia de Padres em Listas de Ignorados .................................... 4.14. Removendo, Movendo e Renomeando ................................................................. 4.14.1. Removendo ficheiros e pastas ..................................................................

31 33 34 36 37 37 37 37 39 40 40 41 41 41 43 43 44 44 46 46 49 49 49 51 52 54 54 55 58 58 59 60 62 62 64 65 65 66 70 71 71 72 73 73 77 77 77 78 79 79 81 82 82 83 84 85 86 87

iv

TortoiseSVN

4.14.2. Movendo ficheiros e pastas ..................................................................... 88 4.14.3. Mudando maisculas e minsculas no nome do ficheiro ................................ 89 4.14.4. Lidando com conflitos de maisculas e minsculas no nome do ficheiro ........... 89 4.14.5. Reparando Renomeaes de Ficheiros ....................................................... 89 4.14.6. Removendo Ficheiros No Versionados ..................................................... 90 4.15. Desfazer Alteraes ......................................................................................... 90 4.16. Limpar ........................................................................................................... 91 4.17. Configuraes de Projecto ................................................................................. 91 4.17.1. Propriedades Subversion ......................................................................... 92 4.17.2. Propriedades de Projecto TortoiseSVN ...................................................... 96 4.18. Itens Externos ................................................................................................. 98 4.18.1. Pastas Externas ..................................................................................... 98 4.18.2. Ficheiros Externos ............................................................................... 100 4.19. Ramificando/Etiquetando ................................................................................. 100 4.19.1. Criando um Ramo ou Etiqueta ............................................................... 101 4.19.2. SVN Exportar ou Trocar... .................................................................... 102 4.20. Integrar ........................................................................................................ 103 4.20.1. A Integrar Um Intervalo de Revises ...................................................... 105 4.20.2. Reintegrar um ramo ............................................................................. 106 4.20.3. A Integrar Duas rvores Diferentes ........................................................ 107 4.20.4. Opes de Integrao ........................................................................... 108 4.20.5. Rever os Resultados de Integrao .......................................................... 109 4.20.6. Rastreamento de Integrao ................................................................... 110 4.20.7. Lidando com Conflitos durante a Integrao ............................................. 110 4.20.8. Integrar um Ramo Completo ................................................................. 111 4.20.9. Manuteno do Ramo de Funcionalidade ................................................. 112 4.21. A bloquear .................................................................................................... 112 4.21.1. Como Funciona o Sistema de Bloqueio no Subversion ................................ 113 4.21.2. Obter um Bloquieo .............................................................................. 113 4.21.3. Libertar um Bloqueio ........................................................................... 114 4.21.4. Verificar o Estado dos Bloqueio ............................................................. 115 4.21.5. Tornar os Ficheiros No-Bloqueados S de Leitura .................................... 115 4.21.6. Os Scripts do Gancho de Bloqueio ......................................................... 116 4.22. Criar e Applicar Correces ............................................................................. 116 4.22.1. Criar um Ficheiro de Correco ............................................................. 116 4.22.2. Aplicar um Ficheiro de Correco .......................................................... 117 4.23. Quem Alterou Que Linha ................................................................................ 117 4.23.1. Responsabilidade para Ficheiros ............................................................. 118 4.23.2. Diferenas de responsabilidade .............................................................. 120 4.24. O Navegador de Repositrio ............................................................................ 120 4.25. Grficos de Revises ...................................................................................... 123 4.25.1. Ns do Grfico de Revises .................................................................. 124 4.25.2. Alterando a Vista ................................................................................ 124 4.25.3. Utilizar o Grfico ................................................................................ 126 4.25.4. Refrescar a Vista ................................................................................. 127 4.25.5. Podar as rvores ................................................................................. 127 4.26. Exportar uma Cpia de Trabalho do Subversion .................................................. 127 4.26.1. Remover uma cpia de trabalho do controlo de verses ............................... 129 4.27. Reposicionar uma cpia de trabalho .................................................................. 129 4.28. Integrao com Sistemas de controlo de problemas/Gestores de Problemas ................ 130 4.28.1. Adicionar Nmeros de Problemas nas Mensagens de Registo ....................... 130 4.28.2. Obter Informaes do Gestor de Problemas .............................................. 133 4.29. Integrao com visualizadores de repositrio Web-based ....................................... 134 4.30. Preferncias do TortoiseSVN ........................................................................... 135 4.30.1. Preferncias Gerais .............................................................................. 135 4.30.2. Preferncias do Grfico de Revises ....................................................... 143 4.30.3. Preferncias de Sobreposio de cones ................................................... 146 4.30.4. Preferncias de Rede ............................................................................ 149

v

TortoiseSVN

4.30.5. Preferncias de Programas Externos ........................................................ 4.30.6. Preferncias de Dados Guardados ........................................................... 4.30.7. Cache de Registo ................................................................................ 4.30.8. Scripts de Gancho do Lado do Cliente ..................................................... 4.30.9. Preferncias do TortoiseBlame ............................................................... 4.30.10. Registry Settings ................................................................................ 4.30.11. Pastas de Trabalho do Subversion ......................................................... 4.31. Passo Final ................................................................................................... 5. O Programa SubWCRev ............................................................................................. 5.1. A Linha de Comando SubWCRev ...................................................................... 5.2. Substituio de Palavra-Chave ........................................................................... 5.3. Exemplo de Palavra-Chave ................................................................................ 5.4. Interface COM ................................................................................................ 6. Interface IBugtraqProvider ........................................................................................... 6.1. O interface do IBugtraqProvider ......................................................................... 6.2. A interface IBugtraqProvider2 ........................................................................... A. Questes Mais Frequentes (FAQ) ................................................................................. B. Como Farei Para... ..................................................................................................... B.1. Mover/copiar muitos ficheiros de uma vez s ....................................................... B.2. Forar utilizadores a introduzir uma mensagem de registo ....................................... B.2.1. Script-gancho no servidor ...................................................................... B.2.2. Propriedades do projecto ........................................................................ B.3. Actualizar ficheiros seleccionados a partir do repositrio ........................................ B.4. Reverter (Anular) revises no repositrio ............................................................ B.4.1. Usar a caixa de dilogo registo de reviso ................................................. B.4.2. Usa a caixa de dilogo integrar ............................................................... B.4.3. Usa o svndumpfilter ....................................................................... B.5. Comparar duas revises de um ficheiro ou pasta ................................................... B.6. Incluir um subprojecto comum .......................................................................... B.6.1. Usa o svn:externals ............................................................................... B.6.2. Usar uma cpia de trabalho aninhada. ...................................................... B.6.3. Usa uma localizao relativa ................................................................... B.7. Criar um atalho para um repositrio ................................................................... B.8. Ignorar ficheiros que j esto versionados ............................................................ B.9. Remover uma cpia de trabalho do controlo de verses .......................................... B.10. Remover uma cpia de trabalho ....................................................................... C. Dicas teis para Administradores ................................................................................. C.1. Instalar o TortoiseSVN via politicas de grupo ....................................................... C.2. Redireccionar a verificao de actualizao .......................................................... C.3. Configurar a varivel de ambiente SVN_ASP_DOT_NET_HACK .............................. C.4. Desactivar entradas do menu de contexto ............................................................ D. Automatizar o TortoiseSVN ........................................................................................ D.1. Comandos TortoiseSVN ................................................................................... D.2. Comandos TortoiseIDiff ................................................................................... E. Referncia Cruzada da Interface de Linha de Comandos ................................................... E.1. Convenes e Regras Bsicas ............................................................................ E.2. Comandos TortoiseSVN ................................................................................... E.2.1. Checkout ............................................................................................. E.2.2. Actualizar ............................................................................................ E.2.3. Actualizar para Reviso ......................................................................... E.2.4. Submeter ............................................................................................. E.2.5. Comparar ............................................................................................ E.2.6. Mostrar Registo .................................................................................... E.2.7. Verificar Modificaes .......................................................................... E.2.8. Grfico de Revises .............................................................................. E.2.9. Navegador de Repositrio ...................................................................... E.2.10. Editar Conflitos .................................................................................. E.2.11. Resolvido ..........................................................................................

151 154 155 159 163 163 165 165 166 166 166 167 168 171 171 172 175 176 176 176 176 177 177 177 177 177 178 178 178 178 179 179 180 180 180 180 181 181 181 182 182 184 184 187 189 189 189 189 189 190 190 190 191 191 191 191 192 192

vi

TortoiseSVN

E.2.12. Alterar nome ...................................................................................... E.2.13. Remover ............................................................................................ E.2.14. Reverter ............................................................................................ E.2.15. Limpar .............................................................................................. E.2.16. Obter "Lock" ...................................................................................... E.2.17. Libertar "Lock" ................................................................................... E.2.18. Ramo/Etiqueta .................................................................................... E.2.19. Trocar ............................................................................................... E.2.20. Integrar ............................................................................................. E.2.21. Exportar ............................................................................................ E.2.22. Reposicionar ...................................................................................... E.2.23. Criar Repositrio Aqui ......................................................................... E.2.24. Adicionar ........................................................................................... E.2.25. Importar ............................................................................................ E.2.26. Responsabilizar ................................................................................... E.2.27. Addicionar list de tems a ignorar ........................................................ E.2.28. Criar Correco .................................................................................. E.2.29. Aplicar Correco ............................................................................... F. Detalhes de Implementao ......................................................................................... F.1. Sobreposio de cones .................................................................................... G. Protegendo o Svnserve ao usar o SSH ........................................................................... G.1. Configurao de um Servidor Linux ................................................................... G.2. Configurar um Servidor Windows ...................................................................... G.3. Ferramentas de cliente SSH para uso com o TortoiseSVN ...................................... G.4. Criao de certificados OpenSSH ...................................................................... G.4.1. Criar chaves com o ssh-keygen ............................................................... G.4.2. Criar chaves usando o PuTTYgen ............................................................ G.5. Testar com o PuTTY ....................................................................................... G.6. Testar SSH com o TortoiseSVN ........................................................................ G.7. Variantes da Configurao do SSH .................................................................... Glossrio ...................................................................................................................... ndice Remissivo ...........................................................................................................

192 192 192 192 192 193 193 193 193 193 194 194 194 194 194 194 194 194 195 195 197 197 197 198 198 198 198 198 199 200 202 206

vii

Lista de Figuras2.1. Um sistema tpico Cliente/Servidor ................................................................................ 5 2.2. O Problema a Evitar .................................................................................................... 6 2.3. A Soluo Bloquear-Modificar-Desbloquear .................................................................... 7 2.4. A soluo Copiar-Modificar-Integrar .............................................................................. 8 2.5. ...Continuao do Copiar-Modificar-Integrar .................................................................... 9 2.6. O Sistema de Ficheiros do Repositrio .......................................................................... 11 2.7. O Repositrio ........................................................................................................... 13 3.1. O menu TortoiseSVN para pastas no versionadas .......................................................... 16 4.1. O explorador mostrando os cones sobrepostos ............................................................... 37 4.2. Menu de Contexto de uma pasta sob controlo de verses. ................................................. 38 4.3. Menu de ficheiro do Explorador para um atalho numa pasta versionada. .............................. 39 4.4. Menu arrastar com o boto direito para uma pasta sob controlo de verses. ........................... 40 4.5. Caixa de dilogo de autenticao ................................................................................. 41 4.6. Caixa de dilogo Importar .......................................................................................... 42 4.7. A caixa de dilogo Checkout ...................................................................................... 44 4.8. A Caixa de Dilogo Submeter ..................................................................................... 47 4.9. A Verificao de Sintaxe na Caixa de Dilogo Submeter .................................................. 50 4.10. A caixa de dialogo de Progresso, mostrando a submisso em progresso .............................. 51 4.11. Caixa de dilogo de progresso mostrando uma actualizao finalizada. .............................. 52 4.12. O explorador mostrando os cones sobrepostos .............................................................. 58 4.13. Verificar Modificaes ............................................................................................. 60 4.14. Caixa de dilogo Submeter com Listas de Alteraes ..................................................... 63 4.15. A Caixa de Dilogo Registo de Reviso ...................................................................... 65 4.16. O Painel de Topo da Caixa de Dilogo Registo de Revises com Menu de Contexto ............. 66 4.17. Menu de Contexto do Painel Superior para 2 revises seleccionadas .................................. 68 4.18. O Painel de fundo da Caixa de Dilogo Registo com o Menu de Contexto .......................... 69 4.19. A Caixa de Dilogo Registo Mostra Rasto das Revises de Integrao ............................... 72 4.20. Histograma de Submisses-por-Autor .......................................................................... 74 4.21. Grfico de queijo Submisses-por-Autor ...................................................................... 75 4.22. Grfico de Submisses-por-data ................................................................................. 76 4.23. Caixa de dilogo Colocar-se em Fora de Linha ............................................................. 77 4.24. A Caixa de Dilogo Comparar Revises ...................................................................... 80 4.25. O leitor de diferenas de imagem ............................................................................... 81 4.26. Menu de contexto do Explorador para ficheiros no versionados ....................................... 83 4.27. Menu arrastar com o boto direito para uma pasta sob controlo de verses. ......................... 84 4.28. Menu de contexto do Explorador para ficheiros no versionados ....................................... 85 4.29. Menu de contexto do Explorador para ficheiros versionados ............................................ 87 4.30. Caixa de Dilogo Reverter ........................................................................................ 90 4.31. Pgina de propriedades do explorador, aba do Subversion ............................................... 92 4.32. Pgina de propriedades do Subversion ......................................................................... 93 4.33. Adicionando propriedades ......................................................................................... 94 4.34. A Caixa de Dilogo de Ramificar/Etiquetar ................................................................ 101 4.35. A Caixa de Dilogo Trocar ...................................................................................... 103 4.36. O Assistente de Integrao - Seleciona o Intervalo de Revises ....................................... 105 4.37. O Assistente de Integrao - Integrao para Reintegrar ................................................ 107 4.38. O Assistente de Integrao - Integrao de rvores ...................................................... 108 4.39. A Caixa de Dilogo Conflitos de Integrao ............................................................... 111 4.40. Caixa de Dilogo de reintegrao de Integrao ........................................................... 112 4.41. A Caixa de Dilogo Bloquear .................................................................................. 114 4.42. A Caixa de Dilogo Verificar Alteraes .................................................................... 115 4.43. A caixa de dilogo de Criar Correco ...................................................................... 116 4.44. A Caixa de Dilogo de Anotar/Responsabilizar ........................................................... 118 4.45. TortoiseBlame ....................................................................................................... 119 4.46. O Navegador de Repositrio .................................................................................... 121 4.47. O Grfico de Revises ............................................................................................ 123

viii

TortoiseSVN

4.48. A Caixa de Dilogo Exportar-do-URL ....................................................................... 4.49. A Caixa de Dilogo Reposicionar ............................................................................. 4.50. Caixa de dilogo de exemplo da consulta ao gestor de problemas .................................... 4.51. A Caixa de Dilogo Preferncias, Pgina Geral ........................................................... 4.52. A Caixa de Dilogo Preferncias, Pgina Menu de Contexto .......................................... 4.53. A Caixa de Dilogo Preferncias, Pgina Dilogos 1 .................................................... 4.54. A Caixa de Dilogo Preferncias, Pgina Dilogos 2 .................................................... 4.55. A Caixa de Dilogo Preferncias, Pgina de Cores ....................................................... 4.56. A Caixa de Dilogo Preferncias, Pgina Grfico de Revises ........................................ 4.57. A Caixa de Dilogo preferncias,Pgina Cores do Grfico de Revises ............................. 4.58. A Caixa de Dilogo Preferncias, Pgina Sobreposio de cones .................................... 4.59. A Caixa de Dilogo preferncias, Pgina Conjunto de cones ......................................... 4.60. A Caixa de Dilogo Preferncias, Pgina de Rede ........................................................ 4.61. A Caixa de Dilogo Preferncias, Pgina Visualizador de Comparao ............................. 4.62. A Caixa de Dilogo Preferncias, Caixa de Dilogo Comparar/Integrar Avanados ............. 4.63. A Caixa de Dilogo, Pgina de Dados Guardados ........................................................ 4.64. A Caixa de Dilogo Preferncias, Pgina Cache de Registo ............................................ 4.65. A Caixa de Dilogo Preferncias, Estatsticas da Cache de Registo .................................. 4.66. A Caixa de Dilogo Preferncias, Pgina Scripts de Gancho .......................................... 4.67. A Caixa de Dilogo Preferncias, Configurar Scripts de Gancho ..................................... 4.68. A Caixa de Dilogo Preferncias, Pgina Integrao com Controlador de Problemas ........... 4.69. A Caixa de Dilogo Preferncias, Pgina do TortoiseBlame ........................................... C.1. A Caixa de Dilogo Actualizao ..............................................................................

128 129 134 136 138 139 141 142 143 144 146 149 150 151 153 154 156 158 159 160 162 163 181

ix

Lista de Tabelas2.1. URLs de Acesso ao Repositrio .................................................................................. 12 3.1. Configuraes do httpd.conf do Apache .................................................................. 29 5.1. Lista de opes de linha de comando disponveis .......................................................... 166 5.2. Mtodos COM/automao suportados .......................................................................... 168 C.1. Entradas de menu e seus valores ................................................................................ 182 D.1. Lista de comandos e opes disponveis ...................................................................... 185 D.2. Lista de opes disponveis ...................................................................................... 187

x

Prefcio

Trabalhas numa equipa? Has it ever happened that you were working on a file, and someone else was working on the same file at the same time? Did you lose your changes to that file because of that? Have you ever saved a file, and then wanted to revert the changes you made? Have you ever wished you could see what a file looked like some time ago? Have you ever found a bug in your project and wanted to know when that bug got into your files? If you answered yes to one of these questions, then TortoiseSVN is for you! Just read on to find out how TortoiseSVN can help you in your work. It's not that difficult.

1. AudinciaThis book is written for computer literate folk who want to use Subversion to manage their data, but are uncomfortable using the command line client to do so. Since TortoiseSVN is a windows shell extension it's assumed that the user is familiar with the windows explorer and knows how to use it.

2. Guia de LeituraThis Prefcio explains a little about the TortoiseSVN project, the community of people who work on it, and the licensing conditions for using it and distributing it. The Captulo 1, Introduo explains what TortoiseSVN is, what it does, where it comes from and the basics for installing it on your PC. No Captulo 2, Conceitos Bsicos de Controlo de Verses ns damos uma curta introduo ao sistema de controle de verses Subversion que est na base do TortoiseSVN. Esta emprestada da documentao do projecto do Subversion, e explica as diferentes abordagens ao controlo de verses e como funciona o Subversion. O capitulo no Captulo 3, O Repositrio explica como instalar um repositrio local, que til para testar o Subversion e o TortoiseSVN usando um s PC. Tambm explica um pouco sobre a administrao do repositrio, que tambm relevante para os repositrios localizados num servidor. Existe tambm uma seco em como instalar um servidor, se precisares de um. O Captulo 4, Guia de Uso Dirio o captulo mais importante, j que explica as principais funcionalidades do TortoiseSVN e como us-las. Toma a forma de um tutorial, partindo assim do checkout de uma cpia de trabalho, modific-la, submeter as tuas alteraes, etc. Ento avana-se para tpicos mais avanados. O Captulo 5, O Programa SubWCRev um programa separado e includo com o TortoiseSVN, que pode extrair informao a partir da tua cpia de trabalho e escrev-la num ficheiro. Isto til para incluir informao de construo (build) nos teus projectos. A seco Apndice B, Como Farei Para... responde a algumas questes mais comuns, sobre a execuo de tarefas que no esto explicitamente cobertas noutros lados. A seco no Apndice D, Automatizar o TortoiseSVN explica como podem ser chamadas a partir da linha de comandos as caixas de dilogo do Interface grfico (GUI) do TortoiseSVN. Isto til para scripting, onde ainda podes necessitar de interaco com o utilizador.

xi

Prefcio

O Apndice E, Referncia Cruzada da Interface de Linha de Comandos d uma correlao entre os comandos do TortoiseSVN e os seus equivalentes no cliente de linha de comandos do Subversion svn.exe.

3. O TortoiseSVN grtis!TortoiseSVN is free. You don't have to pay to use it, and you can use it any way you want. It is developed under the GNU General Public License (GPL). TortoiseSVN is an Open Source project. That means you have full read access to the source code of this program. You can browse it on this link http://code.google.com/p/tortoisesvn/source/browse/. You will be prompted to enter username and password. The username is guest, and the password must be left blank. The most recent version (where we're currently working) is located under /trunk/, and the released versions are located under /tags/.

4. ComunidadeBoth TortoiseSVN and Subversion are developed by a community of people who are working on those projects. They come from different countries all over the world and work together to create wonderful programs.

5. AgradecimentosTim Kemp por ter fundado o projecto TortoiseSVN Stefan Kng for the hard work to get TortoiseSVN to what it is now Lbbe Onken pelos cones maravilhosos, logo, caa ao erro, traduo e gesto das tradues Simon Large for helping with the documentation and bug hunting O livro sobre Subversion pela excelente introduo a Subversion e ao captulo 2 que copiamos aqui O projecto de Estilo da Tigris por algums dos estilos reutilizados nesta documentao Os nossos contribuintes for the patches, bug reports and new ideas, and for helping others by answering questions on our mailing list. Os nossos doadores por muitas horas de prazer com a musica que nos enviaram

6. Terminologia utilizada neste documentoPara tornar mais fcil a leitura dos documentos, os nomes de todos os crans e Menus do TortoiseSVN esto escritos com um tipo de letra diferente. Por exemplo a Caixa de Dilogo Registo. O menu escolhido indicado com uma seta. TortoiseSVN Mostrar Registo significa: selecciona Mostrar Registo a partir do menu de contexto TortoiseSVN. Onde aparece um menu de contexto local, no interior de uma das caixas de dilogo do TortoiseSVN, ele mostrado do seguinte modo: Menu Contexto Guardar como ...

xii

Prefcio

Os botes do interface de utilizador so indicados da seguinte maneira: Premir OK para continuar. Aces do Utilizador so indicadas com fonte a negrito. Alt+A: premir a tecla Alt no teu teclado e enquanto a primes, prime tambm a tecla A. Arrasto-direito: premir o boto direito do rato e enquanto o primes arrasta os itens para a nova localizao. A sada do sistema e a entrada do teclado tambm indicado com um tipo de letra diferente.

ImportanteAs notas importantes esto marcadas com um cone.

DicaDicas que te facilitam a vida.

CuidadoLugares onde preciso cuidado com o que fazes.

AtenoWhere extreme care has to be taken, data corruption or other nasty things may occur if these warnings are ignored.

xiii

Captulo 1. IntroduoO controlo de verses a arte de gerir modificaes na informao. Desde h muito, tem sido uma ferramenta crtica para os programadores que usualmente efectuam pequenas alteraes no software e, desfazem ou confirmam algumas dessas alteraes no dia seguinte. Imaginem uma equipa desses desenvolvedores a trabalhar concorrentemente - e at talvez em simultneo nos mesmos ficheiros! - e podes ver o porqu da necessidade de um bom sistema para gerir o caos potencial.

1.1. O que o TortoiseSVN?TortoiseSVN is a free open-source client for the Subversion version control system. That is, TortoiseSVN manages files and directories over time. Files are stored in a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your files and examine the history of how and when your data changed, and who changed it. This is why many people think of Subversion and version control systems in general as a sort of time machine. Alguns sistemas de controlo de verses so tambm sistemas de software configuration management (SCM). Estes sistemas so especificamente desenhados para gerir arvores de cdigo fonte e tm muitas funcionalidades que so especficas ao desenvolvimento de software; como compreender nativamente as linguagens de programao, ou fornecerem ferramentas para construir (build) software. O Subversion no entanto no um desses sistemas; um sistema genrico que pode ser utilizado para gerir qualquer coleco de ficheiros, incluindo os de cdigo fonte.

1.2. A histria do TortoiseSVNIn 2002, Tim Kemp found that Subversion was a very good version control system, but it lacked a good GUI client. The idea for a Subversion client as a Windows shell integration was inspired by the similar client for CVS named TortoiseCVS. Tim studied the source code of TortoiseCVS and used it as a base for TortoiseSVN. He then started the project, registered the domain tortoisesvn.org and put the source code online. During that time, Stefan Kng was looking for a good and free version control system and found Subversion and the source for TortoiseSVN. Since TortoiseSVN was still not ready for use then he joined the project and started programming. Soon he rewrote most of the existing code and started adding commands and features, up to a point where nothing of the original code remained. As Subversion became more stable it attracted more and more users who also started using TortoiseSVN as their Subversion client. The user base grew quickly (and is still growing every day). That's when Lbbe Onken offered to help out with some nice icons and a logo for TortoiseSVN. And he takes care of the website and manages the translation.

1.3. Funcionalidades do TortoiseSVNO que torna o TortoiseSVN um bom cliente Subversion? Aqui vai uma pequena lista de funcionalidades: Integrao na "shell" TortoiseSVN integrates seamlessly into the Windows shell (i.e. the explorer). This means you can keep working with the tools you're already familiar with. And you do not have to change into a different application each time you need functions of the version control! And you are not even forced to use the Windows Explorer. TortoiseSVN's context menus work in many other file managers, and in the File/Open dialog which is common to most standard Windows applications. You should, however, bear in mind that TortoiseSVN is intentionally developed as extension for the Windows Explorer. Thus it is possible that in other applications the integration is not as complete and e.g. the icon overlays may not be shown.

1

Introduo

Soberposio de cones O estado de cada ficheiro e pasta versionada ndicado atravs de pequenos cones sobrepostos. Desta maneira possvel visualizar de imediato o estado da tua cpia de trabalho. Accesso fcil aos comandos do Subversion Toldos os comandos do Subervision esto disponveis atravs do menu de contexto do explorador. O TortoiseSVN adiciona aqui o seu sub-menu. Sendo o TortoiseSVN um cliente do Subversion, gostaramos tambm de mostrar algumas das funcionalidades especficas do Subversion: Versionamento de Pastas O CVS s segue o histrico de ficheiros individuais, mas o Subversion mplementa um sistema virtual de ficheiros versionados que segue as alteraes em todo o sistema de ficheiros ao longo do tempo. Ficheiros e pastas so versionadas. Como resultado, existem comandos reais do lado do cliente de, mover e copiar que actuam em ficheiros e pastas. Submisses atmicas Uma submisso para o repositrio ou executada por completo ou no o de todo. Este comportamento permite aos desenvolvedores construir e submeter alteraes para o repositrio como blocos lgicos. Metadata versionada Cada ficheiro ou pasta possuem um conjunto invisvel de propriedades agarrados a si. Poders ento inventar e armazenar qualquer conjunto arbitrrio de pares chave/valor que desejes. Propriedades so versionadas ao longo do tempo tal como os contedos dos ficheiros. Escolha de camadas de rede O Subversion tem uma noo abstracta do acesso ao repositrio, tornando fcil para as pessoas a implementao de novos mecanismos de rede. O servidor de rede avanado do Subversion um mdulo para o servidor web Apache, que fala uma variante do protocolo HTTP, chamado WebDAV/DeltaV. Isto d ao Subversion uma grande vantagem em estabilidade e interoperabilidade e fornece vrias funcionalidades chave gratuitamente: autenticao, autorizao, compresso em linha e navegao de repositrio, por exemplo. Um processo de servidor Subversion mais pequeno e autnomo tambm providenciado. Este servidor fala um protocolo customizado que pode ser facilmente tunelizado atravs de ssh. Processamento consistente de dados O Subervision exprime as diferenas nos ficheiros usando uma algoritmo de diferencial binrio, que funciona de modo igual tanto para ficheiros de texto (legveis para humanos) e ficheiros binrios (ilegveis para humanos). Ambos os tipos de ficheiros esto armazenados de igual modo, e comprimidos, no repositrio e as diferenas so transmitidas em ambas as direces atravs da rede. Ramificao e etiquetao eficiente O custo de ramificao e etiquetao no precisa de ser proporcional dimenso do projecto. O Subversion cria ramos e etiquetas atravs da simples cpia do projecto utilizando um mecanismo semelhante a um hard-link. Sendo assim, estas operaes necessitam de apenas de uma pequena e constante fraco de tempo , necessitando de muito pouco espao no repositrio. Hackabilidade O Subversion no tem bagagem histrica; est implementado como uma coleco de bibliotecas partilhadas em C com APIs bem definidas. Isto torna o Subversion extremamente manutenvel e usvel por outras aplicaes e linguagens.

1.4. Instalando o TortoiseSVN1.4.1. Requesitos de sistemaTortoiseSVN runs on Windows 2000 SP2, Windows XP or higher. Windows 98, Windows ME and Windows NT4 are no longer supported since TortoiseSVN 1.2.0, but you can still download the older versions if you really need them.

2

Introduo

If you encounter any problems during or after installing TortoiseSVN please refer to Apndice A, Questes Mais Frequentes (FAQ) first.

1.4.2. InstalaoTortoiseSVN comes with an easy to use installer. Double click on the installer file and follow the instructions. The installer will take care of the rest.

ImportanteNecessitas de previlgios de administrador para instalar o TortoiseSVN.

1.4.3. Pacotes de LinguasO interface grfico do TortoiseSVN tem sido traduzido em muitoas e variadas lnguas, sendo ento possvel descarregar um pacote de lnguas que sirva as tuas necessidades. Tu podes encontrar os pacotes de lnguas no nosso translation status pgina de ponto de situao da traduo [http://tortoisesvn.net/ translation_status]. Se no existir um pacote de lingua ainda disponvel porque no juntares-te equipa e submeteres a tua prpria traduo ;-) Cada pacote de lngua est empacotado como um instalador com extenso .exe. Apenas precisas de correr o ficheiro de instalao e seguir as instrues. Da prxima vez que reiniciares o computador, a traduo estar disponvel.

1.4.4. Corretor OrtogrficoO TortoiseSVN nclui um corretor ortogrfico que permite verificar as messagens de log de submisso. Isto de utilidade especial se a lngua do projecto no a lngua nativa. O verificador ortogrfico usa os mesmos ficheiros de dicionrio que o OpenOffice [http://openoffice.org] e Mozilla [http://mozilla.org]. O instalador instala automticamente os dicionrios de Ingls UK e US. Se quiseres outras lnguas, a opo mais simples instalar um dos pacotes de lnguas do TortoiseSVN. Este ir instalar os ficheiros de dicionrio apropriados bem como o interface local do TortoiseSVN. Da prxima vez que reiniciares o computadoe, o dicionrio estar tambem disponvel. Ou poders instalar os dicionrios manualmente. Se tens o OpenOffice ou Mozilla instalado, podes copiar esses dicionrios, que esto localizados nas pastas de instalao dessas aplicaes. De outro modo, necessitars de descarregar os ficheiros de dicionrio necessrios a partir de http:// wiki.services.openoffice.org/wiki/Dictionaries Aps obteres os ficheiros de dicionrio, provavelmente necessitars de renome-los para que os ficheiros s tenham os cdigos de localizao no nome. Exemplo: en_US.aff en_US.dic Ento copia-os apenas para a sub-pasta bin da pasta de instalao do TortoiseSVN. Normalmente esta ser C:\Program Files\TortoiseSVN\bin. No entanto se no quiseres lixo na subpasta bin poders colocar os teus ficheiros de correo ortogrfica na pasta C:\Program Files \TortoiseSVN\Languages. Se essa pasta no existe, ters de a criar primeiro. Da prxima vez que iniciares o TortoiseSVN o corrector ortogrfica estar disponvel. Se quiseres instalar mltiplos dicionrios, o TortoiseSVN utiliza estas regras para seleccionar o dicionrio em uso.

3

Introduo

1. Verificar o parametro de configurao tsvn:projectlanguage. Ver a seco Seco 4.17, Configuraes de Projecto para mais informaes sobre configurao das propriedades do projecto 2. Se no seleccionada nenhuma lngua para o projecto, ou essa lngua no est instalada, tente por favor a lngua local do Windows. 3. Se a configurao local do Windows no funciona, esperimente a lngua Base, i.e. de_CH (AlemoSuio) cair por defeito para de_DE (German). 4. Se nenhuma das abordagens anteriores funcionou, ento a lngua por defeito ser o Ingls, que est ncluido na instalao standard.

4

Captulo 2. Conceitos Bsicos de Controlo de VersesEste captulo uma verso ligeiramente modificada do mesmo captulo no livro do Subversion. Uma verso em linha do livro do Subversion pode ser encontrada aqui: http://svnbook.red-bean.com/. Este captulo uma introduo curta e casual ao Subversion. Se ests a iniciar-te no controlo de verses, este captulo mesmo para ti. Ns vamos comear com um discusso dos conceitos gerais de controlo de verses, abordar ideias especficas por detrs do Subversion, e mostrar alguns exemplos simples do uso do Subversion. Mesmo que os exemplos deste captulo mostrem pessoas a partilhar coleces de cdigo fonte de programas, tem em mente que o Subversion pode gerir qualquer tipo de coleces de ficheiros - no est limitado a ajudar os programadores de computadores.

2.1. O RepositrioO Subversion um sistema centralizado para partilha de informao. No seu cerne est o repository, que um armazm central de dados. O repositrio armazena informao na forma de uma firstterm>rvore de ficheiros

Figura 2.1. Um sistema tpico Cliente/ServidorEnto porque ser isto interessante? At agora isto parece-se com a definio de um servidor de ficheiros tpico. E de facto, o repositrio uma espcie de servidor de ficheiros, mas no da sua raa normal. O que torna o repositrio do Subversion especial que ele lembra-se de qualquer alterao que lhe tenha sido alguma vez escrita: todas as alteraes a qualquer ficheiro, e mesmo alteraes na prpria rvore de pastas, tal como adicionar, remover, e remodelar ficheiros e pastas. Quando um cliente l dados do repositrio, ele normalmente v s a ltima verso da rvore do sistema de ficheiros. Mas o cliente tambm tem a possibilidade de ver estados prvios do sistema de ficheiros. Por exemplo, um cliente efectuar perguntas de histrico, tais como o que que esta pasta continha na ltima Quarta-feira?, ou Quem foi a ltima pessoa e modificar este ficheiro, e que alteraes foram efectuadas? Essas so o tipo de questes que esto no corao de qualquer sistema de controlo de verses: sistemas que so desenhados para recordar e guardar alteraes em dados ao longo do tempo.

2.2. Modelos de Controlo de VersesTodos os sistemas de controlo de verses tm de resolver um problema fundamental: como ir o sistema permitir aos utilizadores partilhar informao, evitando ao mesmo tempo que pisem, por acidente, os

5

Conceitos Bsicos de Controlo de Verses

ps uns dos outros? muito fcil os utilizadores escreverem acidentalmente por cima das alteraes de outros utilizadores no repositrio.

2.2.1. O Problema da Partilha de FicheirosConsidera o seguinte cenrio: supem que temos dois colegas, Harry e Sally. Cada um decide editar o mesmo ficheiro do repositrio, ao mesmo tempo. Se o Harry guardar primeiro as suas alteraes no repositrio, possvel que (momentos depois) a Sally possa as substituir com a sua verso do ficheiro. Enquanto que a verso do Harry no se perder definitivamente (porque o sistema recorda-se de cada alterao), qualquer alterao feita pelo Harry no estar presente na nova verso do ficheiro da Sally porque, para comear, ela nunca viu as alteraes do Harry. O trabalho do Harry estar efectivamente perdido - ou pelo menos ausente da ltima verso do ficheiro - e provavelmente por acidente. Esta definitivamente uma situao que queremos evitar!

Figura 2.2. O Problema a Evitar 2.2.2. A Soluo Bloquear-Modificar-DesbloquearMuitos sistemas de controlo de verses usam o modelo bloquear-modificar-desbloquear para resolver este problema, o que uma soluo muito simples. Em tal sistema, o repositrio apenas permite que uma pessoa de cada vez possa modificar um ficheiro. Primeiro o Harry tem de bloquear o ficheiro, antes de poder editar o ficheiro. Bloquear um ficheiro um pouco como requisitar um livro da biblioteca; se o Harry tem o ficheiro bloqueado, ento a Sally no pode efectuar alteraes nele. Se eia tentar bloquear o ficheiro, o repositrio ir-lhe- negar o pedido. Tudo o que ela pode fazer apenas ler o ficheiro, e esperar que o Harry termine as suas alteraes e liberte o bloqueio. Aps o Harry desbloquear o ficheiro, termina a sua vez, e agora a Sally pode ter a sua vez ao bloquear e editar o ficheiro.

6

Conceitos Bsicos de Controlo de Verses

Figura 2.3. A Soluo Bloquear-Modificar-DesbloquearO problema com o modelo bloquear-modificar-desbloquear que um pouco restritivo, e torna-se muitas vezes um bloqueio para os utilizadores: Bloquear pode causar problemas administrativos. Por vezes o Harry ir bloquear um ficheiro e esquecer-se disso. Enquanto, porque a Sally est ainda espera para editar o ficheiro, tem as mos atadas. Ento o Harry vai de frias. Agora a Sally tem de se dirigir ao administrador para este libertar o bloqueio do Harry. A situao acaba por causar um grande e desnecessrio atraso e tempo perdido. Bloquear pode causar serializao desnecessria. E se o Harry estiver a editar o incio de um ficheiro de texto, e a Sally simplesmente quiser editar o final do mesmo ficheiro? Essas alteraes no se sobreporiam de todo. Eles poderiam facilmente editar o ficheiro simultaneamente, e nenhum grande mal adviria da, assumindo que as alteraes seriam propriamente integradas em conjunto. No h nenhuma necessidade deles recorrerem a turnos nesta situao. Bloquear pode criar um falso sentido de segurana. Imagina que o Harry bloqueia e edita o ficheiro A, enquanto a Sally simultaneamente bloqueia e edita o ficheiro B. Mas supem que A e B dependem um do outro, e as alteraes feitas a cada um deles so semanticamente incompatveis. De repente A e B j no funcionam juntos. O sistema de bloqueio foi impotente na preveno deste problema - mas no entanto forneceu um falso sentimento de segurana. fcil para o Harry e para a Sally imaginar que ao bloquear os ficheiros, cada um estar a iniciar uma tarefa segura e isolada, o que por sua vez os inibe de discutir de antemo as suas alteraes incompatveis.

7

Conceitos Bsicos de Controlo de Verses

2.2.3. A soluo Copiar-Modificar-IntegrarO Subversion, CVS e outros sistemas de controlo de verses usam o modelo copiar-modificar-integrar como alternativa ao bloqueio. Neste modelo cada utilizador cliente l o repositrio e cria uma cpia de trabalho pessoal do ficheiro ou projecto. Os utilizadores ento trabalham em paralelo, modificando as suas cpias privadas. Finalmente, as cpias privadas so integradas conjuntamente numa verso final. O sistema de controlo de verses assiste frequentemente a integrao, mas cabe ao humano ser o responsvel ltimo por garantir que este acontea correctamente. Eis um exemplo. Digamos que o Harry e a Sally criaram cada um, cpias de trabalho do mesmo projecto, copiadas do repositrio. Eles trabalharo concorrentemente e efectuaram alteraes no mesmo ficheiro A, em suas cpias. A Sally guarda as suas alteraes no repositrio, primeiro. Ento o Harry tenta guardar as suas alteraes mais tarde o repositrio informa-o que o seu ficheiro A est desactualizado. Noutras palavras, o ficheiro A do repositrio foi de algum modo alterado desde a ltima vez que o copiaste. Ento o Harry pede ao seu cliente para integrar quaisquer novas alteraes do repositrio na sua cpia de trabalho do ficheiro A. H probabilidades que as alteraes da Sally no se sobreponham com as suas; pelo que uma vez que ambos os conjuntos de alteraes estejam integrados, ele guardar a sua cpia de trabalho de volta para o repositrio.

Figura 2.4. A soluo Copiar-Modificar-Integrar

8

Conceitos Bsicos de Controlo de Verses

Figura 2.5. ...Continuao do Copiar-Modificar-Integrar

Mas se as alteraes da Sally se sobrepuserem as do Harry? E depois? Esta situao chamada de conflito, e no normalmente um grande problema. Quando o Harry pede ao seu cliente para integrar as ltimas alteraes do repositrio para a sua cpia de trabalho, a sua cpia do ficheiro A e de alguma maneira sinalizada como estando em conflito: poderemos observar ambos os conjuntos de alteraes, e escolher manualmente entre elas. Ter em ateno que o software no pode resolver automaticamente os conflitos: s os humanos so capazes de compreender e efectuar as necessrias escolhas inteligentes. Uma vez que o Harry tenha resolvido manualmente a sobreposio das alteraes (talvez ao discutir o conflito com a Sally), ele pode salvaguardar com segurana o ficheiro integrado de volta para o repositrio. O modelo copiar-modificar-integrar pode soar um pouco catico, mas na prtica funciona de um modo muito fluido. Os utilizadores podem trabalhar em paralelo, nunca esperando uns pelos outros. Quando trabalham nos mesmos ficheiros, acontece que a, a maior parte das suas alteraes concorrentes no se sobrepem; conflitos so raros. E a quantidade de tempo levada a resolver conflitos muito inferior ao tempo perdido com o sistema de bloqueio No final tudo se resume a um factor critico: comunicao com o utilizador. Quando os utilizadores no comunicam bem, aumentam os conflitos sintcticos e semnticos. Nenhum sistema pode forar os utilizadores a comunicar na perfeio, e nenhum sistema pode detectar conflitos semnticos. Portanto no existe vantagens em ser iludido por uma falsa promessa de que o sistema de bloqueio ir evitar conflitos; na prtica os sistemas bloqueantes parecem inibir mais a produtividade que qualquer outra coisa. Existe uma situao particular onde o modelo bloquear-modificar-desbloquear funciona melhor, que quando tens ficheiros no integrveis. Por exemplo, se o teu repositrio contm algumas imagens, e duas

9

Conceitos Bsicos de Controlo de Verses

pessoas alteram a imagem ao mesmo tempo, no existe forma de integrar essas alteraes. Ou o Harry ou a Sally iro perder as suas alteraes.

2.2.4. O que faz o Subversion?O Subversion usa por defeito a soluo copiar-modificar-integrar, e em muitos casos, isto ser tudo o que alguma vez irs precisar. No entanto, tal como na verso 1.2, o Subversion tambm suporta o bloqueio de ficheiros, pelo que se tiveres ficheiros no integrveis, ou simplesmente, fores forado pela administrao a usar uma poltica de bloqueio, o Subversion poder ainda te fornecer as funcionalidades de que necessitas.

2.3. O Subversion em Aco2.3.1. Cpias de Trabalho.Tu j ouviste falar em cpias de trabalho; agora vamos demonstrar como o cliente Subversion as cria e usa. Uma cpia de trabalho do Subversion uma normal rvore de pastas no teu sistema local contendo uma coleco de ficheiros. Tu podes editar esses ficheiros como desejares, e no caso de serem ficheiros de cdigo fonte, poders compilar o teu programa a partir deles da forma habitual. A tua cpia de trabalho a tua rea de trabalho privada: o Subversion nunca ir incorporar alteraes de outras pessoas, nem tornar as tuas alteraes disponveis a outros, at tu explicitamente lhe indicares para o fazer. Aps efectuares algumas alteraes nos ficheiros da tua cpia de trabalho, e verificares que elas esto correctas, o Subversion ir-te- fornecer comandos para publicares as tuas alteraes para as outras pessoas que trabalham contigo no projecto (escrevendo para o repositrio). Se outras pessoas publicarem as suas prprias alteraes, o Subversion fornece-te comandos para integrar essas alteraes na tua cpia de trabalho (ao ler do repositrio). A cpia de trabalho tambm contm alguns ficheiros extra, criados e mantidos pelo Subversion para ajud-lo a executar esses comandos. Em particular, cada pasta na tua cpia de trabalho contm uma subpasta chamada .svn, tambm conhecida como a pasta administrativa da cpia de trabalho. Os ficheiros em cada pasta administrativa ajudam o Subversion a reconhecer quais os ficheiros que contm alteraes no publicadas, e quais os ficheiros que esto desactualizados em relao ao trabalho dos outros. Um repositrio tpico do Subversion armazena com frequncia os ficheiros (ou cdigo fonte) de vrios projectos; normalmente, cada projecto uma subpasta no sistema de ficheiros do repositrio. Nesta configurao, a cpia de trabalho do utilizador corresponde normalmente a uma sub-rvore em particular do repositrio. Por exemplo, supem que tens um repositrio que contm dois projectos de software.

10

Conceitos Bsicos de Controlo de Verses

Figura 2.6. O Sistema de Ficheiros do RepositrioNoutras palavras, a pasta raiz do repositrio ter duas subpastas: paint e calc. Para obteres uma cpia de trabalho, ters de efectuar checkout nalgumas pastas do repositrio. (O termo emphasis>checkout Supem que tu efectuas alteraes no button.c. Visto que a pasta .svn lembra-se da data das modificaes do ficheiro e do seu contedo original, pode assim o Subversion saber se alteraste o ficheiro. No entanto o Subversion no tornar as tuas alteraes pblicas at explicitamente tu lhe disseres para o fazer. O acto de publicar as tuas alteraes mais usualmente conhecido por submeter (ou checking in) as alteraes para o repositrio. Para publicar as tuas alteraes para outros, podes usar o comando submeter do Subversion. Agora as tuas alteraes no button.c foram submetidas para o repositrio; se outro utilizador efectuar um checkout de uma cpia de trabalho do /calc, ir ver as tuas alteraes na ltima verso do ficheiro. Supem que tens um colaborador, Sally, que efectuou checkout a uma cpia de trabalho do /calc ao mesmo tempo que tu. Quando tu submeteres a tua alterao ao button.c, a cpia de trabalho da Sally ir ficar inalterada; o Subversion s modifica as cpias de trabalho a pedido do utilizador. Para actualizar o seu projecto, a Sally pode pedir ao Subversion para actualizar a sua cpia de trabalho, usando o comando actualizar do Subversion. Isto ir incorporar as tuas alteraes na sua cpia de trabalho, tal como quaisquer outras que tenham sido submetidas desde que a criou (checkout). Note-se que a Sally no precisou de especificar quais os ficheiros a actualizar; o Subversion usa a informao na pasta .svn, e informao posterior no repositrio, para decidir que ficheiros precisam de ser actualizados.

11

Conceitos Bsicos de Controlo de Verses

2.3.2. URLs do RepositrioOs repositrios do Subversion podem ser acedidos atravs de vrios mtodos diferentes - no disco local, ou atravs de vrios protocolos de rede. No entanto, a localizao do repositrio ser sempre um URL. O esquema do URL indica o mtodo de acesso: Esquema file:// http:// https:// svn:// svn+ssh:// Mtodo de Acesso Acesso directo ao repositrio, numa unidade de rede ou local. Acesso atravs do protocolo WebDAV a um servidor Apache consciente do Subversion. O mesmo que http://, mas com encriptao SSL. Acesso TCP/IP no autorizado, via um protocolo personalizado, a um servidor svnserve. Acesso TCP/IP autenticado e encriptado, atravs de protocolo personalizado a um servidor svnserve.

Tabela 2.1. URLs de Acesso ao RepositrioNa maioria dos casos, os URLs do Subversion usam a sintaxe padro, permitindo a especificao de nomes de servidor e nmeros de porto, como parte do URL. O mtodo de acesso file:// normalmente usado para acessos locais, embora possa ser usado em caminhos UNC para um hospedeiro de rede. Portanto o URL toma a forma de file://hostname/path/to/repos. Para a mquina local, a parcela do URL hostname pode ser localhost ou ausente. Por esta razo os caminhos locais aparecem normalmente com trs barras, file:///path/to/repos. Igualmente, os utilizadores do esquema file:// nas plataformas Windows, iro precisar de usar uma sintaxe padro no oficial para aceder aos repositrios que esto na mesma mquina, mas numa unidade diferente da unidade de trabalho do utilizador. Qualquer uma da duas seguintes sintaxes de caminhos URL iro funcionar aqui, X a unidade onde reside o repositrio:

file:///X:/path/to/repos ... file:///X|/path/to/repos ... Observa que o URL usa barras comuns, mesmo que a forma nativa de um caminho (sem-URL) no Windows utilize barras invertidas. Podes aceder com seguranca a um repositrio FSFS atravs de uma partilha de rede, mas no poders aceder desta forma a um repositrio BDB.

AtenoNo cries ou acedas a um repositrio Berkeley DB numa partilha de rede. Ele no poder existir num sistema de ficheiros remoto. Nem mesmo se tiveres a unidade de rede mapeada com uma letra de unidade. Se tentares usar o Berkeley DB numa partilha de rede, os resultados sero imprevisveis - poders observar de imediato erros misteriosos, ou poder levar-te meses at descobrires que a tua base de dados do repositrio est subtilmente corrompida.

2.3.3. RevisesUma operao svn submeter pode publicar alteraes de qualquer nmero de ficheiros e pastas, como uma transaco atmica. Na tua cpia de trabalho, tu podes alterar o contedo dos ficheiros, criar,

12

Conceitos Bsicos de Controlo de Verses

remover, alterar o nome e copiar ficheiros e pastas, e ento submeter o conjunto completo de alteraes como uma unidade. No repositrio, cada submisso tratada como uma transaco atmica: ou todas as alteraes da submisso ocorrem, ou nenhuma ocorrer. O Subversion mantm a sua atomicidade em caso de estoiro do programa, problemas de rede, ou outras aces dos utilizadores. Cada vez que o repositrio aceita uma submisso, este cria um novo estado da rvore do sistema de ficheiros chamado reviso. A cada reviso atribudo um nmero natural, uma unidade acima da reviso prvia. A reviso inicial de um repositrio recm-criado zero, e consiste em nada mais que uma pasta raiz vazia. Uma maneira agradvel de visualizar o repositrio como uma srie de rvores. Imagina um array de nmeros de reviso, a comear no 0, alinhados da esquerda para a direita. Cada nmero de reviso tem uma rvore de reviso por baixo, e cada rvore uma fotografia do aspecto do repositrio aps cada submisso.

Figura 2.7. O RepositrioNmeros de Reviso Globais Ao contrrio de muitos outros sistemas de controlo de verses, os nmeros de reviso do Subversion aplicam-se a rvores completas e no a ficheiros individuais. Cada nmero de reviso selecciona uma rvore inteira, um estado particular do repositrio aps alguma alterao submetida. Outra maneira de pensar sobre isso que, a reviso N representa o estado do sistema de ficheiros do repositrio aps o N submisso. Quando um utilizador do Subversion fala sobre a "reviso 5 do foo.c'', o que ele realmente quer dizer , "foo.c como ele estava na reviso 5 do repositrio". Observa que em geral as revises N e M de um ficheiro no precisam necessariamente de diferir! importante observar que as cpias de trabalho nem sempre correspondem a um nica reviso do repositrio; Elas podem conter ficheiros de vrias revises diferentes. Por exemplo, supe que efectuas o checkout de um repositrio para uma cpia de trabalho, cuja reviso mais recente 4:

13

Conceitos Bsicos de Controlo de Verses

calc/Makefile:4 integer.c:4 button.c:4 Neste momento, esta cpia de trabalho corresponde exactamente reviso 4 do repositrio. No entanto, supe que fizeste uma alterao ao button.c, e submetes essa alterao. Assumindo que no foram efectuadas outras submisses, a tua submisso ir criar a reviso 5, e a tua cpia de trabalho ir ficar assim:

calc/Makefile:4 integer.c:4 button.c:5 Supe que, neste momento, a Sally submete uma alterao ao integer.c, criando a reviso 6. Se usares o svn actualizar para actualizares a tua cpia de trabalho, ela ir ficar do seguinte modo:

calc/Makefile:6 integer.c:6 button.c:6 As alteraes da Sally ao integer.c iro aparecer na tua cpia de trabalho e a tua alterao no button.c ainda estar presente. Neste exemplo, o texto do Makefile ser identico nas revises 4,5,6 mas o Subversion ir marcar a tua cpia de trabalho do Makefile com a reviso 6, para indicar que esta ainda a corrente. Ento, aps uma actualizao de limpeza no topo da tua cpia de trabalho, esta ir corresponder a exactamente uma reviso do repositrio.

2.3.4. Como as Cpias de Trabalho Seguem o RepositrioPara cada ficheiro na pasta de trabalho, o Subversion guarda duas partes essenciais de informao na rea administrativa .svn/: em que reviso baseada o teu ficheiro de trabalho (esta chamada a reviso de trabalho do ficheiro), e uma etiqueta temporal que grava quando foi actualizada, pelo repositrio, a cpia local pela ltima vez. Dada esta informao, comunicando com o repositrio, o Subversion pode dizer em qual dos seguintes quatro estados est o ficheiro de trabalho: Inalterado, e actual O ficheiro est inalterado na pasta de trabalho, e nenhuma alterao a esse ficheiro foi submetida no repositrio, desde a reviso de trabalho. O submeter o ficheiro no far nada, e uma actualizao ao mesmo tambm nada far. Modificado localmente, e actual O ficheiro foi alterado na pasta de trabalho, e nenhuma alterao a esse ficheiro foi submetida para no repositrio desde a sua reviso base. Existem alteraes locais que no foram ainda submetidas para o repositrio, pelo que submeter o ficheiro ir ter sucesso na publicao das tuas alteraes, e um actualizar do ficheiro no ir fazer nada. Inalterado, e desactualizado O ficheiro no foi alterado na pasta de trabalho, mas foi alterado no repositrio. O ficheiro dever eventualmente ser actualizado, para o tornar actual com a reviso pblica. O submeter do ficheiro no ir fazer nada, e um actualizar do ficheiro ir trazer as ltimas alteraes para a tua cpia de trabalho. Modificado localmente, e desactualizado O ficheiro foi alterado na pasta de trabalho e no repositrio. O submeter do ficheiro ir falhar com o erro desactualizado. O ficheiro dever ser primeiro actualizado; o comando actualizar ir tentar integrar as alteraes pblicas com as alteraes locais. Se o Subversion no conseguir completar

14

Conceitos Bsicos de Controlo de Verses

automaticamente a integrao, de um modo plausvel, ir deixar para o utilizador a resoluo do conflito.

2.4. ResumoNeste captulo cobrimos um nmero de conceitos fundamentais do Subversion: Introduzimos as noes de repositrio central, cpia de trabalho do cliente, e o array de rvores de reviso do repositrio. Vimos alguns exemplos simples em como dois colaboradores podem usar o Subversion para publicar e receber alteraes um do outro, usando o modelo "copiar-modificar-integrar. Falmos um pouco sobre o modo como o Subversion segue e gere a informao na cpia de trabalho.

15

Captulo 3. O RepositrioIndependentemente do protocolo que usas para aceder aos teus repositrios, precisas sempre de criar pelo menos um. Isto pode ser feito com a linha de comandos do Subversion ou com o TortoiseSVN. Se ainda no criaste um repositrio SVN, est a altura para o fazer.

3.1. Criao do RepositrioPodes criar um repositrio com o formato FSFS ou com o mais antigo Berkeley Database (BDB). O formato FSFS geralmente mais rpido e facil de administrar, e funciona em partilhas de rede e com o Windows98 sem problemas. O formato BDB j foi considerado mais estvel, simplesmente porque estava em uso mais tempo, mas desde que o FSFS tem estado em uso no campo por vrios anos, esse argumento agora um pouco fraco. Consulta Choosing a Data Store [http://svnbook.red-bean.com/ en/1.5/svn.reposadmin.planning.html#svn.reposadmin.basics.backends] no livro do Subversion, para mais informaes.

3.1.1. Criar um Repositrio com o Cliente de Linha de Comandos1. Cria uma pasta vazia com o nome SVN (e.g. D:\SVN\), que ser usada como raiz para todos os teus repositrios. 2. Cria outra pasta MyNewRepository dentro da D:\SVN\. 3. Abre a linha de comandos (ou caixa do DOS), muda para a D:\SVN\ e digita svnadmin create --fs-type bdb MyNewRepository or svnadmin create --fs-type fsfs MyNewRepository Agora tens um novo repositrio localizado em D:\SVN\MyNewRepository.

3.1.2. Criar O Repositrio Com o TortoiseSVN

Figura 3.1. O menu TortoiseSVN para pastas no versionadas1. Abre o explorador do Windows 2. Cria uma nova pasta e chama-a, e.g. SVNRepository

16

O Repositrio

3. Clica com o boto direito na pasta recm-criada e selecciona TortoiseSVN Criar repositrio aqui.... ento criado o repositrio dentro da nova pasta. No edites esses ficheiros manualmente!!!. Se obtiveres algum erro, tem a certeza que essa pasta vazia e no est protegida contra escrita.

DicaO TortoiseSVN no oferece mais a opo para criar repositrios BDB, mesmo que tu ainda uses a linha de comandos para os criar. Os repositrios FSFS so na generalidade mais fceis para tu os manteres, o que tambm nos torna mais fcil manter o TortoiseSVN, devido a problemas de compatibilidade entre diferentes verses do BDB. Future versions of TortoiseSVN will not support file:// access to BDB repositories due to these compatibility issues, although it will of course always support this repository format when accessed via a server through the svn://, http:// or https:// protocols. For this reason, we strongly recommend that any new repository which must be accessed using file:// protocol is created as FSFS. claro que ns tambm recomendamos que tu no uses, de modo algum, o acesso file:// para alm do uso para testes locais. Usar um servidor muito mais seguro e mais confivel para todos os usos, excepto o desenvolvimento a solo.

3.1.3. Acesso Local ao RepositrioPara aceder ao teu repositrio local, precisas do caminho para essa pasta. Lembra-te que o Subversion est espera que todos os caminhos estejam na forma file:///C:/SVNRepository/. Observa o uso de barras por todo o lado. Para aceder a um repositrio localizado numa partilha de rede, podes usar o mapeamento de unidades, ou podes usar um caminho UNC. Para caminhos UNC a forma file://ServerName/path/to/ repos/. Observa que s existem aqui 2 barras dianteiras. Antes do SVN 1.2, os caminhos UNC tinham de ser especificados numa forma mais obscura, file:/// \ServerName/path/to/repos. Esta forma ainda suportada, mas no recomendada.

AtenoNo criar ou aceder a um repositrio Berkeley DB numa partilha de rede. Ele no pode existir num sistema de ficheiros remoto. Nem mesmo se tu tens uma unidade de rede mapeada numa letra de unidade. Se tentares usar um Berkeley DB numa partilha de rede, os resultados sero inesperados - tu poders ver de imediato erros misteriosos, ou podero passar meses antes de descobrires que a tua base de dados do teu repositrio est subtilmente corrompida.

3.1.4. Aceder ao Repositrio numa Partilha de RedeEmbora em teoria possvel por um repositrio FSFS numa partilha de rede, e ter mltiplos utilizadores a aced-lo usando o protocolo file://, mas isto no definitivamente recomendvel. Em primeiro lugar, tu ests a dar a cada utilizador o acesso directo ao repositrio, pelo que qualquer utilizador pode acidentalmente apagar todo o repositrio ou inutiliz-lo de alguma forma. Em segundo lugar, nem todos os protocolos de partilha de ficheiros em rede suportam o bloqueio que o Subversion requer, pelo que podes encontrar o teu repositrio corrompido. Poder no acontecer de imediato, mas um dia dois utilizadores tentaro aceder ao repositrio ao mesmo tempo.

17

O Repositrio

Em terceiro lugar, as permisses dos ficheiros tem de ser configuradas como esto. Poders, no entanto, quase dar a volta a isso numa partilha Windows nativa, mas ser particularmente difcil no SAMBA. O acesso file:// dirigido para acesso local e de utilizador nico, em particular para testes e depurao de problemas. Quando tu queres partilhar o repositrio, precisars realmente de instalar correctamente um servidor, e no to difcil como pensas. Consulta o Seco 3.5, Aceder ao Repositrio para guias orientadoras na escolha e instalao de um servidor.

3.1.5. Estrutura do RepositrioAntes de tu importares os teus dados para o repositrio, devers primeiro pensar em como o queres organizar. Se tu usares uma das estruturas recomendadas, mais tarde ters a tudo muito mais facilitado. Existem alguns mtodos padro e recomendados de organizar o repositrio. A maioria das pessoas a pasta trunk para guardar a linha principal de desenvolvimento, uma pasta ramos para conter as cpias de ramos, e a pasta etiquetas para guardas as cpias etiquetas. Se o repositrio tiver s um projecto, ento frequentemente as pessoas criaram essas pastas de nvel de topo:

/trunk /ramos /etiquetas Se o repositrio conter vrios projectos, as pessoas normalmente indexaro a sua estrutura por ramo:

/trunk/paint /trunk/calc /ramos/paint /ramos/calc /etiquetas/paint /etiquetas/calc ...ou por projecto:

/paint/trunk /paint/ramos /paint/etiquetas /calc/trunk /calc/ramos /calc/etiquetas Indexar por projecto faz sentido, se os projectos no esto intimamente relacionados, e cada um obtido individualmente por checkout. Para projectos relacionados onde poders querer efectuar o checkout de todos os projectos de uma s vez, ou onde os projectos esto todos ligados num nico pacote de distribuio. normalmente melhor indexar por ramo. Deste modo tu podes ter um trunk para efectuar checkout e as relaes entre subprojectos so mais facilmente visvel. Se adoptares por uma abordagem de um nvel de topo /trunk /tags /branches, no necessrio referir que ters de copiar o trunk inteiro para cada ramo e etiqueta, e de algum modo esta estrutura oferece a maior flexibilidade. Para projectos no relacionados, poders preferir o uso de repositrios separados. Quando submetes as alteraes, o nmero de reviso do repositrio inteiro que muda, e no o nmero de reviso do projecto. Ter 2 projectos no relacionados a partilhar o repositrio, pode significar grandes falhas nos nmeros de revises. Os projectos Subversion e TortoiseSVN aparecem no mesmo endereo de hospedeiro, mas esto completamente separados, permitindo desenvolvimentos separados, e sem confuso sobre nmeros de construo.

18

O Repositrio

Est claro que s livre para ignorar essas estruturas comuns. Tu podes criar qualquer gnero de variao, e o que funcionar melhor para ti e para a tua equipa. Lembra-te que o que escolheres no ser um comprometimento permanente. Tu podes reorganizar, em qualquer altura, o teu repositrio. Porque ramos e etiquetas so pastas comuns, o TortoiseSVN pode mover ou alterar o seu nome, quando assim o desejares. Trocar de uma estrutura para outra s uma questo de executar uma srie de movimentos do lado do servidor. Se no gostares do modo como as coisas esto organizadas no repositrio, poders manipular as pastas a teu modo. Ento, se ainda no criaste a estrutura de pastas bsica dentro do teu repositrio, devers faze-lo agora. Existem duas maneiras para o obteres. Se queres simplesmente criar a estrutura /trunk /tags / branches, tu podes usar para isso o navegador de repositrio, para criar as trs pastas (em trs submisses separadas). Se queres criar uma hierarquia mais profunda, ento mais simples criar primeiro a estrutura de pastas em disco e import-la numa simples submisso, assim: 1. cria uma nova pasta vazia no teu disco rgido 2. cria a estrutura de pastas de nvel de topo que desejas, dentro dessa pasta - no ponhas l ainda nenhum ficheiro! 3. import this structure into the repository via a right click on the folder and selecting TortoiseSVN Import... This will import your temp folder into the repository root to create the basic repository layout. Tem em conta que o nome da pasta que ests a importar no aparecer no repositrio, s o seu contedo. Por exemplo, cria a seguinte estrutura de pastas: C:\Temp\New\trunk C:\Temp\New\ramos C:\Temp\New\etiquetas Importa o C:\Temp\New para a raiz do repositrio, que ento ter o seguinte aspecto: /trunk /ramos /etiquetas

3.2. Cpia de Segurana do RepositrioQualquer que seja o tipo de repositrio que uses de importncia vital manter cpias de segurana regulares, e que tambm as verifiques. Se o servidor falhar poders ter acesso a uma verso recente dos teus ficheiros, mas sem o repositrio, todo o teu histrico ser perdido para sempre. O mtodo mais simples (mas no recomendado) copiar apenas a pasta do repositrio para um meio de reserva. No entanto, tens de ter a certeza absoluta que no existe nenhum processo a aceder aos dados. Neste contexto, acesso significa qualquer tipo de acesso. Um repositrio BDB escrito mesmo quando a operao parece apenas requerer leitura, como obter o estado. Se o teu repositrio estiver a ser acedido de qualquer modo, durante a cpia (navegador web aberto, WebSVN, etc.), a cpia de segurana ficar inutilizada. O mtodo recomendado correr svnadmin hotcopy path/to/repository path/to/backup --clean-logs para criar uma cpia, de maneira segura, do teu repositrio. Ento efectua a cpia de segurana da cpia. A opo --clean-logs no necessria, mas remove quaisquer ficheiros de registo redundantes, quando efectuas a cpia de segurana de um repositrio BDB, o que pode poupar algum espao.

19

O Repositrio

A ferramenta svnadmin automaticamente instalada quando tu instalas o cliente de linha de comandos do Subversion. Se ests a instalar as ferramentas de linha de comandos num PC Windows, o melhor mtodo descarregar a verso com instalador Windows. comprimido de modo mais eficiente do que a verso .zip, pelo que a descarga mais pequena, e toma conta da configurao dos caminhos por ti. Tu podes descarregar a ltima verso do cliente de linha de comandos do Subversion a partir de http:// subversion.apache.org/getting.html.

3.3. Scripts de gancho de servidorUm script de gancho um programa disparado por algum evento no servidor, como a criao de uma nova reviso ou a modificao de uma propriedade no versionada. A cada gancho dada informao suficiente para poder distinguir qual o evento, o alvo(s) da operao, e o nome de utilizador da pessoa que disparou o evento. Dependendo do produto dos ganchos ou estado de retorno, o programa gancho pode continua a aco, par-la, ou suspend-la de algum modo. Consulta ao captulo Hook Scripts [http://svnbook.redbean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks] no livro do Subversion para todos os detalhes sobre os ganchos que esto implementados. Esses scripts de gancho so executados pelo servidor que hospeda o repositrio. O TortoiseSVN tambm permite-te configurar scripts de gancho de cliente, que so executados localmente devido a certos eventos. Consultar Seco 4.30.8, Scripts de Gancho do Lado do Cliente para mais informaes. Amostras de scripts de gancho podem ser encontrados na pasta hooks do repositrio. Essas amostras de scritps so adequados para servidores Unix/Linux, mas precisam de ser modificados se o teu servidor Windows. O gancho pode ser um ficheiro batch ou um executvel. A amostra abaixo mostra um ficheiro batch que poder ser usado para implementar um gancho pre-revprop-change.

rem Only allow log messages to be changed. if "%4" == "svn:log" exit 0 echo Property '%4' cannot be changed >&2 exit 1 Podes observar que tudo o que for enviado para o stdout descartado. Se tu queres que uma mensagem aparea na caixa de dilogo Rejeio de Submisso, devers envi-la para o stderr. Num ficheiro batch isto obtido atravs do uso de >&2

3.4. Ligaes de CheckoutSe quiseres tornar o teu repositrio Subversion disponvel para outros, poders querer inc