TSVN poChecker

This tool, to be used before committing your work, should help you locate problems in translation files. Please consider it as work-in-progress, as we are still working on it.

First of all, it will help you find missing accelerators - Luebbe's translation status page shows counts but not strings themselves, so the table below will help you fix these problems.

The analysis also includes some other useful lists, it checks for instance for correct new line styles, untranslated strings and spelling mistakes. As we prefer to err on the side of caution, you may find a lot of false positives. Anyway I hope this will help you improve the quality of your translation.

Oto



For new translators

Please follow this link if you think you may help with translation.
-> TortoiseSVN translation


Precommit checker

You can upload file for check before you make actual commit, so you can fix errors in one commit.

Make sure you are going to check translation against proper branch.

Choose a file to upload:



Revision: 20088 of trunk

Last update: September 05 2010 17:08 CET (GMT+1/GMT+2(DST))
Go to STABLE.

Language GUI check DOC Author(s)
Flag PAR!! ACC! NLS UNT FUZ ESC Note
Portuguese, Brazil pt_BR 23 51 10 1371 257 1 1371/257 5 CRAb Group, Humberto Osório, Emanuele Santos, Guilherme Cantisano, Juliano Ravasi Ferraz, Victor Westmann, Conrado Quilles Gomes, Tiago Deliberali Santos, Leandro Herrera, Alex Vieira, Rafael Heise

GUI history graph:


history

TSVN doc history graph:


history

TMerge doc history graph:


history

Revision: 20088

PO Check (pt_BR)

Parameter strings test

This test is necessary to pass or you can expect crashing of TSVN - specially true when you use longer type as is in English like %s instead of %d, %ld instead of %d, etc. Also having more parameters lead to crash TSVN. When TSVN not crash, the information is still wrong. For example number instead of text.

Index Line English Line Native
1 121 Graphical User Interface 138(Fuzzy) '%s' travado pelo usuário '%s'.\n
2 4047 Merge Tracking Features 4550(Fuzzy) .mesclagem-esquerda.r%ld
3 5306 Conflicts on properties 5840(Fuzzy) Propriedades não versionadas na revisão %ld:\n
4 5897 The Merge Wizard - Reintegrate Merge 6481(Fuzzy) Reintegrar combinação %s em %s
5 6093 The Merge reintegrate Dialog 6684(Fuzzy) Reintegrar combinação %s em %s
6 6506 Delete or rename the file. 7112(Fuzzy) Não é possível apagar o ficheiro INI '%s'
7 6678 Modified working copy 7291(Fuzzy) Cópia de trabalho '%s' travada
8 6922 Exporting a Subversion Working Copy 7553(Fuzzy) '%s' não é uma cópia de trabalho
9 6930 unversioned 'working copy' 7562(Fuzzy) Cópia de trabalho '%s' travada
10 6999 Relocating a working copy 7635(Fuzzy) Cópia de trabalho '%s' travada
11 7011 repository URL changed 7649(Fuzzy) Repositório svn ilegal '%s'
12 7213 Set the Properties on Folders 7854(Fuzzy) Não foi possível setar permissão em '%s'
13 7535 Default checkout path 8187(Fuzzy) Caminho '%s' não encontrado
14 7675 Items added to the repository. 8339(Fuzzy) Não foi possível abrir repositório '%s'
15 7827 Current HEAD revision in the repository. 8497(Fuzzy) caminho '%s' não existe na revisão HEAD
16 8169 the conflicted file, the result of the merge operation 8879(Fuzzy) A última combinação tentou adicionar o arquivo '%s'
17 8892 version extraction 9646(Fuzzy) %s, versão %s\n
compilado %s, %s\n
\n
18 9216 True if the item is versioned. 10013(Fuzzy) Já existe um item versionado '%s'
19 9695 Use a nested working copy 10765(Fuzzy) '%s' não é uma cópia de trabalho
20 9727 Create a shortcut to a repository 10810(Fuzzy) Não foi possível abrir repositório '%s'
21 9763 Unversion a working copy 10853(Fuzzy) Cópia de trabalho '%s' travada
22 9771 Remove a working copy 10862(Fuzzy) Cópia de trabalho '%s' travada
23 9825 Redirect the upgrade check 10919(Fuzzy) Não foi possível verificar o diretório '%s'
Note: Line numbers are as in committed file, it may differ when you update to use newer .pot, also edited multi line messages may shift line position.

Total:23

Missing/Unexpected Key Accelerator test

This is accessibility test. Passing this test is recommended. If you are interesting in more details about accelerator key overlapping I may enable such test for your language, but in fact there not too much to do against it. According Luebbe and Stefan there is no problem about it you just have to use accelerator more time to select element and then use enter or space for activate button.

Index Line English Line Native
1 3651 Compare and blame with working BASE 4152(Fuzzy) Comparar e ver &autoria com a BASE de trabalho
2 4361 Difference with blame information 4881(Fuzzy) Comparar e ver &autoria com a BASE de trabalho
3 4549 Beyond Compare 5075(Fuzzy) &Comparar URLs
4 4557 Araxis Merge 5084(Fuzzy) &Caminhos de combinação
5 5226 Edit properties at HEAD revision 5757(Fuzzy) &Tempo limite, em segundos, antes de atualizar a última revisão
6 5274 auto-props 5807(Fuzzy) Ocultar &Automaticamente
7 5784 Merge a range of revisions 6365(Fuzzy) Combinar um intervalo de &revisões
8 5837 The Merge Wizard - Select Revision Range 6420(Fuzzy) &Para: (revisão e URL finais do intervalo para combinar)
9 6085 Merge a Completed Branch 6674(Fuzzy) A&grupar por ramo
10 6101 Feature Branch Maintenance 6693(Fuzzy) A&grupar por ramo
11 6265 unified diff 6862(Fuzzy) Comparação &unificada
12 6453 Compare and Blame with Working BASE 7057(Fuzzy) Comparar e ver &autoria com a BASE de trabalho
13 6662 Branch tip revision 7273(Fuzzy) C&riar um ramo/rótulo a partir da revisão
14 6706 Changing the View 7320(Fuzzy) &Tela inteira
15 6710 Group branches 7325(Fuzzy) &Iniciar Grupo
16 6738 Reduce cross lines 7355(Fuzzy) Reduzir cruzamento de &linhas
17 6746 Differential path names 7364(Fuzzy) Distinguir &caminhos
18 6754 Show all revisions 7373(Fuzzy) Mostrar tod&as as revisões
19 6762 Show HEAD revisions 7382(Fuzzy) &Mostrar últimas revisões
20 6770 Exact copy sources 7391(Fuzzy) Cópia e&xata das fontes
21 6778 Fold tags 7400(Fuzzy) Dobrar &rótulos
22 6786 Hide deleted paths 7409(Fuzzy) Ocultar caminhos &excluídos
23 6794 Hide unchanged branches 7418(Fuzzy) Ocultar &ramos não utilizados
24 6802 Show WC revision 7427(Fuzzy) Mostrar revisão da cópia de &trabalho
25 6810 Show WC modifications 7436(Fuzzy) &Mostrar alterações na cópia de trabalho
26 6938 The Export-from-URL Dialog 7571(Fuzzy) &Da Cópia de Trabalho na URL:
27 6974 Exporting a Change Tree 7609(Fuzzy) Reduzir árvore &seguinte
28 7403 Subversion configuration file 8046(Fuzzy) Arquivo de con&figuração do Subversion:
29 7459 Default number of log messages 8104(Fuzzy) &Número padrão de mensagens de log
30 7467 Font for log messages 8113(Fuzzy) &Fonte para mensagens de log:
31 7475 Short date / time format in log messages 8122(Fuzzy) Formato curto de &data/hora no histórico
32 7571 Use auto-completion of file paths and keywords 8227(Fuzzy) &Usar autocompletar para caminhos de arquivo e palavras-chave
33 7579 Timeout in seconds to stop the auto-completion parsing 8236(Fuzzy) &Tempo limite, em segundos, para parar a interpretação do autocompletar
34 7623 Contact the repository on startup 8283(Fuzzy) &Contatar o repositório ao iniciar
35 7999 SUBST drives 8684(Fuzzy) Unidades &Fixas
36 8305 Enable log caching 9040(Fuzzy) &Habilitar cache de log
37 8317 Allow ambiguous URLs 9053(Fuzzy) Permitir URLs &ambíguas
38 8325 Allow ambiguous UUIDs 9062(Fuzzy) Permitir &UUIDs ambíguos
39 8345 Timeout before updating the HEAD revision 9084(Fuzzy) &Tempo limite, em segundos, antes de atualizar a última revisão
40 8353 Days of inactivity until small caches get removed 9093(Fuzzy) &Dias de inatividade até que pequenos caches sejam removidos
41 8361 Maximum size of removed inactive caches 9102(Fuzzy) Tamanho &máximo [kByte] de um cache inativo removido
42 8369 Maximum number of tool failures before cache removal 9111(Fuzzy) Número máximo de &falhas da ferramenta até a remoção do cache
43 8676 Issue Tracker Integration 9426(Fuzzy) &Bugtraq (Integração com Gerenciador de Casos)
44 9792 group policies 10884(Fuzzy) &Iniciar Grupo
45 9990 Diff 11094 &Diferenças
46 9995 Show Log 11099 &Exibir Log
47 10000 Edit Conflicts 11104 &Editar Conflitos
48 10803 Repo Browser 11973 Navegador de &repositório
49 10896 Specific revision in repository 12101 &Revisão específica no repositório
50 10953 Create Repository Here 12169 Criar repositó&rio aqui
51 \n
svn diff PATH > patch-file\n
12223(Fuzzy) O caminho do arquivo de correção/diferença para aplicar para o diretório.
Note: Line numbers are as in committed file, it may differ when you update to use newer .pot, also edited multi line messages may shift line position.

Total:51

Differences in new line style

This tests if new line style from pot match localized new line style. This test may have false positives when English text has new line style inconsistence. Using more lines for Native when English use just one is also alowed for most of translation even here reported.

Index Line English Line Native
1 121 Graphical User Interface 121 '%s' travado pelo usuário '%s'.\n
2 Assuming your repository is located in <filename>c:\\repos\\TestRepo</filename>, and your server is called <filename>localhost</filename>, enter: <screen>\n
svn://localhost/repos/TestRepo\n
</screen> when prompted by the repo browser.
1463 Assumindo que seu repositório está localizado em <filename>c:\\repos\\TestRepo</filename>, e seu servidor é chamado de <filename>localhost</filename>, use: <screen>\n
svn://localhost/repos/TestRepo\n
</screen> quando pedido no navegador de repositório.
3 You can also increase security and save time entering URLs with svnserve by using the --root switch to set the root location and restrict access to a specified directory on the server: <screen>\n
svnserve.exe --daemon --root drive:\\path\\to\\repository\\root\n
</screen> Using the previous test as a guide, svnserve would now run as: <screen>\n
svnserve.exe --daemon --root c:\\repos\n
</screen> And in TortoiseSVN our repo-browser URL is now shortened to: <screen>\n
svn://localhost/TestRepo\n
</screen> Note that the --root switch is also needed if your repository is located on a different partition or drive than the location of svnserve on your server.
1467 Você pode também aumentar a segurança e poupar tempo digitando URLSs com o svnserve usando a opção --root para definir a pata principal e restringir o acesso para um diretório específico no servidor: <screen>\n
svnserve.exe --daemon --root drive:\\path\\to\\repository\\root\n
</screen> Usando o teste anterior como guia, svnserve poderá agora ser executado assim: <screen>\n
svnserve.exe --daemon --root c:\\repos\n
</screen> E no navegador de repositório do TortoiseSVN a URL é reduzida para: <screen>\n
svn://localhost/TestRepo\n
</screen> Note que a opção --root é também necessária se seu repositório está localizado em uma partição ou unidade diferente de onde o svnserve está no seu servidor.
4 To install svnserve as a native windows service, execute the following command all on one line to create a service which is automatically started when windows starts. <screen>\n
sc create svnserve binpath= \"c:\\svnserve\\svnserve.exe --service\n
--root c:\\repos\" displayname= \"Subversion\" depend= tcpip\n
start= auto\n
</screen> If any of the paths include spaces, you have to use (escaped) quotes around the path, like this: <screen>\n
sc create svnserve binpath= \"\n
\\\"C:\\Program Files\\Subversion\\bin\\svnserve.exe\\\"\n
--service --root c:\\repos\" displayname= \"Subversion\"\n
depend= tcpip start= auto\n
</screen> You can also add a description after creating the service. This will show up in the Windows Services Manager. <screen>\n
sc description svnserve \"Subversion server (svnserve)\"\n
</screen>
1483 Para instalar o svnserve como um serviço nativo no windows, execute o seguinte comando em uma única linha para criar um serviço que será iniciado automaticamente quando o windows iniciar.<screen>\n
sc create svnserve binpath= \"c:\\svnserve\\svnserve.exe --service \n
--root c:\\repos\" displayname= \"Subversion\" depend= tcpip \n
start= auto\n
</screen> Se qualquer caminho incluir espaços, você precisa usar (com barra invertida) aspas, como segue: <screen>\n
sc create svnserve binpath= \"\n
\\\"C:\\Arquivos de Programas\\Subversion\\bin\\svnserve.exe\\\"\n
--service --root c:\\repos\" displayname= \"Subversion\" \n
depend= tcpip start= auto\n
</screen> Você pode também adicionar uma descrição depois de criar o serviço. Ela será mostrada no Gerenciador de Serviços do Windows.. <screen>\n
sc description svnserve \"Servidor Subversion (svnserve)\"\n
</screen>
5 5306 Conflicts on properties 5306 Propriedades não versionadas na revisão %ld:\n
6 7007 URL changed 7007 Caminhos mudados:\n
7 7871 Selected Node Markers 7871 Tipo de Nó: diretório\n
8 8213 Saved Data Settings 8213 Ajustar preferências\n
Preferências
9 8892 version extraction 8892 %s, versão %s\n
compilado %s, %s\n
\n
10 9639 compare files 9639 Nível: arquivos\n
Note: Line numbers are as in committed file, it may differ when you update to use newer .pot, also edited multi line messages may shift line position.

Total:10

Not translated strings test

This tests if all strings has been translated. Translated mean that there in native string set. If English and native are same it is not marked as not translated, this just can happen.

Index Line English Line
1 125 When you list the changes to a file or folder, you can click on a revision to see the comments for that commit. You can also see a list of changed files - just double click on a file to see exactly what changed. 143
2 129 The commit dialog lists all the items that will be included in a commit, and each item has a checkbox so you can choose which items you want to include. Unversioned files can also be listed, in case you forgot to add that new file. 147
3 197 TortoiseSVN is an Open Source project developed under the GNU General Public License (GPL). It is free to download and free to use, either personally or commercially, on any number of PCs. 215
4 205 Development 224
5 269 for the log cache and revision graph 293
6 317 The explains how to install TortoiseSVN on your PC, and how to start using it straight away. 344
7 398 This section is aimed at people who would like to find out what TortoiseSVN is all about and give it a test drive. It explains how to install TortoiseSVN and set up a local repository, and it walks you through the most commonly used operations. 426
8 410 TortoiseSVN runs on Windows XP or higher and is available in both 32-bit and 64-bit flavours. If you are running 64-bit Windows you may want to install both versions. 438
9 434 Language packs are available which translate the TortoiseSVN user interface into many different languages. Please check for more information on how to install these. 464
10 446 Before we get stuck into working with some real files, it is important to get an overview of how subversion works and the terms that are used. 477
11 457 Subversion uses a central database which contains all your version-controlled files with their complete history. This database is referred to as the repository. The repository normally lives on a file server running the Subversion server program, which supplies content to Subversion clients (like TortoiseSVN) on request. If you only back up one thing, back up your repository as it is the definitive master copy of all your data. 488
12 466 This is where you do the real work. Every developer has his own working copy, sometimes known as a sandbox, on his local PC. You can pull down the latest version from the repository, work on it locally without affecting anyone else, then when you are happy with the changes you made commit them back to the repository. 497
13 470 A Subversion working copy does not contain the history of the project, but it does keep a copy of the files as they exist in the repository before you started making changes. This means that it is easy to check exactly what changes you have made. 501
14 479 You also need to know where to find TortoiseSVN because there is not much to see from the Start Menu. This is because TortoiseSVN is a Shell extension, so first of all, start Windows Explorer. Right click on a folder in Explorer and you should see some new entries in the context menu like this: 510
15 483 Go for a Test Drive 514
16 487 This section shows you how to try out some of the most commonly used features on a small test repository. Naturally it doesn't explain everything - this is just the Quick Start Guide after all. Once you are up and running you should take the time to read the rest of this user guide, which takes you through things in much more detail. It also explains more about setting up a proper Subversion server. 518
17 495 For a real project you will have a repository set up somewhere safe and a Subversion server to control it. For the purposes of this tutorial we are going to use Subversion's local repository feature which allows direct access to a repository created on your hard drive without needing a server at all. 526
18 499 First create a new empty directory on your PC. It can go anywhere, but in this tutorial we are going to call it C:\\svn_repos. Now right click on the new folder and from the context menu choose TortoiseSVNCreate Repository here.... The repository is then created inside the folder, ready for you to use. 530
19 503 The local repository feature is very useful for test and evaluation but unless you are working as a sole developer on one PC you should always use a proper Subversion server. It is tempting in a small company to avoid the work of setting up a server and just access your repository on a network share. Don't ever do that. You will lose data. Read to find out why this is a bad idea, and how to set up a server. 534
20 516 Now we have a repository, but it is completely empty at the moment. Let's assume I have a set of files in C:\\Projects\\Widget1 that I would like to add. Navigate to the Widget1 folder in Explorer and right click on it. Now select TortoiseSVNImport... which brings up a dialog A Subversion repository is referred to by URL, which allows us to specify a repository anywhere on the Internet. In this case we need to point to our own local repository which has a URL of file:///c:/svn_repos/Widget1 Note that there are 3 slashes after file: and that the forward slashes are used throughout. 547
21 520 The other important feature of this dialog is the Import Message box which allows you to enter a message describing what you are doing. When you come to look through your project history, these commit messages are a valuable guide to what changes have been made and why. In this case we can say something simple like Import the Widget1 project. Click on OK and the folder is added to your repository. 551
22 528 Now that we have a project in our repository, we need to create a working copy to use for day-to-day work. Note that the act of importing a folder does not automatically turn that folder into a working copy. The Subversion term for creating a fresh working copy is Checkout. We are going to checkout the Widget1 folder of our repository into a development folder on the PC called C:\\Projects\\Widget1-Dev. Create that folder, then right click on it and select TortoiseSVNCheckout.... Enter the URL to checkout, in this case file:///c:/svn_repos/Widget1 and click on OK. Our development folder is then populated with files from the repository. 559
23 532 You will notice that the appearance of this folder is different from our original folder. Every file has a green check mark in the bottom left corner. These are TortoiseSVN's status icons which are only present in a working copy. The green state indicates that the file is unchanged from the version in the repository. 563
24 540 Time to get to work. In the Widget1-Dev we start editing files - let's say we make changes to Widget1.c and ReadMe.txt. Notice that the icon overlays on these files have now changed to red, indicating that changes have been made locally. 571
25 552 OK, so we are happy with the changes, let's update the repository. This action is referred to as a Commit of the changes. Right click on the Widget1-Dev folder and select TortoiseSVNCommit. The commit dialog lists the changed files, each with a checkbox. You might want to choose only a subset of those files, but in this case we are going to commit the changes to both files. Enter up a message to describe what the change is all about and click on OK. The progress dialog shows the files being uploaded to the repository and you're done. 584
26 560 As the project develops you will need to add new files - let's say you add some new features in Extras.c and add a reference in the existing Makefile. Right click on the folder and TortoiseSVNAdd. The Add dialog now shows you all unversioned files and you can select which ones you want to add. Another way of adding files would be to right click on the file itself and select TortoiseSVNAdd. 592
27 564 Now when you go to commit the folder, the new file shows up as Added and the existing file as Modified. Note that you can double click on the modified file to check exactly what changes were made. 596
28 576 One of the most useful features of TortoiseSVN is the Log dialog. This shows you a list of all the commits you made to a file or folder, and shows those detailed commit messages that you entered ;-) OK, so I cheated a little here and used a screenshot from the TortoiseSVN repository. 609
29 580 The top pane shows a list of revisions committed along with the start of the commit message. If you select one of these revisions, the middle pane will show the full log message for that revision and the bottom pane will show a list of changed files and folders. 613
30 584 Each of these panes has a context menu which provides you with lots more ways of using the information. In the bottom pane you can double click on a file to see exactly what changes were made in that revision. Read to get the full story. 617
31 592 One feature of all revision control systems is that they let you undo changes that you made previously. As you would expect, TortoiseSVN makes this easy to access. 625
32 596 If you want to get rid of changes that you have not yet committed and reset your file to the way it was before you started editing, TortoiseSVNRevert is your friend. This discards your changes (to the Recycle bin, just in case) and reverts to the committed version you started with. If you want to get rid of just some of the changes, you can use TortoiseMerge to view the differences and selectively revert changed lines. 629
33 608 This guide has given you a very quick tour of some of TortoiseSVN's most important and useful features, but of course there is far more that we haven't covered. We strongly recommend that you take the time to read the rest of this manual, especially which gives you a lot more detail on day-to-day operations. 642
34 612 We have taken a lot of trouble to make sure that it is both informative and easy to read, but we recognise that there is a lot of it! Take your time and don't be afraid to try things out on a test repository as you go along. The best way to learn is by using it. 646
35 1115 You will also be asked whether you want to create a directory structure within the repository. Find out about layout options in . 1193
36 1119 TortoiseSVN will set a custom folder icon when it creates a repository so you can identify local repositories more easily. If you create a repository using the official command line client this folder icon is not assigned. 1197
37 1208 Because this layout is so commonly used, when you create a new repository using TortoiseSVN, it will also offer to create the directory structure for you. 1295
38 1327 If a hook script rejects your commit then its decision is final. But you can build an override mechanism into the script itself using the Magic Word technique. If the script wants to reject the operation it first scans the log message for a special pass phrase, either a fixed phrase or perhaps the filename with a prefix. If it finds the magic word then it allows the commit to proceed. If the phrase is not found then it can block the commit with a message like You didn't say the magic word :-) 1479
39 1523 One way to overcome this is to create a password database: \n
[general]\n
anon-access = none\n
auth-access = write\n
password-db = userfile\n
Where userfile is a file which exists in the same directory as svnserve.conf. This file can live elsewhere in your file system (useful for when you have multiple repositories which require the same access rights) and may be referenced using an absolute path, or a path relative to the conf directory. If you include a path, it must be written /the/unix/way. Using \\ or drive letters will not work. The userfile should have a structure of: \n
[users]\n
username = password\n
...\n
This example would deny all access for unauthenticated (anonymous) users, and give read-write access to users listed in userfile.
1764
40 1527 If you maintain multiple repositories using the same password database, the use of an authentication realm will make life easier for users, as TortoiseSVN can cache your credentials so that you only have to enter them once. More information can be found in the Subversion book, specifically in the sections Create a 'users' file and realm and Client Credentials Caching 1778
41 1543 The Cyrus Simple Authentication and Security Layer is open source software written by Carnegie Mellon University. It adds generic authentication and encryption capabilities to any network protocol, and as of Subversion 1.5 and later, both the svnserve server and TortoiseSVN client know how to make use of this library. 1794
42 1547 For a more complete discussion of the options available, you should look at the Subversion book in the section Using svnserve with SASL. If you are just looking for a simple way to set up secure authentication and encryption on a Windows server, so that your repository can be accessed safely over the big bad Internet, read on. 1798
43 1555 To activate specific SASL mechanisms on the server, you'll need to do three things. First, create a [sasl] section in your repository's svnserve.conf file, with this key-value pair: \n
use-sasl = true\n
1806
44 1559 Second, create a file called svn.conf in a convenient location - typically in the directory where subversion is installed. 1813
45 1563 Thirdly, create two new registry entries to tell SASL where to find things. Create a registry key named [HKEY_LOCAL_MACHINE\\SOFTWARE\\Carnegie Mellon\\Project Cyrus\\SASL Library] and place two new string values inside it: SearchPath set to the directory path containing the sasl*.dll plug-ins (normally in the Subversion install directory), and ConfFile set to the directory containing the svn.conf file. If you used the CollabNet installer, these registry keys will already have been created for you. 1817
46 1567 Edit the svn.conf file to contain the following: \n
pwcheck_method: auxprop\n
auxprop_plugin: sasldb\n
mech_list: DIGEST-MD5\n
sasldb_path: C:\\TortoiseSVN\\sasldb\n
The last line shows the location of the authentication database, which is a file called sasldb. This could go anywhere, but a convenient choice is the repository parent path. Make sure that the svnserve service has read access to this file.
1821
47 1571 If svnserve was already running, you will need to restart it to ensure it reads the updated configuration. 1831
48 1575 Now that everything is set up, all you need to do is create some users and passwords. To do this you need the saslpasswd2 program. If you used the CollabNet installer, that program will be in the install directory. Use a command something like this: \n
saslpasswd2 -c -f C:\\TortoiseSVN\\sasldb -u realm username\n
The -f switch gives the database location, realm must be the same as the value you defined in your repository's svnserve.conf file, and username is exactly what you expect it to be. Note that the realm is not allowed to contain space characters.
1835
49 1579 You can list the usernames stored in the database using the sasldblistusers2 program. 1842
50 1587 To enable or disable different levels of encryption, you can set two values in your repository's svnserve.conf file: \n
[sasl]\n
use-sasl = true\n
min-encryption = 128\n
max-encryption = 256\n
1850
51 1591 The min-encryption and max-encryption variables control the level of encryption demanded by the server. To disable encryption completely, set both values to 0. To enable simple checksumming of data (i.e., prevent tampering and guarantee data integrity without encryption), set both values to 1. If you wish to allow (but not require) encryption, set the minimum value to 0, and the maximum value to some bit-length. To require encryption unconditionally, set both values to numbers greater than 1. In our previous example, we require clients to do at least 128-bit encryption, but no more than 256-bit encryption. 1860
52 1599 Another way to authenticate users with a svnserve based server is to use a secure shell (SSH) to tunnel requests through. It is not as simple to set up as SASL, but it may be useful is some cases. 1868
53 1603 With this approach, svnserve is not run as a daemon process, rather, the secure shell starts svnserve for you, running it as the SSH authenticated user. To enable this, you need a secure shell daemon on your server. 1872
54 1607 A basic method for setting up your server is given in . You can find other SSH topics within the FAQ by searching for SSH. 1876
55 1611 Further information about svnserve can be found in the Version Control with Subversion. 1880
56 1615 Path-based Authorization with svnserve 1884
57 1619 Starting with Subversion 1.3, svnserve supports the same mod_authz_svn path-based authorization scheme that is available with the Apache server. You need to edit the conf/svnserve.conf file in your repository directory and add a line referring to your authorization file. \n
[general]\n
authz-db = authz\n
Here, authz is a file you create to define the access permissions. You can use a separate file for each repository, or you can use the same file for several repositories. Read for a description of the file format.
1888
58 1631 The most flexible of all possible server setups for Subversion is the Apache based one. Although a bit more complicated to set up, it offers benefits that other servers cannot: 1904
59 1640 The Apache based Subversion server uses the WebDAV protocol which is supported by many other programs as well. You could e.g. mount such a repository as a Web folder in the Windows explorer and then access it like any other folder in the file system. 1913
60 1648 You can point your browser to the URL of your repository and browse the contents of it without having a Subversion client installed. This gives access to your data to a much wider circle of users. 1921
61 1657 You can use any authentication mechanism Apache supports, including SSPI and LDAP. 1930
62 1665 Since Apache is very stable and secure, you automatically get the same security for your repository. This includes SSL encryption. 1938
63 1673 Please note that Windows XP without the service pack 1 will lead to bogus network data and could therefore corrupt your repository! 1946
64 1677 Download the latest version of the Apache web server from http://httpd.apache.org/download.cgi. Make sure that you download the version 2.2.x - the version 1.3.xx won't work! 1950
65 1681 The msi installer for Apache can be found by clicking on other files, then browse to binaries/win32. You may want to choose the msi file apache-2.2.x-win32-x86-openssl-0.9.x.msi (the one that includes OpenSSL). 1954
66 1685 Once you have the Apache2 installer you can double click on it and it will guide you through the installation process. Make sure that you enter the server-URL correctly (if you don't have a DNS name for your server just enter the IP-address). I recommend to install Apache for All Users, on Port 80, as a Service. Note: if you already have IIS or any other program running which listens on port 80 the installation might fail. If that happens, go to the programs directory, \\Apache Group\\Apache2\\conf and locate the file httpd.conf. Edit that file so that Listen 80 is changed to a free port, e.g. Listen 81. Then restart the installation - this time it should finish without problems. 1958
67 1689 Now test if the Apache web server is running correctly by pointing your web browser to http://localhost/ - a preconfigured Website should show up. 1962
68 1693 If you decide to install Apache as a service, be warned that by default it will run as the local system account. It would be a more secure practice for you to create a separate account for Apache to run as. 1966
69 1697 Make sure that the account on the server that Apache is running as has an explicit entry in the repository directory's access control list (right-click directory | properties | security), with full control. Otherwise, users will not be able to commit their changes. 1970
70 1701 Even if Apache runs as local system, you still need such an entry (which will be the SYSTEM account in this case). 1974
71 1705 If Apache does not have this permission set up, your users will get Access denied error messages, which show up in the Apache error log as error 500. 1978
72 1709 The first thing you need before installing Apache is a computer with Windows 2000, Windows XP+SP1, Windows 2003, Vista or Server 2008. 1982
73 1717 Download the latest version of the Subversion Win32 binaries for Apache. Be sure to get the right version to integrate with your version of Apache, otherwise you will get an obscure error message when you try to restart. If you have Apache 2.2.x go to http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100. 1990
74 1721 Run the Subversion installer and follow the instructions. If the Subversion installer recognized that you've installed Apache, then you're almost done. If it couldn't find an Apache server then you have to do some additional steps. 1994
75 1730 Using the windows explorer, go to the installation directory of Subversion (usually c:\\program files\\Subversion) and find the files /httpd/mod_dav_svn.so and mod_authz_svn.so. Copy these files to the Apache modules directory (usually c:\\program files\\apache group\\apache2\\modules ). 2003
76 1734 Copy the file /bin/libdb*.dll and /bin/intl3_svn.dll from the Subversion installation directory to the Apache bin directory. 2007
77 1738 Edit Apache's configuration file (usually C:\\Program Files\\Apache Group\\Apache2\\conf\\httpd.conf) with a text editor such as Notepad and make the following changes: 2011
78 1742 Uncomment (remove the '#' mark) the following lines: \n
#LoadModule dav_fs_module modules/mod_dav_fs.so\n
#LoadModule dav_module modules/mod_dav.so\n
Add the following two lines to the end of the LoadModule section. \n
LoadModule dav_svn_module modules/mod_dav_svn.so\n
LoadModule authz_svn_module modules/mod_authz_svn.so\n
2015
79 1750 At the end of the config file add the following lines: \n
&lt;Location /svn&gt;\n
DAV svn\n
SVNListParentPath on\n
SVNParentPath D:\\SVN\n
#SVNIndexXSLT \"/svnindex.xsl\"\n
AuthType Basic\n
AuthName \"Subversion repositories\"\n
AuthUserFile passwd\n
#AuthzSVNAccessFile svnaccessfile\n
Require valid-user\n
&lt;/Location&gt;\n
This configures Apache so that all your Subversion repositories are physically located below D:\\SVN. The repositories are served to the outside world from the URL: http://MyServer/svn/ . Access is restricted to known users/passwords listed in the passwd file.
2030
80 1754 To create the passwd file, open the command prompt (DOS-Box) again, change to the apache2 folder (usually c:\\program files\\apache group\\apache2) and create the file by entering \n
bin\\htpasswd -c passwd &lt;username&gt;\n
This will create a file with the name passwd which is used for authentication. Additional users can be added with \n
bin\\htpasswd passwd &lt;username&gt;\n
2047
81 1762 Point your browser to http://MyServer/svn/MyNewRepository (where MyNewRepository is the name of the Subversion repository you created before). If all went well you should be prompted for a username and password, then you can see the contents of your repository. 2060
82 1766 Now you have set up Apache and Subversion, but Apache doesn't know how to handle Subversion clients like TortoiseSVN yet. To get Apache to know which URL will be used for Subversion repositories you have to edit the Apache configuration file (usually located in c:\\program files\\apache group\\apache2\\conf\\httpd.conf) with any text editor you like (e.g. Notepad): 2064
83 1796 means that the Subversion repositories are available from the URL 2094
84 1800 tells Apache which module will be responsible to serve that URL - in this case the Subversion module. 2098
85 1804 For Subversion version 1.3 and higher, this directive enables listing all the available repositories under . 2102
86 1812 tells Subversion to look for repositories below 2110
87 1816 Used to make the browsing with a web browser prettier. 2114
88 1820 is to activate basic authentication, i.e. Username/password 2118
89 1824 is used as an information whenever an authentication dialog pops up to tell the user what the authentication is for 2122
90 1828 specifies which password file to use for authentication 2126
91 1832 Location of the Access file for paths inside a Subversion repository 2130
92 1836 specifies that only users who entered a correct username/password are allowed to access the URL 2134
93 1840 If you want your repository to have read access for everyone but write access only for specific users you can change the line \n
Require valid-user\n
to \n
&lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;\n
Require valid-user\n
&lt;/LimitExcept&gt;\n
2138
94 1844 Using a passwd file limits and grants access to all of your repositories as a unit. If you want more control over which users have access to each folder inside a repository you can uncomment the line \n
#AuthzSVNAccessFile svnaccessfile\n
and create a Subversion access file. Apache will make sure that only valid users are able to access your /svn location, and will then pass the username to Subversion's AuthzSVNAccessFile module so that it can enforce more granular access based upon rules listed in the Subversion access file. Note that paths are specified either as repos:path or simply path. If you don't specify a particular repository, that access rule will apply to all repositories under SVNParentPath. The format of the authorization-policy file used by mod_authz_svn is described in
2149
95 1848 To make browsing the repository with a web browser 'prettier', uncomment the line \n
#SVNIndexXSLT \"/svnindex.xsl\"\n
and put the files svnindex.xsl, svnindex.css and menucheckout.ico in your document root directory (usually C:/Program Files/Apache Group/Apache2/htdocs). The directory is set with the DocumentRoot directive in your Apache config file.
2156
96 1852 You can get those three files directly from our source repository at http://tortoisesvn.googlecode.com/svn/trunk/contrib/svnindex. ( explains how to access the TortoiseSVN source repository). 2163
97 1856 The XSL file from the TortoiseSVN repository has a nice gimmick: if you browse the repository with your web browser, then every folder in your repository has an icon on the right shown. If you click on that icon, the TortoiseSVN checkout dialog is started for this URL. 2167
98 1860 A short explanation of what you just entered: But that's just an example. There are many, many more possibilities of what you can do with the Apache web server. 2171
99 1872 If you used the SVNParentPath directive then you don't have to change the Apache config file every time you add a new Subversion repository. Simply create the new repository under the same location as the first repository and you're done! In my company I have direct access to that specific folder on the server via SMB (normal windows file access). So I just create a new folder there, run the TortoiseSVN command TortoiseSVNCreate repository here... and a new project has a home... 2183
100 1876 If you are using Subversion 1.3 or later, you can use the SVNListParentPath on directive to allow Apache to produce a listing of all available projects if you point your browser at the parent path rather than at a specific repository. 2187
101 1888 The mod_authz_svn module permits fine-grained control of access permissions based on user names and repository paths. This is available with the Apache server, and as of Subversion 1.3 it is available with svnserve as well. 2199
102 1892 An example file would look like this: \n
[groups]\n
admin = john, kate\n
devteam1 = john, rachel, sally\n
devteam2 = kate, peter, mark\n
docs = bob, jane, mike\n
training = zak\n
# Default access rule for ALL repositories\n
# Everyone can read, admins can write, Dan German is excluded.\n
[/]\n
* = r\n
@admin = rw\n
dangerman =\n
# Allow developers complete access to their project repos\n
[proj1:/]\n
@devteam1 = rw\n
[proj2:/]\n
@devteam2 = rw\n
[bigproj:/]\n
@devteam1 = rw\n
@devteam2 = rw\n
trevor = rw\n
# Give the doc people write access to all the docs folders\n
[/trunk/doc]\n
@docs = rw\n
# Give trainees write access in the training repository only\n
[TrainingRepos:/]\n
@training = rw\n
2203
103 1896 Note that checking every path can be an expensive operation, particularly in the case of the revision log. The server checks every changed path in each revision and checks it for readability, which can be time-consuming on revisions which affect large numbers of files. 2236
104 1900 Authentication and authorization are separate processes. If a user wants to gain access to a repository path, she has to meet both, the usual authentication requirements and the authorization requirements of the access file. 2240
105 1916 As you might have noticed you need to make a username/password entry in the passwd file for each user separately. And if (for security reasons) you want your users to periodically change their passwords you have to make the change manually. 2257
106 1920 But there's a solution for that problem - at least if you're accessing the repository from inside a LAN with a windows domain controller: mod_auth_sspi! 2261
107 1932 The original SSPI module was offered by Syneapps including source code. But the development for it has been stopped. But don't despair, the community has picked it up and improved it. It has a new home on SourceForge. 2273
108 1936 Download the module which matches your apache version, then copy the file mod_auth_sspi.so into the Apache modules folder. 2277
109 1940 Edit the Apache config file: add the line \n
LoadModule sspi_auth_module modules/mod_auth_sspi.so\n
to the LoadModule section. Make sure you insert this line before the line \n
LoadModule auth_module modules/mod_auth.so\n
2281
110 1944 To make the Subversion location use this type of authentication you have to change the line \n
AuthType Basic\n
to \n
AuthType SSPI\n
also you need to add \n
SSPIAuth On\n
SSPIAuthoritative On\n
SSPIDomain &lt;domaincontroller&gt;\n
SSPIOmitDomain on\n
SSPIUsernameCase lower\n
SSPIPerRequestAuth on\n
SSPIOfferBasic On\n
within the &lt;Location /svn&gt; block. If you don't have a domain controller, leave the name of the domain control as &lt;domaincontroller&gt;.
2290
111 1948 Note that if you are authenticating using SSPI, then you don't need the AuthUserFile line to define a password file any more. Apache authenticates your username and password against your windows domain instead. You will need to update the users list in your svnaccessfile to reference DOMAIN\\username as well. 2307
112 1952 The SSPI authentication is only enabled for SSL secured connections (https). If you're only using normal http connections to your server, it won't work. 2311
113 1956 To enable SSL on your server, see the chapter: 2315
114 1960 Subversion AuthzSVNAccessFile files are case sensitive in regard to user names (JUser is different from juser). 2319
115 1964 In Microsoft's world, Windows domains and user names are not case sensitive. Even so, some network administrators like to create user accounts in CamelCase (e.g. JUser). 2323
116 1968 This difference can bite you when using SSPI authentication as the windows domain and user names are passed to Subversion in the same case as the user types them in at the prompt. Internet Explorer often passes the username to Apache automatically using whatever case the account was created with. 2327
117 1972 The end result is that you may need at least two entries in your AuthzSVNAccessFile for each user -- a lowercase entry and an entry in the same case that Internet Explorer passes to Apache. You will also need to train your users to also type in their credentials using lower case when accessing repositories via TortoiseSVN. 2331
118 1976 Apache's Error and Access logs are your best friend in deciphering problems such as these as they will help you determine the username string passed onto Subversion's AuthzSVNAccessFile module. You may need to experiment with the exact format of the user string in the svnaccessfile (e.g. DOMAIN\\user vs. DOMAIN//user) in order to get everything working. 2335
119 1988 It is also possible to have more than one authentication source for your Subversion repository. To do this, you need to make each authentication type non-authoritative, so that Apache will check multiple sources for a matching username/password. 2347
120 1992 A common scenario is to use both Windows domain authentication and a passwd file, so that you can provide SVN access to users who don't have a Windows domain login. 2351
121 1996 To enable both Windows domain and passwd file authentication, add the following entries within the &lt;Location&gt; block of your Apache config file: \n
AuthBasicAuthoritative Off\n
SSPIAuthoritative Off\n
2355
122 2000 Here is an example of the full Apache configuration for combined Windows domain and passwd file authentication: \n
&lt;Location /svn&gt;\n
DAV svn\n
SVNListParentPath on\n
SVNParentPath D:\\SVN\n
\n
AuthName \"Subversion repositories\"\n
AuthzSVNAccessFile svnaccessfile.txt\n
\n
# NT Domain Logins.\n
AuthType SSPI\n
SSPIAuth On\n
SSPIAuthoritative Off\n
SSPIDomain &lt;domaincontroller&gt;\n
SSPIOfferBasic On\n
\n
# Htpasswd Logins.\n
AuthType Basic\n
AuthBasicAuthoritative Off\n
AuthUserFile passwd\n
\n
Require valid-user\n
&lt;/Location&gt;\n
2363
123 2012 Even though Apache 2.2.x has OpenSSL support, it is not activated by default. You need to activate this manually. 2399
124 2016 In the apache config file, uncomment the lines: \n
#LoadModule ssl_module modules/mod_ssl.so\n
and at the bottom \n
#Include conf/extra/httpd-ssl.conf\n
then change the line (on one line) \n
SSLMutex \"file:C:/Program Files/Apache Software Foundation/\\\n
Apache2.2/logs/ssl_mutex\"\n
to \n
SSLMutex default\n
2403
125 2020 Next you need to create an SSL certificate. To do that open a command prompt (DOS-Box) and change to the Apache folder (e.g. C:\\program files\\apache group\\apache2) and type the following command: \n
bin\\openssl req -config conf\\openssl.cnf -new -out my-server.csr\n
You will be asked for a passphrase. Please don't use simple words but whole sentences, e.g. a part of a poem. The longer the phrase the better. Also you have to enter the URL of your server. All other questions are optional but we recommend you fill those in too.
2417
126 2024 Normally the privkey.pem file is created automatically, but if it isn't you need to type this command to generate it: \n
bin\\openssl genrsa -out conf\\privkey.pem 2048\n
2424
127 2028 Next type the commands \n
bin\\openssl rsa -in conf\\privkey.pem -out conf\\server.key\n
and (on one line) \n
bin\\openssl req -new -key conf\\server.key -out conf\\server.csr \\\n
-config conf\\openssl.cnf\n
and then (on one line) \n
bin\\openssl x509 -in conf\\server.csr -out conf\\server.cert\n
-req -signkey conf\\server.key -days 4000\n
This will create a certificate which will expire in 4000 days. And finally enter (on one line): \n
bin\\openssl x509 -in conf\\server.cert -out conf\\server.der.crt\n
-outform DER\n
These commands created some files in the Apache conf folder (server.der.crt, server.csr, server.key, .rnd, privkey.pem, server.cert).
2431
128 2036 Point your browser to https://servername/svn/project ... 2451
129 2044 If you're securing your server with SSL and use authentication against a windows domain you will encounter that browsing the repository with the Internet Explorer doesn't work anymore. Don't worry - this is only the Internet Explorer not able to authenticate. Other browsers don't have that problem and TortoiseSVN and any other Subversion client are still able to authenticate. 2459
130 2048 define a separate &lt;Location /path&gt; directive in the Apache config file, and add the SSPIBasicPreferred On. This will allow IE to authenticate again, but other browsers and Subversion won't be able to authenticate against that location. 2463
131 2052 Offer browsing with unencrypted authentication (without SSL) too. Strangely IE doesn't have any problems with authenticating if the connection is not secured with SSL. 2467
132 2056 In the SSL \"standard\" setup there's often the following statement in Apache's virtual SSL host: \n
SetEnvIf User-Agent \".*MSIE.*\" \\\n
nokeepalive ssl-unclean-shutdown \\\n
downgrade-1.0 force-response-1.0\n
There are (were?) good reasons for this configuration, see http://www.modssl.org/docs/2.8/ssl_faq.html#ToC49 But if you want NTLM authentication you have to use keepalive. If You uncomment the whole SetEnvIf you should be able to authenticate IE with windows authentication over SSL against the Apache on Win32 with included mod_auth_sspi.
2471
133 2060 If you still want to use IE to browse the repository you can either: 2480
134 2068 When you've set up SSL to make your repository more secure, you might want to disable the normal access via non-SSL (http) and only allow https access. To do this, you have to add another directive to the Subversion &lt;Location&gt; block: SSLRequireSSL. 2488
135 2072 An example &lt;Location&gt; block would look like this: \n
&lt;Location /svn&gt;\n
DAV svn\n
SVNParentPath D:\\SVN\n
SSLRequireSSL\n
AuthType Basic\n
AuthName \"Subversion repositories\"\n
AuthUserFile passwd\n
#AuthzSVNAccessFile svnaccessfile\n
Require valid-user\n
&lt;/Location&gt;\n
2492
136 2084 In some server configurations you may need to setup a single server containing 2 virtual SSL hosts: The first one for public web access, with no requirement for a client certificate. The second one to be secure with a required client certificate, running a Subversion server. 2516
137 2088 Adding an SSLVerifyClient Optional directive to the per-server section of the Apache configuration (i.e. outside of any VirtualHost and Directory blocks) forces Apache to request a client Certificate in the initial SSL handshake. Due to a bug in mod_ssl it is essential that the certificate is requested at this point as it does not work if the SSL connection is re-negotiated. 2520
138 2092 The solution is to add the following directive to the virtual host directory that you want to lock down for Subversion: \n
SSLRequire %{SSL_CLIENT_VERIFY} eq \"SUCCESS\"\n
This directive grants access to the directory only if a client certificate was received and verified successfully.
2524
139 2096 To summarise, the relevant lines of the Apache configuration are: \n
SSLVerifyClient Optional\n
\n
### Virtual host configuration for the PUBLIC host\n
### (not requiring a certificate)\n
\n
&lt;VirtualHost 127.0.0.1:443&gt;\n
&lt;Directory \"pathtopublicfileroot\"&gt;\n
&lt;/Directory&gt;\n
&lt;/VirtualHost&gt;\n
\n
### Virtual host configuration for SUBVERSION\n
### (requiring a client certificate)\n
&lt;VirtualHost 127.0.0.1:443&gt;\n
&lt;Directory \"subversion host root path\"&gt;\n
SSLRequire %{SSL_CLIENT_VERIFY} eq \"SUCCESS\"\n
&lt;/Directory&gt;\n
\n
&lt;Location /svn&gt;\n
DAV svn\n
SVNParentPath /pathtorepository\n
&lt;/Location&gt;\n
&lt;/VirtualHost&gt;\n
2531
140 2285 If you want to clear authentication for one realm only then you will have to dig into those directories, find the file which contains the information you want to clear and delete the file. 2744
141 2456 Select a directory in windows explorer where you want to place your working copy. Right click to pop up the context menu and select the command TortoiseSVNCheckout..., which brings up the following dialog box: If you enter a folder name that does not yet exist, then a directory with that name is created. 2933
142 2468 Checkout the entire tree, including all child folders and sub-folders. 2945
143 2476 Checkout the specified directory, including all files and child folders, but do not populate the child folders. 2954
144 2484 Checkout the specified directory, including all files but do not checkout any child folders. 2962
145 2492 Checkout the directory only. Do not populate it with files or child folders. 2970
146 2502 Retain the depth specified in the working copy. This option is not used in the checkout dialog, but it is the default in all other dialogs which have a depth setting. 2980
147 2510 Used to reduce working copy depth after a folder has already been populated. This option is only available in the Update to revision dialog. 2988
148 2514 You can choose the depth you want to checkout, which allows you to specify the depth of recursion into child folders. If you want just a few sections of a large tree, You can checkout the top level folder only, then update selected folders recursively. 2992
149 2518 If you check out a sparse working copy (i.e., by choosing something other than fully recursive for the checkout depth), you can fetch additional sub-folders by using the repository browser () or the check for modifications dialog (). 2996
150 2522 In windows explorer, Right click on the checked out folder, then use TortoiseSVNRepo-Browser to bring up the repository browser. Find the sub-folder you would like to add to your working copy, then use Context menuUpdate item to revision... That menu will only be visible if the selected item does not exist yet in your working copy, but the parent item does exist. 3000
151 2526 In the check for modifications dialog, first click on the button Check repository. The dialog will show all the files and folders which are in the repository but which you have not checked out as remotely added. Right click on the folder(s) you would like to add to your working copy, then use Context menuUpdate. 3004
152 2530 This feature is very useful when you only want to checkout parts of a large tree, but you want the convenience of updating a single working copy. Suppose you have a large tree which has sub-folders Project01 to Project99, and you only want to checkout Project03, Project25 and Project76/SubProj. Use these steps: 3008
153 2534 Checkout the parent folder with depth Only this item You now have an empty top level folder. 3012
154 2538 Select the new folder and use TortoiseSVNRepo browser to display the repository content. 3016
155 2542 Right click on Project03 and Context menuUpdate item to revision.... Keep the default settings and click on OK. You now have that folder fully populated. 3020
156 2546 Repeat the same process for Project25. 3024
157 2550 Navigate to Project76/SubProj and do the same. This time note that the Project76 folder has no content except for SubProj, which itself is fully populated. Subversion has created the intermediate folders for you without populating them. 3028
158 2558 Once you have checked out a working copy to a particular depth you can change that depth later to get more or less content using Context menuUpdate item to revision.... 3036
159 2566 Pre-1.5 servers do not understand the working copy depth request, so they cannot always deal with requests efficiently. The command will still work, but an older server may send all the data, leaving the client to filter out what is not required, which may mean a lot of network traffic. If possible you should upgrade your server to 1.5. 3044
160 2570 If the project contains references to external projects which you do not want checked out at the same time, use the Omit externals checkbox. 3048
161 2574 If Omit externals is checked, or if you wish to increase the depth value, you will have to perform updates to your working copy using TortoiseSVNUpdate to Revision... instead of TortoiseSVNUpdate. The standard update will include all externals and keep the existing depth. 3052
162 2578 It is recommended that you check out only the trunk part of the directory tree, or lower. If you specify the parent path of the directory tree in the URL then you might end up with a full hard disk since you will get a copy of the entire repository tree including every branch and tag of your project! 3056
163 2586 Sometimes you may want to create a local copy without any of those .svn directories, e.g. to create a zipped tarball of your source. Read to find out how to do that. 3064
164 2639 If you have modified files which have been included from a different repository using svn:externals, those changes cannot be included in the same atomic commit. A warning symbol below the file list tells you if this has happened, and the tooltip explains that those external files have to be committed separately. 3117
165 2647 add the file (or a wildcard extension) to the list of files to exclude on the settings page. This will affect every working copy you have. 3125
166 2651 add the file to the svn:ignore list using TortoiseSVNAdd to ignore list This will only affect the directory on which you set the svn:ignore property. Using the SVN Property Dialog, you can alter the svn:ignore property for a directory. 3129
167 2667 The columns displayed in the bottom pane are customizable. If you right click on any column header you will see a context menu allowing you to select which columns are displayed. You can also change column width by using the drag handle which appears when you move the mouse over a column boundary. These customizations are preserved, so you will see the same headings next time. 3145
168 2671 By default when you commit changes, any locks that you hold on files are released automatically after the commit succeeds. If you want to keep those locks, make sure the Keep locks checkbox is checked. The default state of this checkbox is taken from the no_unlock option in the Subversion configuration file. Read for information on how to edit the Subversion configuration file. 3149
169 2675 You can drag files into the commit dialog from elsewhere, so long as the working copies are checked out from the same repository. For example, you may have a huge working copy with several explorer windows open to look at distant folders of the hierarchy. If you want to avoid committing from the top level folder (with a lengthy folder crawl to check for changes) you can open the commit dialog for one folder and drag in items from the other windows to include within the same atomic commit. 3153
170 2689 Sometimes files get renamed outside of Subversion, and they show up in the file list as a missing file and an unversioned file. To avoid losing the history you need to notify Subversion about the connection. Simply select both the old name (missing) and the new name (unversioned) and use Context MenuRepair Move to pair the two files as a rename. 3167
171 2699 If you made a copy of a file but forgot to use the Subversion command to do so, you can repair that copy so the new file doesn't lose its history. Simply select both the old name (normal or modified) and the new name (unversioned) and use Context MenuRepair Copy to pair the two files as a copy. 3177
172 2708 The commit dialog supports Subversion's changelist feature to help with grouping related files together. Find out about this feature in . 3186
173 2716 Sometimes you have versioned files that change frequently but that you really don't want to commit. Sometimes this indicates a flaw in your build process - why are those files versioned? should you be using template files? But occasionally it is inevitable. A classic reason is that your IDE changes a timestamp in the project file every time you build. The project file has to be versioned as it includes all the build settings, but it doesn't need to be committed just because the timestamp changed. 3194
174 2720 To help out in awkward cases like this, we have reserved a changelist called ignore-on-commit. Any file added to this changelist will automatically be unchecked in the commit dialog. You can still commit changes, but you have to select it manually in the commit dialog. 3198
175 2728 Be sure to enter a log message which describes the changes you are committing. This will help you to see what happened and when, as you browse through the project log messages at a later date. The message can be as long or as brief as you like; many projects have guidelines for what should be included, the language to use, and sometimes even a strict format. 3206
176 2732 You can apply simple formatting to your log messages using a convention similar to that used within emails. To apply styling to text, use *text* for bold, _text_ for underlining, and ^text^ for italics. 3210
177 2740 TortoiseSVN includes a spellchecker to help you get your log messages right. This will highlight any mis-spelled words. Use the context menu to access the suggested corrections. Of course, it doesn't know every technical term that you do, so correctly spelt words will sometimes show up as errors. But don't worry. You can just add them to your personal dictionary using the context menu. 3218
178 2744 The log message window also includes a filename and function auto-completion facility. This uses regular expressions to extract class and function names from the (text) files you are committing, as well as the filenames themselves. If a word you are typing matches anything in the list (after you have typed at least 3 characters, or pressed Ctrl+Space), a drop-down appears allowing you to select the full name. The regular expressions supplied with TortoiseSVN are held in the TortoiseSVN installation bin folder. You can also define your own regexes and store them in %APPDATA%\\TortoiseSVN\\autolist.txt. Of course your private autolist will not be overwritten when you update your installation of TortoiseSVN. If you are unfamiliar with regular expressions, take a look at the introduction at http://en.wikipedia.org/wiki/Regular_expression, and the online documentation and tutorial at http://www.regular-expressions.info/. 3222
179 2748 Getting the regex just right can be tricky, so to help you sort out a suitable expression there is a test dialog which allows you to enter an expression and then type in filenames to test it against. Start it from the command prompt using the command TortoiseProc.exe /command:autotexttest 3226
180 2752 You can re-use previously entered log messages. Just click on Recent messages to view a list of the last few messages you entered for this working copy. The number of stored messages can be customized in the TortoiseSVN settings dialog. 3230
181 2756 You can clear all stored commit messages from the Saved data page of TortoiseSVN's settings, or you can clear individual messages from within the Recent messages dialog using the Delete key. 3234
182 2760 If you want to include the checked paths in your log message, you can use the command Context MenuPaste filename list in the edit control. 3238
183 2764 Another way to insert the paths into the log message is to simply drag the files from the file list onto the edit control. 3242
184 2772 There are several special folder properties which can be used to help give more control over the formatting of commit log messages and the language used by the spellchecker module. Read for further information. 3250
185 2776 Integration with Bug Tracking Tools 3254
186 2780 If you have activated the bug tracking system, you can set one or more Issues in the Bug-ID / Issue-Nr: text box. Multiple issues should be comma separated. Alternatively, if you are using regex-based bug tracking support, just add your issue references as part of the log message. Learn more in . 3258
187 2792 After pressing OK, a dialog appears displaying the progress of the commit. 3271
188 2841 This is the default colour scheme, but you can customise those colours using the settings dialog. Read for more information. 3321
189 3280 There are other cases which are labelled as tree conflicts simply because the conflict involves a folder rather than a file. For example if you add a folder with the same name to both trunk and branch and then try to merge you will get a tree conflict. If you want to keep the folder from the merge target, just mark the conflict as resolved. If you want to use the one in the merge source then you need to SVN delete the one in the target first and run the merge again. If you need anything more complicated then you have to resolve manually. 3777
190 3559 For every change you make and commit, you should provide a log message for that change. That way you can later find out what changes you made and why, and you have a detailed log for your development process. 4060
191 3563 The top pane shows a list of revisions where changes to the file/folder have been committed. This summary includes the date and time, the person who committed the revision and the start of the log message. 4064
192 3567 Lines shown in blue indicate that something has been copied to this development line (perhaps from a branch). 4068
193 3571 The middle pane shows the full log message for the selected revision. 4072
194 3575 The bottom pane shows a list of all files and folders that were changed as part of the selected revision. 4076
195 3579 The Revision Log Dialog retrieves all those log messages and shows them to you. The display is divided into 3 panes. But it does much more than that - it provides context menu commands which you can use to get even more information about the project history. 4080
196 3599 From the Progress dialog after an update has finished. Then the Log dialog only shows those revisions which were changed since your last update 4100
197 3603 There are several places from where you can show the Log dialog: 4104
198 3607 If the repository is unavailable you will see the Want to go offline? dialog, described in . 4108
199 3615 The top pane has an Actions column containing icons that summarize what has been done in that revision. There are four different icons, each shown in its own column. 4116
200 3619 If a revision modified a file or directory, the modified icon is shown in the first column. 4120
201 3623 If a revision added a file or directory, the added icon is shown in the second column. 4124
202 3627 If a revision deleted a file or directory, the deleted icon is shown in the third column. 4128
203 3631 If a revision replaced a file or directory, the replaced icon is shown in the fourth column. 4132
204 3639 The Revision Log Dialog Top Pane with Context Menu 4140
205 3647 Compare the selected revision with your working copy. The default Diff-Tool is TortoiseMerge which is supplied with TortoiseSVN. If the log dialog is for a folder, this will show you a list of changed files, and allow you to review the changes made to each file individually. 4148
206 3655 Blame the selected revision, and the file in your working BASE and compare the blame reports using a visual diff tool. Read for more detail. (files only). 4157
207 3663 View the changes made in the selected revision as a Unified-Diff file (GNU patch format). This shows only the differences with a few lines of context. It is harder to read than a visual file compare, but will show all file changes together in a compact format. 4165
208 3671 Compare the selected revision with the previous revision. This works in a similar manner to comparing with your working copy. For folders this option will first show the changed files dialog allowing you to select files to compare. 4173
209 3679 Show the changed files dialog allowing you to select files. Blame the selected revision, and the previous revision, and compare the results using a visual diff tool. (folders only). 4182
210 3688 Save the selected revision to a file so you have an older version of that file. (files only). 4191
211 3697 Open the selected file, either with the default viewer for that file type, or with a program you choose. (files only). 4200
212 3714 Open the repository browser to examine the selected file or folder in the repository as it was at the selected revision. 4217
213 3722 Create a branch or tag from a selected revision. This is useful e.g. if you forgot to create a tag and already committed some changes which weren't supposed to get into that release. 4225
214 3730 Update your working copy to the selected revision. Useful if you want to have your working copy reflect a time in the past, or if there have been further commits to the repository and you want to update your working copy one step at a time. It is best to update a whole directory in your working copy, not just one file, otherwise your working copy could be inconsistent. 4233
215 3734 If you want to undo an earlier change permanently, use Revert to this revision instead. 4237
216 3742 Revert to an earlier revision. If you have made several changes, and then decide that you really want to go back to how things were in revision N, this is the command you need. The changes are undone in your working copy so this operation does not affect the repository until you commit the changes. Note that this will undo all changes made after the selected revision, replacing the file/folder with the earlier version. 4245
217 3747 If your working copy is in an unmodified state, after you perform this action your working copy will show as modified. If you already have local changes, this command will merge the undo changes into your working copy. 4250
218 3751 What is happening internally is that Subversion performs a reverse merge of all the changes made after the selected revision, undoing the effect of those previous commits. 4254
219 3755 If after performing this action you decide that you want to undo the undo and get your working copy back to its previous unmodified state, you should use TortoiseSVNRevert from within Windows Explorer, which will discard the local modifications made by this reverse merge action. 4258
220 3759 If you simply want to see what a file or folder looked like at an earlier revision, use Update to revision or Save revision as... instead. 4262
221 3768 Undo changes from which were made in the selected revision. The changes are undone in your working copy so this operation does not affect the repository at all! Note that this will undo the changes made in that revision only; it does not replace your working copy with the entire file at the earlier revision. This is very useful for undoing an earlier change when other unrelated changes have been made since. 4271
222 3772 What is happening internally is that Subversion performs a reverse merge of that one revision, undoing its effect from a previous commit. 4275
223 3776 You can undo the undo as described above in Revert to this revision. 4279
224 3784 Merge the selected revision(s) into a different working copy. A folder selection dialog allows you to choose the working copy to merge into, but after that there is no confirmation dialog, nor any opportunity to try a test merge. It is a good idea to merge into an unmodified working copy so that you can revert the changes if it doesn't work out! This is a useful feature if you want to merge selected revisions from one branch to another. 4287
225 3792 Make a fresh checkout of the selected folder at the selected revision. This brings up a dialog for you to confirm the URL and revision, and select a location for the checkout. 4295
226 3800 Export the selected file/folder at the selected revision. This brings up a dialog for you to confirm the URL and revision, and select a location for the export. 4303
227 3808 Edit the log message or author attached to a previous commit. Read to find out how this works. 4311
228 3816 View and edit any revision property, not just log message and author. Refer to . 4319
229 3825 Copy the log details of the selected revisions to the clipboard. This will copy the revision number, author, date, log message and the list of changed items for each revision. 4328
230 3834 Search log messages for the text you enter. This searches the log messages that you entered and also the action summaries created by Subversion (shown in the bottom pane). The search is not case sensitive. 4337
231 3838 The top pane of the Log dialog has a context menu that allows you to access much more information. Some of these menu entries appear only when the log is shown for a file, and some only when the log is shown for a folder. 4341
232 3842 Top Pane Context Menu for 2 Selected Revisions 4345
233 3850 Compare the two selected revisions using a visual difference tool. The default Diff-Tool is TortoiseMerge which is supplied with TortoiseSVN. 4353
234 3854 If you select this option for a folder, a further dialog pops up listing the changed files and offering you further diff options. Read more about the Compare Revisions dialog in . 4357
235 3862 Blame the two revisions and compare the blame reports using a visual difference tool. Read for more detail. 4365
236 3870 View the differences between the two selected revisions as a Unified-Diff file. This works for files and folders. 4373
237 3874 Copy log messages to clipboard as described above. 4377
238 3878 Search log messages as described above. 4381
239 3882 If you select two revisions at once (using the usual Ctrl-modifier), the context menu changes and gives you fewer options: 4385
240 3886 If you select two or more revisions (using the usual Ctrl or Shift modifiers), the context menu will include an entry to Revert all changes which were made in the selected revisions. This is the easiest way to rollback a group of revisions in one go. 4389
241 3890 You can also choose to merge the selected revisions to another working copy, as described above. 4393
242 3894 If all selected revisions have the same author, you can edit the author of all those revisions in one go. 4397
243 3898 The Log Dialog Bottom Pane with Context Menu 4401
244 3906 Show changes made in the selected revision for the selected file. 4409
245 3914 Blame the selected revision and the previous revision for the selected file, and compare the blame reports using a visual diff tool. Read for more detail. 4417
246 3922 Show file changes in unified diff format. This context menu is only available for files shown as modified. 4425
247 3927 Open the selected file, either with the default viewer for that file type, or with a program you choose. 4430
248 3931 Opens the Blame dialog, allowing you to blame up to the selected revision. 4434
249 3935 Revert the changes made to the selected file in that revision. 4438
250 3943 View the Subversion properties for the selected item. 4446
251 3951 Show the revision log for the selected single file. 4454
252 3959 Show the revision log for the selected single file, including merged changes. Find out more in . 4462
253 3963 Save the selected revision to a file so you have an older version of that file. 4466
254 3967 The bottom pane of the Log dialog also has a context menu that allows you to 4470
255 3971 You may notice that sometimes we refer to changes and other times to differences. What's the difference? 4474
256 3975 Subversion uses revision numbers to mean 2 different things. A revision generally represents the state of the repository at a point in time, but it can also be used to represent the changeset which created that revision, eg. Done in r1234 means that the changes committed in r1234 implement feature X. To make it clearer which sense is being used, we use two different terms. 4478
257 3979 If you select two revisions N and M, the context menu will offer to show the difference between those two revisions. In Subversion terms this is diff -r M:N. 4482
258 3983 If you select a single revision N, the context menu will offer to show the changes made in that revision. In Subversion terms this is diff -r N-1:N or diff -c N. 4486
259 3987 The bottom pane shows the files changed in all selected revisions, so the context menu always offers to show changes. 4490
260 3995 For a large repository there may be hundreds or even thousands of changes and fetching them all could take a long time. Normally you are only interested in the more recent changes. By default, the number of log messages fetched is limited to 100, but you can change this value in TortoiseSVNSettings (), 4498
261 3999 When the Stop on copy/rename box is checked, Show Log will stop at the point that the selected file or folder was copied from somewhere else within the repository. This can be useful when looking at branches (or tags) as it stops at the root of that branch, and gives a quick indication of changes made in that branch only. 4502
262 4003 Normally you will want to leave this option unchecked. TortoiseSVN remembers the state of the checkbox, so it will respect your preference. 4506
263 4007 When the Show Log dialog is invoked from within the Merge dialog, the box is always checked by default. This is because merging is most often looking at changes on branches, and going back beyond the root of the branch does not make sense in that instance. 4510
264 4011 Note that Subversion currently implements renaming as a copy/delete pair, so renaming a file or folder will also cause the log display to stop if this option is checked. 4514
265 4015 The Log dialog does not always show all changes ever made for a number of reasons: 4518
266 4019 If you want to see more log messages, click the Next 100 to retrieve the next 100 log messages. You can repeat this as many times as needed. 4522
267 4023 Next to this button there is a multi-function button which remembers the last option you used it for. Click on the arrow to see the other options offered. 4526
268 4027 Use Show Range ... if you want to view a specific range of revisions. A dialog will then prompt you to enter the start and end revision. 4530
269 4031 Use Show All if you want to see all log messages from HEAD right back to revision 1. 4534
270 4039 Because the log dialog shows you the log from HEAD, not from the current working copy revision, it often happens that there are log messages shown for content which has not yet been updated in your working copy. To help make this clearer, the commit message which corresponds to the revision you have in your working copy is shown in bold. 4542
271 4043 When you show the log for a folder the revision highlighted is the highest revision found anywhere within that folder, which requires a crawl of the working copy. The crawl takes place within a separate thread so as not to delay showing the log, but as a result highlighting for folders may not appear immediately. 4546
272 4055 Subversion 1.5 and later keeps a record of merges using properties. This allows us to get a more detailed history of merged changes. For example, if you develop a new feature on a branch and then merge that branch back to trunk, the feature development will show up on the trunk log as a single commit for the merge, even though there may have been 1000 commits during branch development. 4560
273 4059 The Log Dialog Showing Merge Tracking Revisions 4564
274 4063 If you want to see the detail of which revisions were merged as part of that commit, use the Include merged revisions checkbox. This will fetch the log messages again, but will also interleave the log messages from revisions which were merged. Merged revisions are shown in grey because they represent changes made on a different part of the tree. 4568
275 4067 Of course, merging is never simple! During feature development on the branch there will probably be occasional merges back from trunk to keep the branch in sync with the main line code. So the merge history of the branch will also include another layer of merge history. These different layers are shown in the log dialog using indentation levels. 4572
276 4071 Changing the Log Message and Author 4576
277 4087 Revision properties are completely different from the Subversion properties of each item. Revprops are descriptive items which are associated with one specific revision number in the repository, such as log message, commit date and committer name (author). 4592
278 4091 Sometimes you might want to change a log message you once entered, maybe because there's a spelling error in it or you want to improve the message or change it for other reasons. Or you want to change the author of the commit because you forgot to set up authentication or... 4596
279 4095 Subversion lets you change revision properties any time you want. But since such changes can't be undone (those changes are not versioned) this feature is disabled by default. To make this work, you must set up a pre-revprop-change hook. Please refer to the chapter on Hook Scripts in the Subversion Book for details about how to do that. Read to find some further notes on implementing hooks on a Windows machine. 4600
280 4099 Once you've set up your server with the required hooks, you can change the author and log message (or any other revprop) of any revision, using the context menu from the top pane of the Log dialog. You can also edit a log message using the context menu for the middle pane. 4604
281 4103 Because Subversion's revision properties are not versioned, making modifications to such a property (for example, the svn:log commit message property) will overwrite the previous value of that property forever. 4608
282 4115 If you want to restrict the log messages to show only those you are interested in rather than scrolling through a list of hundreds, you can use the filter controls at the top of the Log Dialog. The start and end date controls allow you to restrict the output to a known date range. The search box allows you to show only messages which contain a particular phrase. 4620
283 4119 Click on the search icon to select which information you want to search in, and to choose regex mode. Normally you will only need a simple sub-string search, but if you need to more flexible search terms, you can use regular expressions. If you hover the mouse over the box, a tooltip will give hints on how to use the regex functions, or the sub-string functions. The filter works by checking whether your filter string matches the log entries, and then only those entries which match the filter string are shown. 4624
284 4123 Simple sub-string search works in a manner similar to a search engine. Strings to search for are separated by spaces, and all strings must match. You can use a leading - to specify that a particular sub-string is not found (invert matching for that term), and you can use ! at the start of the expression to invert matching for the entire expression. You can use quote marks to surround a string which must contain spaces, and if you want to search for a literal quotation mark you can use two quotation marks together as a self-escaping sequence. Note that the backslash character is not used as an escape character and has no special significance in simple sub-string searches. Examples will make this easier: \n
Alice Bob -Eve\n
searches for strings containing both Alice and Bob but not Eve \n
!Alice Bob\n
searches for strings which do not contain both Alice and Bob \n
!-Alice -Bob\n
do you remember De Morgan's theorem? NOT(NOT Alice AND NOT Bob) reduces to (Alice OR Bob). \n
\"Alice and Bob\"\n
searches for the literal expression Alice and Bob\n
\"\"\n
searches for a double-quote anywhere in the text \n
\"Alice says \"\"hi\"\" to Bob\"\n
searches for the literal expression Alice says \"hi\" to Bob
4628
285 4127 Describing the use of regular expression searches is beyond the scope of this manual, but you can find online documentation and a tutorial at http://www.regular-expressions.info/. 4645
286 4131 Note that these filters act on the messages already retrieved. They do not control downloading of messages from the repository. 4649
287 4135 You can also filter the path names in the bottom pane using the Show only affected paths checkbox. Affected paths are those which contain the path used to display the log. If you fetch the log for a folder, that means anything in that folder or below it. For a file it means just that one file. Normally the path list shows any other paths which are affected by the same commit, but in grey. If the box is checked, those paths are hidden. 4653
288 4139 Sometimes your working practices will require log messages to follow a particular format, which means that the text describing the changes is not visible in the abbreviated summary shown in the top pane. The property tsvn:logsummary can be used to extract a portion of the log message to be shown in the top pane. Read to find out how to use this property. 4657
289 4143 No Log Formatting from Repository Browser 4661
290 4147 Because the formatting depends upon accessing subversion properties, you will only see the results when using a checked out working copy. Fetching properties remotely is a slow operation, so you will not see this feature in action from the repo browser. 4665
291 4159 The Statistics button brings up a box showing some interesting information about the revisions shown in the Log dialog. This shows how many authors have been at work, how many commits they have made, progress by week, and much more. Now you can see at a glance who has been working hardest and who is slacking ;-) 4678
292 4167 This page gives you all the numbers you can think of, in particular the period and number of revisions covered, and some min/max/average values. 4686
293 4183 This graph shows you which authors have been active on the project as a simple histogram, stacked histogram or pie chart. 4702
294 4187 Where there are a few major authors and many minor contributors, the number of tiny segments can make the graph more difficult to read. The slider at the bottom allows you to set a threshold (as a percentage of total commits) below which any activity is grouped into an Others category. 4706
295 4199 This page gives you a graphical representation of project activity in terms of number of commits and author. This gives some idea of when a project is being worked on, and who was working at which time. 4718
296 4203 When there are several authors, you will get many lines on the graph. There are two views available here: normal, where each author's activity is relative to the base line, and stacked, where each author's activity is relative to the line underneath. The latter option avoids the lines crossing over, which can make the graph easier to read, but less easy to see one author's output. 4722
297 4207 By default the analysis is case-sensitive, so users PeterEgan and PeteRegan are treated as different authors. However, in many cases user names are not case-sensitive, and are sometimes entered inconsistently, so you may want DavidMorgan and davidmorgan to be treated as the same person. Use the Authors case insensitive checkbox to control how this is handled. 4726
298 4211 Note that the statistics cover the same period as the Log dialog. If that is only displaying one revision then the statistics will not tell you very much. 4730
299 4223 If the server is not reachable, and you have log caching enabled you can use the log dialog and revision graph in offline mode. This uses data from the cache, which allows you to continue working although the information may not be up-to-date or even complete. 4742
300 4231 Complete the current operation in offline mode, but retry the repository next time log data is requested. 4750
301 4239 Remain in offline mode until a repository check is specifically requested. See . 4758
302 4247 If you don't want to continue the operation with possibly stale data, just cancel. 4766
303 4251 Here you have three options: 4770
304 4255 The Make this the default checkbox prevents this dialog from re-appearing and always picks the option you choose next. You can still change (or remove) the default after doing this from TortoiseSVNSettings. 4774
305 4264 If you want to check the server again for newer log messages, you can simply refresh the view using F5. If you are using the log cache (enabled by default), this will check the repository for newer messages and fetch only the new ones. If the log cache was in offline mode, this will also attempt to go back online. 4783
306 4268 If you are using the log cache and you think the message content or author may have changed, you can use Shift-F5 or Ctrl-F5 to re-fetch the displayed messages from the server and update the log cache. Note that this only affects messages currently shown and does not invalidate the entire cache for that repository. 4787
307 4285 One of the commonest requirements in project development is to see what has changed. You might want to look at the differences between two revisions of the same file, or the differences between two separate files. TortoiseSVN provides a built-in tool named TortoiseMerge for viewing differences of text files. For viewing differences of image files, TortoiseSVN also has a tool named TortoiseIDiff. Of course, you can use your own favourite diff program if you like. 4804
308 4297 If you want to see what changes you have made in your working copy, just use the explorer context menu and select TortoiseSVNDiff. 4816
309 4305 If you want to see what has changed on trunk (if you are working on a branch) or on a specific branch (if you are working on trunk), you can use the explorer context menu. Just hold down the Shift key while you right click on the file. Then select TortoiseSVNDiff with URL. In the following dialog, specify the URL in the repository with which you want to compare your local file to. 4825
310 4309 You can also use the repository browser and select two trees to diff, perhaps two tags, or a branch/tag and trunk. The context menu there allows you to compare them using Compare revisions. Read more in . 4829
311 4317 If you want to see the difference between a particular revision and your working copy, use the Revision Log dialog, select the revision of interest, then select Compare with working copy from the context menu. 4837
312 4321 If you want to see the difference between the last committed revision and your working copy, assuming that the working copy hasn't been modified, just right click on the file. Then select TortoiseSVNDiff with previous version. This will perform a diff between the revision before the last-commit-date (as recorded in your working copy) and the working BASE. This shows you the last change made to that file to bring it to the state you now see in your working copy. It will not show changes newer than your working copy. 4841
313 4325 Difference between two previous revisions 4845
314 4329 If you want to see the difference between two revisions which are already committed, use the Revision Log dialog and select the two revisions you want to compare (using the usual Ctrl-modifier). Then select Compare revisions from the context menu. 4849
315 4333 If you did this from the revision log for a folder, a Compare Revisions dialog appears, showing a list of changed files in that folder. Read more in . 4853
316 4341 If you want to see the changes made to all files in a particular revision in one view, you can use Unified-Diff output (GNU patch format). This shows only the differences with a few lines of context. It is harder to read than a visual file compare, but will show all the changes together. From the Revision Log dialog select the revision of interest, then select Show Differences as Unified-Diff from the context menu. 4861
317 4349 If you want to see the differences between two different files, you can do that directly in explorer by selecting both files (using the usual Ctrl-modifier). Then from the explorer context menu select TortoiseSVNDiff. 4869
318 4353 Difference between WC file/folder and a URL 4873
319 4357 If you want to see the differences between a file in your working copy, and a file in any Subversion repository, you can do that directly in explorer by selecting the file then holding down the Shift key whilst right clicking to obtain the context menu. Select TortoiseSVNDiff with URL. You can do the same thing for a working copy folder. TortoiseMerge shows these differences in the same way as it shows a patch file - a list of changed files which you can view one at a time. 4877
320 4365 If you want to see not only the differences but also the author, revision and date that changes were made, you can combine the diff and blame reports from within the revision log dialog. Read for more detail. 4886
321 4373 The built-in tools supplied with TortoiseSVN do not support viewing differences between directory hierarchies. But if you have an external tool which does support that feature, you can use that instead. In we tell you about some tools which we have used. 4894
322 4377 If you have configured a third party diff tool, you can use Shift when selecting the Diff command to use the alternate tool. Read to find out about configuring other diff tools. 4898
323 4381 Line-end and Whitespace Options 4902
324 4385 Sometimes in the life of a project you might change the line endings from CRLF to LF, or you may change the indentation of a section. Unfortunately this will mark a large number of lines as changed, even though there is no change to the meaning of the code. The options here will help to manage these changes when it comes to comparing and applying differences. You will see these settings in the Merge and Blame dialogs, as well as in the settings for TortoiseMerge. 4906
325 4393 Compare whitespaces includes all changes in indentation and inline whitespace as added/removed lines. 4915
326 4405 Naturally, any line with changed content is always included in the diff. 4929
327 4425 When you select two trees within the repository browser, or when you select two revisions of a folder in the log dialog, you can Context menuCompare revisions. 4949
328 4429 This dialog shows a list of all files which have changed and allows you to compare or blame them individually using context menu. 4953
329 4433 You can export a change tree, which is useful if you need to send someone else your project tree structure, but containing only the files which have changed. This operation works on the selected files only, so you need to select the files of interest - usually that means all of them - and then Context menuExport selection to.... You will be prompted for a location to save the change tree. 4957
330 4437 You can also export the list of changed files to a text file using Context menuSave list of selected files to.... 4961
331 4441 If you want to export the list of files and the actions (modified, added, deleted) as well, you can do that using Context menuCopy selection to clipboard. 4965
332 4445 The button at the top allows you to change the direction of comparison. You can show the changes need to get from A to B, or if you prefer, from B to A. 4969
333 4449 The buttons with the revision numbers on can be used to change to a different revision range. When you change the range, the list of items which differ between the two revisions will be updated automatically. 4973
334 4453 If the list of filenames is very long, you can use the search box to reduce the list to filenames containing specific text. Note that a simple text search is used, so if you want to restrict the list to C source files you should enter .c rather than *.c. 4977
335 4457 Diffing Images Using TortoiseIDiff 4981
336 4469 There are many tools available for diffing text files, including our own TortoiseMerge, but we often find ourselves wanting to see how an image file has changed too. That's why we created TortoiseIDiff. 4993
337 4477 TortoiseSVNDiff for any of the common image file formats will start TortoiseIDiff to show image differences. By default the images are displayed side-by-side but you can use the View menu or toolbar to switch to a top-bottom view instead, or if you prefer, you can overlay the images and pretend you are using a lightbox. 5002
338 4481 Naturally you can also zoom in and out and pan around the image. You can also pan the image simply by left-dragging it. If you select the Link images together option, then the pan controls (scrollbars, mousewheel) on both images are linked. 5006
339 4485 An image info box shows details about the image file, such as the size in pixels, resolution and colour depth. If this box gets in the way, use ViewImage Info to hide it. You can get the same information in a tooltip if you hover the mouse over the image title bar. 5010
340 4489 When the images are overlaid, the relative intensity of the images (alpha blend) is controlled by a slider control at the left side. You can click anywhere in the slider to set the blend directly, or you can drag the slider to change the blend interactively. Ctrl+Shift-Wheel to change the blend. 5014
341 4493 The button above the slider toggles between 0% and 100% blends, and if you double click the button, the blend toggles automatically every second until you click the button again. This can be useful when looking for multiple small changes. 5018
342 4497 Sometimes you want to see a difference rather than a blend. You might have the image files for two revisions of a printed circuit board and want to see which tracks have changed. If you disable alpha blend mode, the difference will be shown as an XOR of the pixel colour values. Unchanged areas will be plain white and changes will be coloured. 5022
343 4513 If the tools we provide don't do what you need, try one of the many open-source or commercial programs available. Everyone has their own favourites, and this list is by no means complete, but here are a few that you might consider: 5039
344 4521 WinMerge is a great open-source diff tool which can also handle directories. 5047
345 4529 Perforce is a commercial RCS, but you can download the diff/merge tool for free. Get more information from Perforce. 5055
346 4537 KDiff3 is a free diff tool which can also handle directories. You can download it from here. 5063
347 4545 ExamDiff Standard is freeware. It can handle files but not directories. ExamDiff Pro is shareware and adds a number of goodies including directory diff and editing capability. In both flavours, version 3.2 and above can handle unicode. You can download them from PrestoSoft. 5071
348 4553 Similar to ExamDiff Pro, this is an excellent shareware diff tool which can handle directory diffs and unicode. Download it from Scooter Software. 5080
349 4561 Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does three-way comparison in merges and has synchronization links to use if you've changed the order of functions. Download it from Araxis. 5089
350 4569 This text editor includes syntax colouring for unified diffs, making them much easier to read. Download it from Scintilla. 5097
351 4577 Notepad2 is designed as a replacement for the standard Windows Notepad program, and is based on the Scintilla open-source edit control. As well as being good for viewing unified diffs, it is much better than the Windows notepad for most jobs. Download it for free here. 5105
352 4581 Read for information on how to set up TortoiseSVN to use these tools. 5109
353 4585 Adding New Files And Directories 5113
354 4602 If you created new files and/or directories during your development process then you need to add them to source control too. Select the file(s) and/or directory and use TortoiseSVNAdd. 5131
355 4606 After you added the files/directories to source control the file appears with a added icon overlay which means you first have to commit your working copy to make those files/directories available to other developers. Adding a file/directory does not affect the repository! 5135
356 4614 You can also use the Add command on already versioned folders. In that case, the add dialog will show you all unversioned files inside that versioned folder. This helps if you have many new files and need to add them all at once. 5143
357 4623 right-drag them to the new location inside the working copy 5153
358 4628 release the right mouse button 5158
359 4632 select Context MenuSVN Add files to this WC. The files will then be copied to the working copy and added to version control. 5162
360 4636 To add files from outside your working copy you can use the drag-and-drop handler: 5166
361 4640 You can also add files within a working copy simply by left-dragging and dropping them onto the commit dialog. 5170
362 4644 If you add a file or folder by mistake, you can undo the addition before you commit using TortoiseSVNUndo add.... 5174
363 4648 Copying/Moving/Renaming Files and Folders 5178
364 4674 It often happens that you already have the files you need in another project in your repository, and you simply want to copy them across. You could simply copy the files and add them as described above, but that would not give you any history. And if you subsequently fix a bug in the original files, you can only merge the fix automatically if the new copy is related to the original in Subversion. 5204
365 4678 The easiest way to copy files and folders from within a working copy is to use the right-drag menu. When you right-drag a file or folder from one working copy to another, or even within the same folder, a context menu appears when you release the mouse. Now you can copy existing versioned content to a new location, possibly renaming it at the same time. 5208
366 4682 You can also copy or move versioned files within a working copy, or between two working copies, using the familiar cut-and-paste method. Use the standard Windows Copy or Cut to copy one or more versioned items to the clipboard. If the clipboard contains such versioned items, you can then use TortoiseSVNPaste (note: not the standard Windows Paste) to copy or move those items to the new working copy location. 5212
367 4686 You can copy files and folders from your working copy to another location in the repository using TortoiseSVNBranch/Tag. Refer to to find out more. 5216
368 4690 You can locate an older version of a file or folder in the log dialog and copy it to a new location in the repository directly from the log dialog using Context menuCreate branch/tag from revision. Refer to to find out more. 5220
369 4694 You can also use the repository browser to locate content you want, and copy it into your working copy directly from the repository, or copy between two locations within the repository. Refer to to find out more. 5224
370 4698 Cannot copy between repositories 5228
371 4702 Whilst you can copy or move files and folders within a repository, you cannot copy or move from one repository to another while preserving history using TortoiseSVN. Not even if the repositories live on the same server. All you can do is copy the content in its current state and add it as new content to the second repository. 5232
372 4706 If you are uncertain whether two URLs on the same server refer to the same or different repositories, use the repo browser to open one URL and find out where the repository root is. If you can see both locations in one repo browser window then they are in the same repository. 5236
373 5118 Explorer property page, Subversion tab 5648
374 5122 Sometimes you want to have more detailed information about a file/directory than just the icon overlay. You can get all the information Subversion provides in the explorer properties dialog. Just select the file or directory and select Windows Menuproperties in the context menu (note: this is the normal properties menu entry the explorer provides, not the one in the TortoiseSVN submenu!). In the properties dialog box TortoiseSVN has added a new property page for files/folders under Subversion control, where you can see all relevant information about the selected file/directory. 5652
375 5138 You can read and set the Subversion properties from the Windows properties dialog, but also from TortoiseSVNproperties and within TortoiseSVN's status lists, from Context menuproperties. 5668
376 5142 You can add your own properties, or some properties with a special meaning in Subversion. These begin with svn:. svn:externals is such a property; see how to handle externals in . 5672
377 5158 Date of last known commit. This is based on information obtained when you update your working copy. It does not check the repository to find more recent changes. 5689
378 5166 Author who made the last known commit. 5697
379 5170 The full URL of this file in the repository. 5701
380 5174 A compressed combination of the previous four keywords. 5705
381 5178 Subversion supports CVS-like keyword expansion which can be used to embed filename and revision information within the file itself. Keywords currently supported are: 5709
382 5182 To find out how to use these keywords, look at the svn:keywords section in the Subversion book, which gives a full description of these keywords and how to enable and use them. 5713
383 5186 For more information about properties in Subversion see the Special Properties. 5717
384 5190 Adding and Editing Properties 5721
385 5198 To add a new property, first click on Add.... Select the required property name from the combo box, or type in a name of your own choice, then enter a value in the box below. Properties which take multiple values, such as an ignore list, can be entered on multiple lines. Click on OK to add that property to the list. 5729
386 5202 If you want to apply a property to many items at once, select the files/folders in explorer, then select Context menuproperties 5733
387 5206 If you want to apply the property to every file and folder in the hierarchy below the current folder, check the Recursive checkbox. 5737
388 5210 Some properties, for example svn:needs-lock, can only be applied to files, so the property name doesn't appear in the drop down list for folders. You can still apply such a property recursively to all files in a hierarchy, but you have to type in the property name yourself. 5741
389 5214 If you wish to edit an existing property, select that property from the list of existing properties, then click on Edit.... 5745
390 5218 If you wish to remove an existing property, select that property from the list of existing properties, then click on Remove. 5749
391 5222 The svn:externals property can be used to pull in other projects from the same repository or a completely different repository. For more information, read . 5753
392 5230 Because properties are versioned, you cannot edit the properties of previous revisions. If you look at properties from the log dialog, or from a non-HEAD revision in the repository browser, you will see a list of properties and values, but no edit controls. 5762
393 5234 Exporting and Importing Properties 5766
394 5238 Often you will find yourself applying the same set of properties many times, for example bugtraq:logregex. To simplify the process of copying properties from one project to another, you can use the Export/Import feature. 5770
395 5242 From the file or folder where the properties are already set, use TortoiseSVNproperties, select the properties you wish to export and click on Export.... You will be prompted for a filename where the property names and values will be saved. 5774
396 5246 From the folder(s) where you wish to apply these properties, use TortoiseSVNproperties and click on Import.... You will be prompted for a filename to import from, so navigate to the place you saved the export file previously and select it. The properties will be added to the folders non-recursively. 5778
397 5250 If you want to add properties to a tree recursively, follow the steps above, then in the property dialog select each property in turn, click on Edit..., check the Apply property recursively box and click on OK. 5782
398 5254 The Import file format is binary and proprietary to TortoiseSVN. Its only purpose is to transfer properties using Import and Export, so there is no need to edit these files. 5786
399 5262 TortoiseSVN can handle binary property values using files. To read a binary property value, Save... to a file. To set a binary value, use a hex editor or other appropriate tool to create a file with the content you require, then Load... from that file. 5794
400 5266 Although binary properties are not often used, they can be useful in some applications. For example if you are storing huge graphics files, or if the application used to load the file is huge, you might want to store a thumbnail as a property so you can obtain a preview quickly. 5798
401 5278 You can configure Subversion and TortoiseSVN to set properties automatically on files and folders when they are added to the repository. There are two ways of doing this. 5812
402 5282 You can edit the subversion configuration file to enable this feature on your client. The General page of TortoiseSVN's settings dialog has an edit button to take you there directly. The config file is a simple text file which controls some of subversion's workings. You need to change two things: firstly in the section headed miscellany uncomment the line enable-auto-props = yes. Secondly you need to edit the section below to define which properties you want added to which file types. This method is a standard subversion feature and works with any subversion client. However it has to be defined on each client individually - there is no way to propagate these settings from the repository. 5816
403 5286 An alternative method is to set the tsvn:autoprops property on folders, as described in the next section. This method only works for TortoiseSVN clients, but it does get propagated to all working copies on update. 5820
404 5290 Whichever method you choose, you should note that auto-props are only applied to files at the time they are added to the repository. Auto-props will never change the properties of files which are already versioned. 5824
405 5294 If you want to be absolutely sure that new files have the correct properties applied, you should set up a repository pre-commit hook to reject commits where the required properties are not set. 5828
406 5302 Subversion properties are versioned. After you change or add a property you have to commit your changes. 5836
407 5310 If there's a conflict on committing the changes, because another user has changed the same property, Subversion generates a .prej file. Delete this file after you have resolved the conflict. 5845
408 5326 tsvn:logminsize sets the minimum length of a log message for a commit. If you enter a shorter message than specified here, the commit is disabled. This feature is very useful for reminding you to supply a proper descriptive message for every commit. If this property is not set, or the value is zero, empty log messages are allowed. 5862
409 5330 tsvn:lockmsgminsize sets the minimum length of a lock message. If you enter a shorter message than specified here, the lock is disabled. This feature is very useful for reminding you to supply a proper descriptive message for every lock you get. If this property is not set, or the value is zero, empty lock messages are allowed. 5866
410 5334 tsvn:logwidthmarker is used with projects which require log messages to be formatted with some maximum width (typically 80 characters) before a line break. Setting this property to a non-zero will do 2 things in the log message entry dialog: it places a marker to indicate the maximum width, and it disables word wrap in the display, so that you can see whether the text you entered is too long. Note: this feature will only work correctly if you have a fixed-width font selected for log messages. 5870
411 5338 tsvn:logtemplate is used with projects which have rules about log message formatting. The property holds a multi-line text string which will be inserted in the commit message box when you start a commit. You can then edit it to include the required information. Note: if you are also using tsvn:logminsize, be sure to set the length longer than the template or you will lose the protection mechanism. 5874
412 5342 Subversion allows you to set autoprops which will be applied to newly added or imported files, based on the file extension. This depends on every client having set appropriate autoprops in their subversion configuration file. tsvn:autoprops can be set on folders and these will be merged with the user's local autoprops when importing or adding files. The format is the same as for subversion autoprops, e.g. *.sh = svn:eol-style=native;svn:executable sets two properties on files with the .sh extension. 5878
413 5346 If there is a conflict between the local autoprops and tsvn:autoprops, the project settings take precedence because they are specific to that project. 5882
414 5350 In the Commit dialog you have the option to paste in the list of changed files, including the status of each file (added, modified, etc). tsvn:logfilelistenglish defines whether the file status is inserted in English or in the localized language. If the property is not set, the default is true. 5886
415 5354 TortoiseSVN can use spell checker modules which are also used by OpenOffice and Mozilla. If you have those installed this property will determine which spell checker to use, i.e. in which language the log messages for your project should be written. tsvn:projectlanguage sets the language module the spell checking engine should use when you enter a log message. You can find the values for your language on this page: MSDN: Language Identifiers. 5890
416 5358 You can enter this value in decimal, or in hexadecimal if prefixed with 0x. For example English (US) can be entered as 0x0409 or 1033. 5894
417 5362 The property tsvn:logsummary is used to extract a portion of the log message which is then shown in the log dialog as the log message summary. 5898
418 5366 The value of the tsvn:logsummary property must be set to a one line regex string which contains one regex group. Whatever matches that group is used as the summary. 5902
419 5370 An example: \\[SUMMARY\\]:\\s+(.*) Will catch everything after [SUMMARY] in the log message and use that as the summary. 5906
420 5374 The property tsvn:logrevregex defines a regular expression which matches references to revisions in a log message. This is used in the log dialog to turn such references into links which when clicked will either scroll to that revision (if the revision is already shown in the log dialog, or if it's available from the log cache) or open a new log dialog showing that revision. 5910
421 5378 The regular expression must match the whole reference, not just the revision number. The revision number is extracted from the matched reference string automatically. 5914
422 5382 If this property is not set, a default regular expression is used to link revision references. 5918
423 5386 When you want to add a new property, you can either pick one from the list in the combo box, or you can enter any property name you like. If your project uses some custom properties, and you want those properties to appear in the list in the combo box (to avoid typos when you enter a property name), you can create a list of your custom properties using tsvn:userfileproperties and tsvn:userdirproperties. Apply these properties to a folder. When you go to edit the properties of any child item, your custom properties will appear in the list of pre-defined property names. 5922
424 5390 TortoiseSVN has a few special properties of its own, and these begin with tsvn:. 5926
425 5395 Some tsvn: properties require a true/false value. TortoiseSVN also understands yes as a synonym for true and no as a synonym for false. 5931
426 5399 TortoiseSVN can integrate with some bug tracking tools. This uses project properties that start with bugtraq:. Read for further information. 5935
427 5403 It can also integrate with some web-based repository browsers, using project properties that start with webviewer:. Read for further information. 5939
428 5407 Set the project properties on folders 5943
429 5411 These special project properties must be set on folders for the system to work. When you commit a file or folder the properties are read from that folder. If the properties are not found there, TortoiseSVN will search upwards through the folder tree to find them until it comes to an unversioned folder, or the tree root (eg. C:\\) is found. If you can be sure that each user checks out only from e.g trunk/ and not some sub-folder, then it is sufficient to set the properties on trunk/. If you can't be sure, you should set the properties recursively on each sub-folder. A property setting deeper in the project hierarchy overrides settings on higher levels (closer to trunk/). 5947
430 5417 For project properties only, i.e. tsvn:, bugtraq: and webviewer: you can use the Recursive checkbox to set the property to all sub-folders in the hierarchy, without also setting it on all files. 5953
431 5423 When you add new sub-folders to a working copy using TortoiseSVN, any project properties present in the parent folder will automatically be added to the new child folder too. 5959
432 5432 Fetching properties remotely is a slow operation, so some of the features described above will not work in the repository browser as they do in a working copy. 5968
433 5436 When you add a property using the repo browser, only the standard svn: properties are offered in the pre-defined list. Any other property name must be entered manually. 5972
434 5440 Properties cannot be set or deleted recursively using the repo browser. 5976
435 5444 Project properties will not be propagated automatically when a child folder is added using the repo browser. 5980
436 5448 tsvn:autoprops will not set properties on files which are added using the repo browser. 5984
437 5452 Although TortoiseSVN's project properties are extremely useful, they only work with TortoiseSVN, and some will only work in newer versions of TortoiseSVN. If people working on your project use a variety of Subversion clients, or possibly have old versions of TortoiseSVN, you may want to use repository hooks to enforce project policies. project properties can only help to implement a policy, they cannot enforce it. 5988
438 5616 One of the features of version control systems is the ability to isolate changes onto a separate line of development. This line is known as a branch. Branches are often used to try out new features without disturbing the main line of development with compiler errors and bugs. As soon as the new feature is stable enough then the development branch is merged back into the main branch (trunk). 6192
439 5620 Another feature of version control systems is the ability to mark particular revisions (e.g. a release version), so you can at any time recreate a certain build or environment. This process is known as tagging. 6196
440 5624 Subversion does not have special commands for branching or tagging, but uses so-called cheap copies instead. Cheap copies are similar to hard links in Unix, which means that instead of making a complete copy in the repository, an internal link is created, pointing to a specific tree/revision. As a result branches and tags are very quick to create, and take up almost no extra space in the repository. 6200
441 5636 If you have imported your project with the recommended directory structure, creating a branch or tag version is very simple: Select the folder in your working copy which you want to copy to a branch or tag, then select the command TortoiseSVNBranch/Tag.... 6212
442 5640 The default destination URL for the new branch will be the source URL on which your working copy is based. You will need to edit that URL to the new path for your branch/tag. So instead of \n
http://svn.collab.net/repos/ProjectName/trunk\n
you might now use something like \n
http://svn.collab.net/repos/ProjectName/tags/Release_1.10\n
If you can't remember the naming convention you used last time, click the button on the right to open the repository browser so you can view the existing repository structure.
6216
443 5649 The new branch is copied directly in the repository from the HEAD revision. No data needs to be transferred from your working copy, and the branch is created very quickly. 6230
444 5657 The new branch is copied directly in the repository but you can choose an older revision. This is useful if you forgot to make a tag when you released your project last week. If you can't remember the revision number, click the button on the right to show the revision log, and select the revision number from there. Again no data is transferred from your working copy, and the branch is created very quickly. 6238
445 5661 The new branch is an identical copy of your local working copy. If you have updated some files to an older revision in your WC, or if you have made local changes, that is exactly what goes into the copy. Naturally this sort of complex tag may involve transferring data from your WC back to the repository if it does not exist there already. 6242
446 5665 Now you have to select the source of the copy. Here you have three options: 6246
447 5669 If you want your working copy to be switched to the newly created branch automatically, use the Switch working copy to new branch/tag checkbox. But if you do that, first make sure that your working copy does not contain modifications. If it does, those changes will be merged into the branch WC when you switch. 6250
448 5673 Press OK to commit the new copy to the repository. Don't forget to supply a log message. Note that the copy is created inside the repository. 6254
449 5677 Note that unless you opted to switch your working copy to the newly created branch, creating a Branch or Tag does not affect your working copy. Even if you create the branch from your WC, those changes are committed to the new branch, not to the trunk, so your WC may still be marked as modified with respect to the trunk. 6258
450 5681 Other ways to create a branch or tag 6262
451 5685 You can also create a branch or tag without having a working copy. To do that, open the repository browser. You can there drag folders to a new location. You have to hold down the Ctrl key while you drag to create a copy, otherwise the folder gets moved, not copied. 6266
452 5689 You can also drag a folder with the right mouse button. Once you release the mouse button you can choose from the context menu whether you want the folder to be moved or copied. Of course to create a branch or tag you must copy the folder, not move it. 6270
453 5693 Yet another way is from the log dialog. You can show the log dialog for e.g. trunk, select a revision (either the HEAD revision at the very top or an earlier revision), right-click and choose create branch/tag from revision... 6274
454 5705 ...that is (not really) the question. While a checkout downloads everything from the desired branch in the repository to your working directory, TortoiseSVNSwitch... only transfers the changed data to your working copy. Good for the network load, good for your patience. :-) 6286
455 5709 TortoiseSVNCheckout to make a fresh checkout in an empty folder. You can check out to any location on your local disk and you can create as many working copies from your repository as you like. 6290
456 5713 Switch your current working copy to the newly created copy in the repository. Again select the top level folder of your project and use TortoiseSVNSwitch... from the context menu. 6294
457 5717 In the next dialog enter the URL of the branch you just created. Select the Head Revision radio button and click on OK. Your working copy is switched to the new branch/tag. 6298
458 5721 Switch works just like Update in that it never discards your local changes. Any changes you have made to your working copy which have not yet been committed will be merged when you do the Switch. If you do not want this to happen then you must either commit the changes before switching, or revert your working copy to an already-committed revision (typically HEAD). 6302
459 5725 If you want to work on trunk and branch, but don't want the expense of a fresh checkout, you can use Windows Explorer to make a copy of your trunk checkout in another folder, then TortoiseSVNSwitch... that copy to your new branch. 6306
460 5733 To be able to work with your freshly generated branch or tag you have several ways to handle it. You can: 6314
461 5737 Tags are typically used to create a static snapshot of the project at a particular stage. As such they are not normally used for development - that's what branches are for, which is the reason we recommended the /trunk /branches /tags repository structure in the first place. Working on a tag revision is not a good idea, but because your local files are not write protected there is nothing to stop you doing this by mistake. However, if you try to commit to a path in the repository which contains /tags/, TortoiseSVN will warn you. 6318
462 5741 It may be that you need to make further changes to a release which you have already tagged. The correct way to handle this is to create a new branch from the tag first and commit the branch. Do your Changes on this branch and then create a new tag from this new branch, e.g. Version_1.0.1. 6322
463 5745 If you modify a working copy created from a branch and commit, then all changes go to the new branch and not the trunk. Only the modifications are stored. The rest remains a cheap copy. 6326
464 5749 Although Subversion itself makes no distinction between tags and branches, the way they are typically used differs a bit. 6330
465 5764 Where branches are used to maintain separate lines of development, at some stage you will want to merge the changes made on one branch back into the trunk, or vice versa. 6345
466 5768 It is important to understand how branching and merging works in Subversion before you start using it, as it can become quite complex. It is highly recommended that you read the chapter Branching and Merging in the Subversion book, which gives a full description and many examples of how it is used. 6349
467 5772 The next point to note is that merging always takes place within a working copy. If you want to merge changes into a branch, you have to have a working copy for that branch checked out, and invoke the merge wizard from that working copy using TortoiseSVNMerge.... 6353
468 5776 In general it is a good idea to perform a merge into an unmodified working copy. If you have made other changes in your WC, commit those first. If the merge does not go as you expect, you may want to revert the changes, and the Revert command will discard all changes including any you made before the merge. 6357
469 5780 There are three common use cases for merging which are handled in slightly different ways, as described below. The first page of the merge wizard asks you to select the method you need. 6361
470 5792 What you are asking Subversion to do is this: Calculate the changes necessary to get [FROM] revision 1 of branch A [TO] revision 7 of branch A, and apply those changes to my working copy (of trunk or branch B). 6375
471 5801 This method covers the case when you have made a feature branch as discussed in the Subversion book. All trunk changes have been ported to the feature branch, week by week, and now the feature is complete you want to merge it back into the trunk. Because you have kept the feature branch synchronized with the trunk, the latest versions of branch and trunk will be absolutely identical except for your branch changes. 6384
472 5805 This is a special case of the tree merge described below, and it requires only the URL to merge from (normally) your development branch. It uses the merge-tracking features of Subversion to calculate the correct revision ranges to use, and perform additional checks which ensure that the branch has been fully updated with trunk changes. This ensures that you don't accidentally undo work that others have committed to trunk since you last synchronized changes. 6388
473 5809 After the merge, all branch development has been completely merged back into the main development line. The branch is now redundant and can be deleted. 6392
474 5813 Once you have performed a reintegrate merge you should not continue to use it for development. The reason for this is that if you try to resynchronize your existing branch from trunk later on, merge tracking will see your reintegration as a trunk change that has not yet been merged into the branch, and will try to merge the branch-to-trunk merge back into the branch! The solution to this is simply to create a new branch from trunk to continue the next phase of your development. 6396
475 5821 This is a more general case of the reintegrate method. What you are asking Subversion to do is: Calculate the changes necessary to get [FROM] the head revision of the trunk [TO] the head revision of the branch, and apply those changes to my working copy (of the trunk). The net result is that trunk now looks exactly like the branch. 6404
476 5825 If your server/repository does not support merge-tracking then this is the only way to merge a branch back to trunk. Another use case occurs when you are using vendor branches and you need to merge the changes following a new vendor drop into your trunk code. For more information read the chapter on vendor branches in the Subversion Book. 6408
477 5841 In the From: field enter the full folder URL of the branch or tag containing the changes you want to port into your working copy. You may also click ... to browse the repository and find the desired branch. If you have merged from this branch before, then just use the drop down list which shows a history of previously used URLs. 6425
478 5845 In the Revision range to merge field enter the list of revisions you want to merge. This can be a single revision, a list of specific revisions separated by commas, or a range of revisions separated by a dash, or any combination of these. 6429
479 5849 There is an important difference in the way a revision range is specified with TortoiseSVN compared to the command line client. The easiest way to visualise it is to think of a fence with posts and fence panels. 6433
480 5853 With the command line client you specify the changes to merge using two fence post revisions which specify the before and after points. 6437
481 5857 With TortoiseSVN you specify the changeset to merge using fence panels. The reason for this becomes clear when you use the log dialog to specify revisions to merge, where each revision appears as a changeset. 6441
482 5861 If you are merging revisions in chunks, the method shown in the subversion book will have you merge 100-200 this time and 200-300 next time. With TortoiseSVN you would merge 100-200 this time and 201-300 next time. 6445
483 5865 This difference has generated a lot of heat on the mailing lists. We acknowledge that there is a difference from the command line client, but we believe that for the majority of GUI users it is easier to understand the method we have implemented. 6449
484 5869 The easiest way to select the range of revisions you need is to click on Show Log, as this will list recent changes with their log comments. If you want to merge the changes from a single revision, just select that revision. If you want to merge changes from several revisions, then select that range (using the usual Shift-modifier). Click on OK and the list of revision numbers to merge will be filled in for you. 6453
485 5873 If you want to merge changes back out of your working copy, to revert a change which has already been committed, select the revisions to revert and make sure the Reverse merge box is checked. 6457
486 5877 If you have already merged some changes from this branch, hopefully you will have made a note of the last revision merged in the log message when you committed the change. In that case, you can use Show Log for the Working Copy to trace that log message. Remembering that we are thinking of revisions as changesets, you should Use the revision after the end point of the last merge as the start point for this merge. For example, if you have merged revisions 37 to 39 last time, then the start point for this merge should be revision 40. 6461
487 5881 If you are using the merge tracking features of Subversion, you do not need to remember which revisions have already been merged - Subversion will record that for you. If you leave the revision range blank, all revisions which have not yet been merged will be included. Read to find out more. 6465
488 5885 If other people may be committing changes then be careful about using the HEAD revision. It may not refer to the revision you think it does if someone else made a commit after your last update. 6469
489 5889 Click Next and go to 6473
490 5901 To merge a feature branch back into the trunk you must start the merge wizard from within a working copy of the trunk. 6486
491 5905 In the From URL: field enter the full folder URL of the branch that you want to merge back. You may also click ... to browse the repository. 6490
492 5909 There are some conditions which apply to a reintegrate merge. Firstly, the server must support merge tracking. The working copy must be of depth infinite (no sparse checkouts), and it must not have any local modifications, switched items or items that have been updated to revisions other than HEAD. All changes to trunk made during branch development must have been merged across to the branch (or marked as having been merged). The range of revisions to merge will be calculated automatically. 6494
493 5925 If you are using this method to merge a feature branch back to trunk, you need to start the merge wizard from within a working copy of trunk. 6511
494 5929 In the From: field enter the full folder URL of the trunk. This may sound wrong, but remember that the trunk is the start point to which you want to add the branch changes. You may also click ... to browse the repository. 6515
495 5933 In the To: field enter the full folder URL of the feature branch. 6519
496 5937 In both the From Revision field and the To Revision field, enter the last revision number at which the two trees were synchronized. If you are sure no-one else is making commits you can use the HEAD revision in both cases. If there is a chance that someone else may have made a commit since that synchronization, use the specific revision number to avoid losing more recent commits. 6523
497 5941 You can also use Show Log to select the revision. 6527
498 5949 This page of the wizard lets you specify advanced options, before starting the merge process. Most of the time you can just use the default settings. 6535
499 5953 You can specify the depth to use for the merge, i.e. how far down into your working copy the merge should go. The depth terms used are described in . The default depth is Working copy, which uses the existing depth setting, and is almost always what you want. 6539
500 5957 Most of the time you want merge to take account of the file's history, so that changes relative to a common ancestor are merged. Sometimes you may need to merge files which are perhaps related, but not in your repository. For example you may have imported versions 1 and 2 of a third party library into two separate directories. Although they are logically related, Subversion has no knowledge of this because it only sees the tarballs you imported. If you attempt to merge the difference between these two trees you would see a complete removal followed by a complete add. To make Subversion use only path-based differences rather than history-based differences, check the Ignore ancestry box. Read more about this topic in the Subversion book, Noticing or Ignoring Ancestry 6543
501 5961 You can specify the way that line ending and whitespace changes are handled. These options are described in . The default behaviour is to treat all whitespace and line-end differences as real changes to be merged. 6547
502 5965 The checkbox marked Force the merge is used to avoid a tree conflict where an incoming delete affects a file that is either modified locally or not versioned at all. If the file is deleted then there is no way to recover it, which is why that option is not checked by default. 6551
503 5969 If you are using merge tracking and you want to mark a revision as having been merged, without actually doing the merge here, check the Only record the merge checkbox. There are two possible reasons you might want to do this. It may be that the merge is too complicated for the merge algorithms, so you code the changes by hand, then mark the change as merged so that the merge tracking algorithm is aware of it. Or you might want to prevent a particular revision from being merged. Marking it as already merged will prevent the merge occurring with merge-tracking-aware clients. 6555
504 5973 Now everything is set up, all you have to do is click on the Merge button. If you want to preview the results Test Merge simulates the merge operation, but does not modify the working copy at all. It shows you a list of the files that will be changed by a real merge, and notes files where conflicts may occur. Because merge tracking makes the merge process a lot more complicated, there is no guaranteed way to find out in advance whether the merge will complete without conflicts, so files marked as conflicted in a test merge may in fact merge without any problem. 6559
505 5977 The merge progress dialog shows each stage of the merge, with the revision ranges involved. This may indicate one more revision than you were expecting. For example if you asked to merge revision 123 the progress dialog will report Merging revisions 122 through 123. To understand this you need to remember that Merge is closely related to Diff. The merge process works by generating a list of differences between two points in the repository, and applying those differences to your working copy. The progress dialog is simply showing the start and end points for the diff. 6563
506 5985 The merge is now complete. It's a good idea to have a look at the merge and see if it's as expected. Merging is usually quite complicated. Conflicts often arise if the branch has drifted far from the trunk. 6572
507 5989 For Subversion clients and servers prior to 1.5, no merge information is stored and merged revisions have to be tracked manually. When you have tested the changes and come to commit this revision, your commit log message should always include the revision numbers which have been ported in the merge. If you want to apply another merge at a later time you will need to know what you have already merged, as you do not want to port a change more than once. For more information about this, refer to Best Practices for Merging in the Subversion book. 6576
508 5993 If your server and all clients are running Subversion 1.5 or higher, the merge tracking facility will record the revisions merged and avoid a revision being merged more than once. This makes your life much simpler as you can simply merge the entire revision range each time and know that only new revisions will actually be merged. 6580
509 5997 Branch management is important. If you want to keep this branch up to date with the trunk, you should be sure to merge often so that the branch and trunk do not drift too far apart. Of course, you should still avoid repeated merging of changes, as explained above. 6584
510 6001 If you have just merged a feature branch back into the trunk, the trunk now contains all the new feature code, and the branch is obsolete. You can now delete it from the repository if required. 6588
511 6005 Subversion can't merge a file with a folder and vice versa - only folders to folders and files to files. If you click on a file and open up the merge dialog, then you have to give a path to a file in that dialog. If you select a folder and bring up the dialog, then you must specify a folder URL for the merge. 6592
512 6017 You can avoid the danger of merging the same revision twice (repeated merge problem). Once a revision is marked as having been merged, future merges which include that revision in the range will skip over it. 6604
513 6021 When you merge a branch back into trunk, the log dialog can show you the branch commits as part of the trunk log, giving better traceability of changes. 6608
514 6025 When you show the log dialog from within the merge dialog, revisions already merged are shown in grey. 6612
515 6029 When showing blame information for a file, you can choose to show the original author of merged revisions, rather than the person who did the merge. 6616
516 6033 You can mark revisions as do not merge by including them in the list of merged revisions without actually doing the merge. 6620
517 6037 Subversion 1.5 introduced facilities for merge tracking. When you merge changes from one tree into another, the revision numbers merged are stored and this information can be used for several different purposes. 6624
518 6041 Merge tracking information is stored in the svn:mergeinfo property by the client when it performs a merge. When the merge is committed the server stores that information in a database, and when you request merge, log or blame information, the server can respond appropriately. For the system to work properly you must ensure that the server, the repository and all clients are upgraded. Earlier clients will not store the svn:mergeinfo property and earlier servers will not provide the information requested by new clients. 6628
519 6045 Find out more about merge tracking from Subversion's Merge tracking documentation. 6632
520 6061 Merging does not always go smoothly. Sometimes there is a conflict, and if you are merging multiple ranges, you generally want to resolve the conflict before merging of the next range starts. TortoiseSVN helps you through this process by showing the merge conflict callback dialog. 6650
521 6065 Choosing Prefer local will select your local changes in every conflict. Likewise, Prefer repository will select the repository changes in every conflict. This sounds easy, but the conflicts often cover more lines than you think they will and you may get unexpected results. 6654
522 6069 Normally you will want to look at the conflicts and resolve them yourself. In that case, choose the Edit Conflict which will start up your merge tool. When you are satisfied with the result, click Resolved. 6658
523 6073 The last option is to postpone resolution and continue with merging. You can choose to do that for the current conflicted file, or for all files in the rest of the merge. However, if there are further changes in that file, it will not be possible to complete the merge. 6662
524 6077 It is likely that some of the changes will have merged smoothly, while other local changes conflict with changes already committed to the repository. All changes which can be merged are merged. The Merge Conflict Callback dialog gives you three different ways of handling the lines which are in conflict. 6666
525 6081 If you do not want to use this interactive callback, there is a checkbox in the merge progress dialog Merge non-interactive. If this is set for a merge and the merge would result in a conflict, the file is marked as in conflict and the merge goes on. You will have to resolve the conflicts after the whole merge is finished. If it is not set, then before a file is marked as conflicted you get the chance to resolve the conflict during the merge. This has the advantage that if a file gets multiple merges (multiple revisions apply a change to that file), subsequent merges might succeed depending on which lines are affected. But of course you can't walk away to get a coffee while the merge is running ;) 6670
526 6097 If you want to merge all changes from a feature branch back to trunk, then you can use the TortoiseSVNMerge reintegrate... from the extended context menu (hold down the Shift key while you right click on the file). This dialog is very easy. All you have to do is set the options for the merge, as described in . The rest is done by TortoiseSVN automatically using merge tracking. 6689
527 6105 When you develop a new feature on a separate branch it is a good idea to work out a policy for re-integration when the feature is complete. If other work is going on in trunk at the same time you may find that the differences become significant over time, and merging back becomes a nightmare. 6698
528 6109 If the feature is relatively simple and development will not take long then you can adopt a simple approach, which is to keep the branch entirely separate until the feature is complete, then merge the branch changes back into trunk. In the merge wizard this would be a simple Merge a range of revisions, with the revision range being the revision span of the branch. 6702
529 6113 If the feature is going to take longer and you need to account for changes in trunk, then you need to keep the branch synchronised. This simply means that periodically you merge trunk changes into the branch, so that the branch contains all the trunk changes plus the new feature. The synchronisation process uses Merge a range of revisions. When the feature is complete then you can merge it back to trunk using either Reintegrate a branch or Merge two different trees. 6706
530 6129 You are using unmergeable files, for example, graphics files. If two people change the same file, merging is not possible, so one of you will lose their changes. 6722
531 6133 Your company has always used a locking revision control system in the past and there has been a management decision that locking is best. 6726
532 6137 Subversion generally works best without locking, using the Copy-Modify-Merge methods described earlier in . However there are a few instances when you may need to implement some form of locking policy. 6730
533 6141 Firstly you need to ensure that your Subversion server is upgraded to at least version 1.2. Earlier versions do not support locking at all. If you are using file:// access, then of course only your client needs to be updated. 6734
534 6145 How Locking Works in Subversion 6738
535 6149 By default, nothing is locked and anyone who has commit access can commit changes to any file at any time. Others will update their working copies periodically and changes in the repository will be merged with local changes. 6742
536 6153 If you Get a Lock on a file, then only you can commit that file. Commits by all other users will be blocked until you release the lock. A locked file cannot be modified in any way in the repository, so it cannot be deleted or renamed either, except by the lock owner. 6746
537 6157 However, other users will not necessarily know that you have taken out a lock. Unless they check the lock status regularly, the first they will know about it is when their commit fails, which in most cases is not very useful. To make it easier to manage locks, there is a new Subversion property svn:needs-lock. When this property is set (to any value) on a file, whenever the file is checked out or updated, the local copy is made read-only unless that working copy holds a lock for the file. This acts as a warning that you should not edit that file unless you have first acquired a lock. Files which are versioned and read-only are marked with a special overlay in TortoiseSVN to indicate that you need to acquire a lock before editing. 6750
538 6161 Locks are recorded by working copy location as well as by owner. If you have several working copies (at home, at work) then you can only hold a lock in one of those working copies. 6754
539 6165 If one of your co-workers acquires a lock and then goes on holiday without releasing it, what do you do? Subversion provides a means to force locks. Releasing a lock held by someone else is referred to as Breaking the lock, and forcibly acquiring a lock which someone else already holds is referred to as Stealing the lock. Naturally these are not things you should do lightly if you want to remain friends with your co-workers. 6758
540 6169 Locks are recorded in the repository, and a lock token is created in your local working copy. If there is a discrepancy, for example if someone else has broken the lock, the local lock token becomes invalid. The repository is always the definitive reference. 6762
541 6181 Select the file(s) in your working copy for which you want to acquire a lock, then select the command TortoiseSVNGet Lock.... A dialog appears, allowing you to enter a comment, so others can see why you have locked the file. The comment is optional and currently only used with Svnserve based repositories. If (and only if) you need to steal the lock from someone else, check the Steal lock box, then click on OK. 6775
542 6185 If you select a folder and then use TortoiseSVNGet Lock... the lock dialog will open with every file in every sub-folder selected for locking. If you really want to lock an entire hierarchy, that is the way to do it, but you could become very unpopular with your co-workers if you lock them out of the whole project. Use with care ... 6779
543 6193 To make sure you don't forget to release a lock you don't need any more, locked files are shown in the commit dialog and selected by default. If you continue with the commit, locks you hold on the selected files are removed, even if the files haven't been modified. If you don't want to release a lock on certain files, you can uncheck them (if they're not modified). If you want to keep a lock on a file you've modified, you have to enable the Keep locks checkbox before you commit your changes. 6787
544 6197 To release a lock manually, select the file(s) in your working copy for which you want to release the lock, then select the command TortoiseSVNRelease Lock There is nothing further to enter so TortoiseSVN will contact the repository and release the locks. You can also use this command on a folder to release all locks recursively. 6791
545 6209 To see what locks you and others hold, you can use TortoiseSVNCheck for Modifications.... Locally held lock tokens show up immediately. To check for locks held by others (and to see if any of your locks are broken or stolen) you need to click on Check Repository. 6805
546 6213 From the context menu here, you can also get and release locks, as well as breaking and stealing locks held by others. 6809
547 6217 Avoid Breaking and Stealing Locks 6813
548 6221 If you break or steal someone else's lock without telling them, you could potentially cause loss of work. If you are working with unmergeable file types and you steal someone else's lock, once you release the lock they are free to check in their changes and overwrite yours. Subversion doesn't lose data, but you have lost the team-working protection that locking gave you. 6817
549 6225 Making Non-locked Files Read-Only 6821
550 6229 As mentioned above, the most effective way to use locking is to set the svn:needs-lock property on files. Refer to for instructions on how to set properties. Files with this property set will always be checked out and updated with the read-only flag set unless your working copy holds a lock. As a reminder, TortoiseSVN uses a special overlay to indicate this. 6825
551 6233 If you operate a policy where every file has to be locked then you may find it easier to use Subversion's auto-props feature to set the property automatically every time you add new files. Read for further information. 6829
552 6241 When you create a new repository with Subversion 1.2 or higher, four hook templates are created in the repository hooks directory. These are called before and after getting a lock, and before and after releasing a lock. 6838
553 6245 It is a good idea to install a post-lock and post-unlock hook script on the server which sends out an email indicating the file which has been locked. With such a script in place, all your users can be notified if someone locks/unlocks a file. You can find an example hook script hooks/post-lock.tmpl in your repository folder. 6842
554 6249 You might also use hooks to disallow breaking or stealing of locks, or perhaps limit it to a named administrator. Or maybe you want to email the owner when one of their locks is broken or stolen. 6846
555 6253 Read to find out more. 6850
556 6257 Creating and Applying Patches 6854
557 6269 For open source projects (like this one) everyone has read access to the repository, and anyone can make a contribution to the project. So how are those contributions controlled? If just anyone could commit changes, the project would be permanently unstable and probably permanently broken. In this situation the change is managed by submitting a patch file to the development team, who do have write access. They can review the patch first, and then either submit it to the repository or reject it back to the author. 6867
558 6273 Patch files are simply Unified-Diff files showing the differences between your working copy and the base revision. 6871
559 6281 First you need to make and test your changes. Then instead of using TortoiseSVNCommit... on the parent folder, you select TortoiseSVNCreate Patch... 6880
560 6289 you can now select the files you want included in the patch, just as you would with a full commit. This will produce a single file containing a summary of all the changes you have made to the selected files since the last update from the repository. 6889
561 6293 You can produce separate patches containing changes to different sets of files. Of course, if you create a patch file, make some more changes to the same files and then create another patch, the second patch file will include both sets of changes. 6893
562 6297 Just save the file using a filename of your choice. Patch files can have any extension you like, but by convention they should use the .patch or .diff extension. You are now ready to submit your patch file. 6897
563 6301 You can also save the patch to the clipboard instead of to a file. You might want to do this so that you can paste it into an email for review by others. Or if you have two working copies on one machine and you want to transfer changes from one to the other, a patch on the clipboard is a convenient way of doing this. 6901
564 6309 Patch files are applied to your working copy. This should be done from the same folder level as was used to create the patch. If you are not sure what this is, just look at the first line of the patch file. For example, if the first file being worked on was doc/source/english/chapter1.xml and the first line in the patch file is Index: english/chapter1.xml then you need to apply the patch to the doc/source/ folder. However, provided you are in the correct working copy, if you pick the wrong folder level, TortoiseSVN will notice and suggest the correct level. 6910
565 6313 In order to apply a patch file to your working copy, you need to have at least read access to the repository. The reason for this is that the merge program must reference the changes back to the revision against which they were made by the remote developer. 6914
566 6317 From the context menu for that folder, click on TortoiseSVNApply Patch... This will bring up a file open dialog allowing you to select the patch file to apply. By default only .patch or .diff files are shown, but you can opt for All files. If you previously saved a patch to the clipboard, you can use Open from clipboard... in the file open dialog. Note that this option only appears if you saved the patch to the clipboard using TortoiseSVNCreate Patch.... Copying a patch to the clipboard from another app will not make the button appear. 6918
567 6321 Alternatively, if the patch file has a .patch or .diff extension, you can right click on it directly and select TortoiseSVNApply Patch.... In this case you will be prompted to enter a working copy location. 6922
568 6325 These two methods just offer different ways of doing the same thing. With the first method you select the WC and browse to the patch file. With the second you select the patch file and browse to the WC. 6926
569 6329 Once you have selected the patch file and working copy location, TortoiseMerge runs to merge the changes from the patch file with your working copy. A small window lists the files which have been changed. Double click on each one in turn, review the changes and save the merged files. 6930
570 6333 The remote developer's patch has now been applied to your working copy, so you need to commit to allow everyone else to access the changes from the repository. 6934
571 6337 Who Changed Which Line? 6938
572 6349 praise 6950
573 6353 Sometimes you need to know not only what lines have changed, but also who exactly changed specific lines in a file. That's when the TortoiseSVNBlame... command, sometimes also referred to as annotate command comes in handy. 6954
574 6357 This command lists, for every line in a file, the author and the revision the line was changed. 6958
575 6369 If you're not interested in changes from earlier revisions you can set the revision from which the blame should start. Set this to 1, if you want the blame for every revision. 6972
576 6373 By default the blame file is viewed using TortoiseBlame, which highlights the different revisions to make it easier to read. If you wish to print or edit the blame file, select Use Text viewer to view blames 6976
577 6377 You can specify the way that line ending and whitespace changes are handled. These options are described in . The default behaviour is to treat all whitespace and line-end differences as real changes, but if you want to ignore an indentation change and find the original author, you can choose an appropriate option here. 6980
578 6381 Once you press OK TortoiseSVN starts retrieving the data to create the blame file. Please note: This can take several minutes to finish, depending on how much the file has changed and of course your network connection to the repository. Once the blame process has finished the result is written into a temporary file and you can view the results. 6984
579 6389 TortoiseBlame, which is included with TortoiseSVN, makes the blame file easier to read. When you hover the mouse over a line in the blame info column, all lines with the same revision are shown with a darker background. Lines from other revisions which were changed by the same author are shown with a light background. The colouring may not work as clearly if you have your display set to 256 colour mode. 6993
580 6393 If you left click on a line, all lines with the same revision are highlighted, and lines from other revisions by the same author are highlighted in a lighter colour. This highlighting is sticky, allowing you to move the mouse without losing the highlights. Click on that revision again to turn off highlighting. 6997
581 6397 The revision comments (log message) are shown in a hint box whenever the mouse hovers over the blame info column. If you want to copy the log message for that revision, use the context menu which appears when you right click on the blame info column. 7001
582 6401 You can search within the Blame report using EditFind.... This allows you to search for revision numbers, authors and the content of the file itself. Log messages are not included in the search - you should use the Log Dialog to search those. 7005
583 6405 You can also jump to a specific line number using EditGo To Line.... 7009
584 6409 When the mouse is over the blame info columns, a context menu is available which helps with comparing revisions and examining history, using the revision number of the line under the mouse as a reference. Context menuBlame previous revision generates a blame report for the same file, but using the previous revision as the upper limit. This gives you the blame report for the state of the file just before the line you are looking at was last changed. Context menuShow changes starts your diff viewer, showing you what changed in the referenced revision. Context menuShow log displays the revision log dialog starting with the referenced revision. 7013
585 6413 If you need a better visual indicator of where the oldest and newest changes are, select ViewColor age of lines. This will use a colour gradient to show newer lines in red and older lines in blue. The default colouring is quite light, but you can change it using the TortoiseBlame settings. 7017
586 6417 If you are using Merge Tracking, where lines have changed as a result of merging from another path, TortoiseBlame will show the revision and author of the last change in the original file rather than the revision where the merge took place. These lines are indicated by showing the revision and author in italics. If you do not want merged lines shown in this way, uncheck the Include merge info checkbox. 7021
587 6421 If you want to see the paths involved in the merge, select ViewMerge paths. 7025
588 6425 The settings for TortoiseBlame can be accessed using TortoiseSVNSettings... on the TortoiseBlame tab. Refer to . 7029
589 6433 One of the limitations of the Blame report is that it only shows the file as it was in a particular revision, and shows the last person to change each line. Sometimes you want to know what change was made, as well as who made it. What you need here is a combination of the diff and blame reports. 7037
590 6441 In the top pane, select 2 revisions, then select Context menuBlame revisions. This will fetch the blame data for the 2 revisions, then use the diff viewer to compare the two blame files. 7045
591 6449 Select one revision in the top pane, then pick one file in the bottom pane and select Context menuBlame changes. This will fetch the blame data for the selected revision and the previous revision, then use the diff viewer to compare the two blame files. 7053
592 6457 Show the log for a single file, and in the top pane, select a single revision, then select Context menuCompare and Blame with Working BASE. This will fetch the blame data for the selected revision, and for the file in the working BASE, then use the diff viewer to compare the two blame files. 7062
593 6461 The revision log dialog includes several options which allow you to do this. 7066
594 6482 Sometimes you need to work directly on the repository, without having a working copy. That's what the Repository Browser is for. Just as the explorer and the icon overlays allow you to view your working copy, so the Repository Browser allows you to view the structure and status of the repository. With the Repository Browser you can execute commands like copy, move, rename, ... directly on the repository. 7088
595 6486 The repository browser looks very similar to the Windows explorer, except that it is showing the content of the repository at a particular revision rather than files on your computer. In the left pane you can see a directory tree, and in the right pane are the contents of the selected directory. At the top of the Repository Browser Window you can enter the URL of the repository and the revision you want to browse. 7092
596 6490 Just like Windows explorer, you can click on the column headings in the right pane if you want to set the sort order. And as in explorer there are context menus available in both panes. 7096
597 6494 Save an unversioned copy of the file to your hard drive. 7100
598 6498 Show the revision log for that file, or show a graph of all revisions so you can see where the file came from. 7104
599 6502 Blame the file, to see who changed which line and when. 7108
600 6510 Make a copy of the file, either to a different part of the repository, or to a working copy rooted in the same repository. 7117
601 6518 The context menu for a file allows you to: 7126
602 6522 Show the revision log for that folder, or show a graph of all revisions so you can see where the folder came from. 7130
603 6526 Export the folder to a local unversioned copy on your hard drive. 7134
604 6530 Checkout the folder to produce a local working copy on your hard drive. 7138
605 6538 Add files or folders directly to the repository. 7147
606 6546 Make a copy of the folder, either to a different part of the repository, or to a working copy rooted in the same repository. This can also be used to create a branch/tag without the need to have a working copy checked out. 7156
607 6550 View/Edit the folder's properties. 7160
608 6554 Mark the folder for comparison. A marked folder is shown in bold. 7164
609 6558 Compare the folder with a previously marked folder, either as a unified diff, or as a list of changed files which can then be visually diffed using the default diff tool. This can be particularly useful for comparing two tags, or trunk and branch to see what changed. 7168
610 6562 The context menu for a folder allows you to: 7172
611 6566 If you select two folders in the right pane, you can view the differences either as a unified-diff, or as a list of files which can be visually diffed using the default diff tool. 7176
612 6570 If you select multiple folders in the right pane, you can checkout all of them at once into a common parent folder. 7180
613 6574 If you select 2 tags which are copied from the same root (typically /trunk/), you can use Context MenuShow Log... to view the list of revisions between the two tag points. 7184
614 6578 You can use F5 to refresh the view as usual. This will refresh everything which is currently displayed. If you want to pre-fetch or refresh the information for nodes which have not been opened yet, use Ctrl-F5. After that, expanding any node will happen instantly without a network delay while the information is fetched. 7188
615 6582 You can also use the repository browser for drag-and-drop operations. If you drag a folder from explorer into the repo-browser, it will be imported into the repository. Note that if you drag multiple items, they will be imported in separate commits. 7192
616 6586 If you want to move an item within the repository, just left drag it to the new location. If you want to create a copy rather than moving the item, Ctrl-left drag instead. When copying, the cursor has a plus symbol on it, just as it does in Explorer. 7196
617 6590 If you want to copy/move a file or folder to another location and also give it a new name at the same time, you can right drag or Ctrl-right drag the item instead of using left drag. In that case, a rename dialog is shown where you can enter a new name for the file or folder. 7200
618 6594 Whenever you make changes in the repository using one of these methods, you will be presented with a log message entry dialog. If you dragged something by mistake, this is also your chance to cancel the action. 7204
619 6598 Sometimes when you try to open a path you will get an error message in place of the item details. This might happen if you specified an invalid URL, or if you don't have access permission, or if there is some other server problem. If you need to copy this message to include it in an email, just right click on it and use Context MenuCopy error message to clipboard, or simply use Ctrl+C. 7208
620 6618 Sometimes you need to know where branches and tags were taken from the trunk, and the ideal way to view this sort of information is as a graph or tree structure. That's when you need to use TortoiseSVNRevision Graph... 7228
621 6622 This command analyses the revision history and attempts to create a tree showing the points at which copies were taken, and when branches/tags were deleted. 7232
622 6626 In order to generate the graph, TortoiseSVN must fetch all log messages from the repository root. Needless to say this can take several minutes even with a repository of a few thousand revisions, depending on server speed, network bandwidth, etc. If you try this with something like the Apache project which currently has over 500,000 revisions you could be waiting for some time. 7236
623 6630 The good news is that if you are using log caching, you only have to suffer this delay once. After that, log data is held locally. Log caching is enabled in TortoiseSVN's settings. 7240
624 6642 Items which have been added, or created by copying another file/folder are shown using a rounded rectangle. The default colour is green. Tags and trunks are treated as a special case and use a different shade, depending on the TortoiseSVNSettings 7253
625 6650 Deleted items eg. a branch which is no longer required, are shown using an octagon (rectangle with corners cut off). The default colour is red. 7261
626 6658 Renamed items are also shown using an octagon, but the default colour is blue. 7269
627 6666 The graph is normally restricted to showing branch points, but it is often useful to be able to see the respective HEAD revision for each branch too. If you select Show HEAD revisions, each HEAD revision nodes will be shown as an ellipse. Note that HEAD here refers to the last revision committed on that path, not to the HEAD revision of the repository. 7278
628 6674 If you invoked the revision graph from a working copy, you can opt to show the BASE revision on the graph using Show WC revision, which marks the BASE node with a bold outline. 7287
629 6682 If you invoked the revision graph from a working copy, you can opt to show an additional node representing your modified working copy using Show WC modifications. This is an elliptical node with a bold outline in red by default. 7296
630 6690 All other items are shown using a plain rectangle. 7304
631 6694 Each revision graph node represents a revision in the repository where something changed in the tree you are looking at. Different types of node can be distinguished by shape and colour. The shapes are fixed, but colours can be set using TortoiseSVNSettings 7308
632 6698 Note that by default the graph only shows the points at which items were added, copied or deleted. Showing every revision of a project will generate a very large graph for non-trivial cases. If you really want to see all revisions where changes were made, there is an option to do this in the View menu and on the toolbar. 7312
633 6702 The default view (grouping off) places the nodes such that their vertical position is in strict revision order, so you have a visual cue for the order in which things were done. Where two nodes are in the same column the order is very obvious. When two nodes are in adjacent columns the offset is much smaller because there is no need to prevent the nodes from overlapping, and as a result the order is a little less obvious. Such optimisations are necessary to keep complex graphs to a reasonable size. Please note that this ordering uses the edge of the node on the older side as a reference, i.e. the bottom edge of the node when the graph is shown with oldest node at the bottom. The reference edge is significant because the node shapes are not all the same height. 7316
634 6714 The default behavior (grouping off) has all rows sorted strictly by revision. As a result, long-living branches with sparse commits occupy a whole column for only a few changes and the graph becomes very broad. 7330
635 6718 This mode groups changes by branch, so that there is no global revision ordering: Consecutive revisions on a branch will be shown in (often) consecutive lines. Sub-branches, however, are arranged in such a way that later branches will be shown in the same column above older branches to keep the graph slim. As a result, a given row may contain changes from different revisions. 7334
636 6726 Normally the graph shows the oldest revision at the bottom, and the tree grows upwards. Use this option to grow down from the top instead. 7342
637 6734 When a graph is broken into several smaller trees, the trees may appear either in natural revision order, or aligned at the bottom of the window, depending on whether you are using the Group Branches option. Use this option to grow all trees down from the top instead. 7351
638 6742 If the layout of the graph has produced a lot of crossing lines, use this option to clean it up. This may make the layout columns appear in less logical places, for example in a diagonal line rather than a column, and the graph may require a larger area to draw. 7360
639 6750 Long path names can take a lot of space and make the node boxes very large. Use this option to show only the changed part of a path, replacing the common part with dots. E.g. if you create a branch /branches/1.2.x/doc/html from /trunk/doc/html the branch could be shown in compact form as /branches/1.2.x/.. because the last two levels, doc and html, did not change. 7369
640 6758 This does just what you expect and shows every revision where something (in the tree that you are graphing) has changed. For long histories this can produce a truly huge graph. 7378
641 6766 This ensures that the latest revision on every branch is always shown on the graph. 7387
642 6774 When a branch/tag is made, the default behaviour is to show the branch as taken from the last node where a change was made. Strictly speaking this is inaccurate since the branches are often made from the current HEAD rather than a specific revision. So it is possible to show the more correct (but less useful) revision that was used to create the copy. Note that this revision may be younger than the HEAD revision of the source branch. 7396
643 6782 When a project has many tags, showing every tag as a separate node on the graph takes a lot of space and obscures the more interesting development branch structure. At the same time you may need to be able to access the tag content easily so that you can compare revisions. This option hides the nodes for tags and shows them instead in the tooltip for the node that they were copied from. A tag icon on the right side of the source node indicates that tags were made. 7405
644 6790 Hides paths which are no longer present at the HEAD revision of the repository, e.g. deleted branches. 7414
645 6798 Hides branches where no changes were committed to the respective file or sub-folder. This does not necessarily indicate that the branch was not used, just that no changes were made to this part of it. 7423
646 6806 Marks the revision on the graph which corresponds to the update revision of the item you fetched the graph for. If you have just updated, this will be HEAD, but if others have committed changes since your last update your WC may be a few revisions lower down. The node is marked by giving it a bold outline. 7432
647 6814 If your WC contains local changes, this option draws it as a separate elliptical node, linked back to the node that your WC was last updated to. The default outline colour is red. You may need to refresh the graph using F5 to capture recent changes. 7441
648 6822 Sometimes the revision graph contains more revisions than you want to see. This option opens a dialog which allows you to restrict the range of revisions displayed, and to hide particular paths by name. 7449
649 6830 Where the graph contains several trees, it is sometimes useful to use alternating colours on the background to help distinguish between trees. 7458
650 6838 Shows a small picture of the entire graph, with the current view window as a rectangle which you can drag. This allows you to navigate the graph more easily. Note that for very large graphs the overview may become useless due to the extreme zoom factor and will therefore not be shown in such cases. 7467
651 6842 Because a revision graph is often quite complex, there are a number of features which can be used to tailor the view the way you want it. These are available in the View menu and from the toolbar. 7471
652 6850 To make it easier to navigate a large graph, use the overview window. This shows the entire graph in a small window, with the currently displayed portion highlighted. You can drag the highlighted area to change the displayed region. 7480
653 6854 The revision date, author and comments are shown in a hint box whenever the mouse hovers over a revision box. 7484
654 6858 If you select two revisions (Use Ctrl-left click), you can use the context menu to show the differences between these revisions. You can choose to show differences as at the branch creation points, but usually you will want to show the differences at the branch end points, i.e. at the HEAD revision. 7488
655 6862 You can view the differences as a Unified-Diff file, which shows all differences in a single file with minimal context. If you opt to Context MenuCompare Revisions you will be presented with a list of changed files. Double click on a file name to fetch both revisions of the file and compare them using the visual difference tool. 7492
656 6866 If you right click on a revision you can use Context MenuShow Log to view the history. 7496
657 6870 You can also merge changes in the selected revision(s) into a different working copy. A folder selection dialog allows you to choose the working copy to merge into, but after that there is no confirmation dialog, nor any opportunity to try a test merge. It is a good idea to merge into an unmodified working copy so that you can revert the changes if it doesn't work out! This is a useful feature if you want to merge selected revisions from one branch to another. 7500
658 6874 Learn to Read the Revision Graph 7504
659 6878 First-time users may be surprised by the fact that the revision graph shows something that does not match the user's mental model. If a revision changes multiple copies or branches of a file or folder, for instance, then there will be multiple nodes for that single revision. It is a good practice to start with the leftmost options in the toolbar and customize the graph step-by-step until it comes close to your mental model. 7508
660 6882 All filter options try lose as little information as possible. That may cause some nodes to change their color, for instance. Whenever the result is unexpected, undo the last filter operation and try to understand what is special about that particular revision or branch. In most cases, the initially expected outcome of the filter operation would either be inaccurate or misleading. 7512
661 6886 If you want to check the server again for newer information, you can simply refresh the view using F5. If you are using the log cache (enabled by default), this will check the repository for newer commits and fetch only the new ones. If the log cache was in offline mode, this will also attempt to go back online. 7516
662 6890 If you are using the log cache and you think the message content or author may have changed, you should use the log dialog to refresh the messages you need. Since the revision graph works from the repository root, we would have to invalidate the entire log cache, and refilling it could take a very long time. 7520
663 6898 A large tree can be difficult to navigate and sometimes you will want to hide parts of it, or break it down into a forest of smaller trees. If you hover the mouse over the point where a node link enters or leaves the node you will see one or more popup buttons which allow you to do this. 7529
664 6902 Click on the minus button to collapse the attached sub-tree. 7533
665 6906 Click on the plus button to expand a collapsed tree. When a tree has been collapsed, this button remains visible to indicate the hidden sub-tree. 7537
666 6910 Click on the cross button to split the attached sub-tree and show it as a separate tree on the graph. 7541
667 6914 Click on the circle button to reattach a split tree. When a tree has been split away, this button remains visible to indicate that there is a separate sub-tree. 7545
668 6918 Click on the graph background for the main context menu, which offers options to Expand all and Join all. If no branch has been collapsed or split, the context menu will not be shown. 7549
669 6934 Sometimes you may want a copy of your working tree without any of those .svn directories, e.g. to create a zipped tarball of your source, or to export to a web server. Instead of making a copy and then deleting all those .svn directories manually, TortoiseSVN offers the command TortoiseSVNExport.... Exporting from a URL and exporting from a working copy are treated slightly differently. 7567
670 6942 If you execute this command on an unversioned folder, TortoiseSVN will assume that the selected folder is the target, and open a dialog for you to enter the URL and revision to export from. This dialog has options to export only the top level folder, to omit external references, and to override the line end style for files which have the svn:eol-style property set. 7576
671 6946 Of course you can export directly from the repository too. Use the Repository Browser to navigate to the relevant subtree in your repository, then use Context MenuExport. You will get the Export from URL dialog described above. 7580
672 6950 If you execute this command on your working copy you'll be asked for a place to save the clean working copy without the .svn folders. By default, only the versioned files are exported, but you can use the Export unversioned files too checkbox to include any other unversioned files which exist in your WC and not in the repository. External references using svn:externals can be omitted if required. 7584
673 6954 Another way to export from a working copy is to right drag the working copy folder to another location and choose Context MenuSVN Export here or Context MenuSVN Export all here. The second option includes the unversioned files as well. 7588
674 6958 When exporting from a working copy, if the target folder already contains a folder of the same name as the one you are exporting, you will be given the option to overwrite the existing content, or to create a new folder with an automatically generated name, eg. Target (1). 7592
675 6966 The export dialog does not allow exporting single files, even though Subversion can. 7601
676 6970 To export single files with TortoiseSVN, you have to use the repository browser (). Simply drag the file(s) you want to export from the repository browser to where you want them in the explorer, or use the context menu in the repository browser to export the files. 7605
677 6978 If you want to export a copy of your project tree structure but containing only the files which have changed in a particular revision, or between any two revisions, use the compare revisions feature described in . 7614
678 6982 Removing a working copy from version control 7618
679 6991 Sometimes you have a working copy which you want to convert back to a normal folder without the .svn directories. What you really need is an export-in-place command, that just removes the control directories rather than generating a new clean directory tree. 7627
680 6995 The answer is surprisingly simple - export the folder to itself! TortoiseSVN detects this special case and asks if you want to make the working copy unversioned. If you answer yes the control directories will be removed and you will have a plain, unversioned directory tree. 7631
681 7027 If your repository has for some reason changed it's location (IP/URL). Maybe you're even stuck and can't commit and you don't want to checkout your working copy again from the new location and to move all your changed data back into the new working copy, TortoiseSVNRelocate is the command you are looking for. It basically does very little: it scans all entries files in the .svn folder and changes the URL of the entries to the new value. 7668
682 7031 You may be surprised to find that TortoiseSVN contacts the repository as part of this operation. All it is doing is performing some simple checks to make sure that the new URL really does refer to the same repository as the existing working copy. 7672
683 7035 The IP address of the server has changed. 7676
684 7039 The protocol has changed (e.g. http:// to https://). 7680
685 7043 The repository root path in the server setup has changed. 7684
686 7047 This is a very infrequently used operation. The relocate command is only used if the URL of the repository root has changed. Possible reasons are: Put another way, you need to relocate when your working copy is referring to the same location in the same repository, but the repository itself has moved. 7688
687 7051 You want to move to a different Subversion repository. In that case you should perform a clean checkout from the new repository location. 7692
688 7055 You want to switch to a different branch or directory within the same repository. To do that you should use TortoiseSVNSwitch.... Read for more information. 7696
689 7059 It does not apply if: 7700
690 7063 If you use relocate in either of the cases above, it will corrupt your working copy and you will get many unexplainable error messages while updating, committing, etc. Once that has happened, the only fix is a fresh checkout. 7704
691 7067 Integration with Bug Tracking Systems / Issue Trackers 7708
692 7084 bugtracker 7725
693 7088 It is very common in Software Development for changes to be related to a specific bug or issue ID. Users of bug tracking systems (issue trackers) would like to associate the changes they make in Subversion with a specific ID in their issue tracker. Most issue trackers therefore provide a pre-commit hook script which parses the log message to find the bug ID with which the commit is associated. This is somewhat error prone since it relies on the user to write the log message properly so that the pre-commit hook script can parse it correctly. 7729
694 7092 When the user enters a log message, a well defined line including the issue number associated with the commit can be added automatically. This reduces the risk that the user enters the issue number in a way the bug tracking tools can't parse correctly. 7733
695 7096 Or TortoiseSVN can highlight the part of the entered log message which is recognized by the issue tracker. That way the user knows that the log message can be parsed correctly. 7737
696 7100 When the user browses the log messages, TortoiseSVN creates a link out of each bug ID in the log message which fires up the browser to the issue mentioned. 7741
697 7104 TortoiseSVN can help the user in two ways: 7745
698 7108 Adding Issue Numbers to Log Messages 7749
699 7112 You can integrate a bug tracking tool of your choice in TortoiseSVN. To do this, you have to define some properties, which start with bugtraq:. They must be set on Folders: () 7753
700 7116 Set this property to the URL of your bug tracking tool. It must be properly URI encoded and it has to contain %BUGID%. %BUGID% is replaced with the Issue number you entered. This allows TortoiseSVN to display a link in the log dialog, so when you are looking at the revision log you can jump directly to your bug tracking tool. You do not have to provide this property, but then TortoiseSVN shows only the issue number and not the link to it. e.g the TortoiseSVN project is using http://issues.tortoisesvn.net/?do=details&amp;id=%BUGID% 7757
701 7120 You can also use relative URLs instead of absolute ones. This is useful when your issue tracker is on the same domain/server as your source repository. In case the domain name ever changes, you don't have to adjust the bugtraq:url property. There are two ways to specify a relative URL: 7761
702 7124 If it begins with the string ^/ it is assumed to be relative to the repository root. For example, ^/../?do=details&amp;id=%BUGID% will resolve to http://tortoisesvn.net/?do=details&amp;id=%BUGID% if your repository is located on http://tortoisesvn.net/svn/trunk/. 7765
703 7128 A URL beginning with the string / is assumed to be relative to the server's hostname. For example /?do=details&amp;id=%BUGID% will resolve to http://tortoisesvn.net/?do=details&amp;id=%BUGID% if your repository is located anywhere on http://tortoisesvn.net. 7769
704 7132 Set this to true, if you want TortoiseSVN to warn you because of an empty issue-number text field. Valid values are true/false. If not defined, false is assumed. 7773
705 7136 There are two ways to integrate TortoiseSVN with issue trackers. One is based on simple strings, the other is based on regular expressions. The properties used by both approaches are: 7777
706 7140 Issue Number in Text Box 7781
707 7144 This property activates the bug tracking system in Input field mode. If this property is set, then TortoiseSVN will prompt you to enter an issue number when you commit your changes. It's used to add a line at the end of the log message. It must contain %BUGID%, which is replaced with the issue number on commit. This ensures that your commit log contains a reference to the issue number which is always in a consistent format and can be parsed by your bug tracking tool to associate the issue number with a particular commit. As an example you might use Issue : %BUGID%, but this depends on your Tool. 7785
708 7148 This property defines if the bug-ID is appended (true) to the end of the log message or inserted (false) at the start of the log message. Valid values are true/false. If not defined, true is assumed, so that existing projects don't break. 7789
709 7152 This text is shown by TortoiseSVN on the commit dialog to label the edit box where you enter the issue number. If it's not set, Bug-ID / Issue-Nr: will be displayed. Keep in mind though that the window will not be resized to fit this label, so keep the size of the label below 20-25 characters. 7793
710 7156 If set to true only numbers are allowed in the issue-number text field. An exception is the comma, so you can comma separate several numbers. Valid values are true/false. If not defined, true is assumed. 7797
711 7160 In the simple approach, TortoiseSVN shows the user a separate input field where a bug ID can be entered. Then a separate line is appended/prepended to the log message the user entered. 7801
712 7164 Issue Numbers Using Regular Expressions 7805
713 7168 This property activates the bug tracking system in Regex mode. It contains either a single regular expressions, or two regular expressions separated by a newline. 7809
714 7172 If two expressions are set, then the first expression is used as a pre-filter to find expressions which contain bug IDs. The second expression then extracts the bare bug IDs from the result of the first regex. This allows you to use a list of bug IDs and natural language expressions if you wish. e.g. you might fix several bugs and include a string something like this: This change resolves issues #23, #24 and #25 7813
715 7176 If you want to catch bug IDs as used in the expression above inside a log message, you could use the following regex strings, which are the ones used by the TortoiseSVN project: [Ii]ssues?:?(\\s*(,|and)?\\s*#\\d+)+ and (\\d+) 7817
716 7180 The first expression picks out issues #23, #24 and #25 from the surrounding log message. The second regex extracts plain decimal numbers from the output of the first regex, so it will return 23, 24 and 25 to use as bug IDs. 7821
717 7184 Breaking the first regex down a little, it must start with the word issue, possibly capitalised. This is optionally followed by an s (more than one issue) and optionally a colon. This is followed by one or more groups each having zero or more leading whitespace, an optional comma or and and more optional space. Finally there is a mandatory # and a mandatory decimal number. 7825
718 7188 If only one expression is set, then the bare bug IDs must be matched in the groups of the regex string. Example: [Ii]ssue(?:s)? #?(\\d+) This method is required by a few issue trackers, e.g. trac, but it is harder to construct the regex. We recommend that you only use this method if your issue tracker documentation tells you to. 7829
719 7192 If you are unfamiliar with regular expressions, take a look at the introduction at http://en.wikipedia.org/wiki/Regular_expression, and the online documentation and tutorial at http://www.regular-expressions.info/. 7833
720 7196 In the approach with regular expressions, TortoiseSVN doesn't show a separate input field but marks the part of the log message the user enters which is recognized by the issue tracker. This is done while the user writes the log message. This also means that the bug ID can be anywhere inside a log message! This method is much more flexible, and is the one used by the TortoiseSVN project itself. 7837
721 7200 If both the bugtraq:message and bugtraq:logregex properties are set, logregex takes precedence. 7841
722 7204 Even if you don't have an issue tracker with a pre-commit hook parsing your log messages, you still can use this to turn the issues mentioned in your log messages into links! 7845
723 7208 And even if you don't need the links, the issue numbers show up as a separate column in the log dialog, making it easier to find the changes which relate to a particular issue. 7849
724 7218 These properties must be set on folders for the system to work. When you commit a file or folder the properties are read from that folder. If the properties are not found there, TortoiseSVN will search upwards through the folder tree to find them until it comes to an unversioned folder, or the tree root (eg. C:\\) is found. If you can be sure that each user checks out only from e.g trunk/ and not some sub-folder, then it's enough if you set the properties on trunk/. If you can't be sure, you should set the properties recursively on each sub-folder. A property setting deeper in the project hierarchy overrides settings on higher levels (closer to trunk/). 7860
725 7222 No Issue Tracker Information from Repository Browser 7864
726 7226 Because the issue tracker integration depends upon accessing subversion properties, you will only see the results when using a checked out working copy. Fetching properties remotely is a slow operation, so you will not see this feature in action from the repo browser unless you started the repo browser from your working copy. If you started the repo browser by entering the URL of the repository you won't see this feature. 7868
727 7231 For the same reason, project properties will not be propagated automatically when a child folder is added using the repo browser. 7873
728 7235 This issue tracker integration is not restricted to TortoiseSVN; it can be used with any Subversion client. For more information, read the full Issue Tracker Integration Specification in the TortoiseSVN source repository. ( explains how to access the repository). 7877
729 7239 Getting Information from the Issue Tracker 7881
730 7243 The previous section deals with adding issue information to the log messages. But what if you need to get information from the issue tracker? The commit dialog has a COM interface which allows integration an external program that can talk to your tracker. Typically you might want to query the tracker to get a list of open issues assigned to you, so that you can pick the issues that are being addressed in this commit. 7885
731 7247 Any such interface is of course highly specific to your issue tracker system, so we cannot provide this part, and describing how to create such a program is beyond the scope of this manual. The interface definition and sample plugins in C# and C++/ATL can be obtained from the contrib folder in the TortoiseSVN repository. ( explains how to access the repository). A summary of the API is also given in Another (working) example plugin in C# is Gurtle which implements the required COM interface to interact with the Google Code issue tracker. 7889
732 7251 Example issue tracker query dialog 7893
733 7255 For illustration purposes, let's suppose that your system administrator has provided you with an issue tracker plugin which you have installed, and that you have set up some of your working copies to use the plugin in TortoiseSVN's settings dialog. When you open the commit dialog from a working copy to which the plugin has been assigned, you will see a new button at the top of the dialog. In this example you can select one or more open issues. The plugin can then generate specially formatted text which it adds to your log message. 7897
734 7259 Integration with Web-based Repository Viewers 7901
735 7271 ViewVC 7913
736 7279 There are several web-based repository viewers available for use with Subversion such as ViewVC and WebSVN. TortoiseSVN provides a means to link with these viewers. 7921
737 7283 You can integrate a repo viewer of your choice in TortoiseSVN. To do this, you have to define some properties which define the linkage. They must be set on Folders: () 7925
738 7287 Set this property to the URL of your repo viewer to view all changes in a specific revision. It must be properly URI encoded and it has to contain %REVISION%. %REVISION% is replaced with the revision number in question. This allows TortoiseSVN to display a context menu entry in the log dialog Context MenuView revision in webviewer 7929
739 7291 Set this property to the URL of your repo viewer to view changes to a specific file in a specific revision. It must be properly URI encoded and it has to contain %REVISION% and %PATH%. %PATH% is replaced with the path relative to the repository root. This allows TortoiseSVN to display a context menu entry in the log dialog Context MenuView revision for path in webviewer For example, if you right-click in the log dialog bottom pane on a file entry /trunk/src/file then the %PATH% in the URL will be replaced with /trunk/src/file. 7933
740 7295 You can also use relative URLs instead of absolute ones. This is useful in case your web viewer is on the same domain/server as your source repository. In case the domain name ever changes, you don't have to adjust the webviewer:revision and webviewer:pathrevision property. The format is the same as for the bugtraq:url property. See . 7937
741 7299 Because the repo viewer integration depends upon accessing subversion properties, you will only see the results when using a checked out working copy. Fetching properties remotely is a slow operation, so you will not see this feature in action from the repo browser unless you started the repo browser from your working copy. If you started the repo browser by entering the URL of the repository you won't see this feature. 7941
742 7311 To find out what the different settings are for, just leave your mouse pointer a second on the editbox/checkbox... and a helpful tooltip will popup. 7953
743 7323 The Settings Dialog, General Page 7965
744 7327 This dialog allows you to specify your preferred language, and the Subversion-specific settings. 7969
745 7335 Selects your user interface language. What else did you expect? 7977
746 7343 TortoiseSVN will contact its download site periodically to see if there is a newer version of the program available. If there is it will show a notification link in the commit dialog. Use Check now if you want an answer right away. The new version will not be downloaded; you simply receive an information dialog telling you that the new version is available. 7986
747 7363 TortoiseSVN has three custom sounds which are installed by default. You can select different sounds (or turn these sounds off completely) using the Windows Control Panel. Configure is a shortcut to the Control Panel. 8006
748 7379 Global ignore patterns are used to prevent unversioned files from showing up e.g. in the commit dialog. Files matching the patterns are also ignored by an import. Ignore files or directories by typing in the names or extensions. Patterns are separated by spaces e.g. bin obj *.bak *.~?? *.jar *.[Tt]mp. These patterns should not include any path separators. Note also that there is no way to differentiate between files and directories. Read for more information on the pattern-matching syntax. 8022
749 7383 Note that the ignore patterns you specify here will also affect other Subversion clients running on your PC, including the command line client. 8026
750 7387 If you use the Subversion configuration file to set a global-ignores pattern, it will override the settings you make here. The Subversion configuration file is accessed using the Edit as described below. 8030
751 7391 This ignore pattern will affect all your projects. It is not versioned, so it will not affect other users. By contrast you can also use the versioned svn:ignore property to exclude files or directories from version control. Read for more information. 8034
752 7395 Set file dates to the last commit time 8038
753 7399 This option tells TortoiseSVN to set the file dates to the last commit time when doing a checkout or an update. Otherwise TortoiseSVN will use the current date. If you are developing software it is generally best to use the current date because build systems normally look at the date stamps to decide which files need compiling. If you use last commit time and revert to an older file revision, your project may not compile as you expect it to. 8042
754 7407 Use Edit to edit the Subversion configuration file directly. Some settings cannot be modified directly by TortoiseSVN, and need to be set here instead. For more information about the Subversion config file see the Runtime Configuration Area. The section on Automatic Property Setting is of particular interest, and that is configured here. Note that Subversion can read configuration information from several places, and you need to know which one takes priority. Refer to Configuration and the Windows Registry to find out more. 8051
755 7411 Use _svn instead of .svn directories 8055
756 7415 VS.NET when used with web projects can't handle the .svn folders that Subversion uses to store its internal information. This is not a bug in Subversion. The bug is in VS.NET and the frontpage extensions it uses. Read to find out more about this issue. 8059
757 7419 If you want to change the behaviour of Subversion and TortoiseSVN, you can use this checkbox to set the environment variable which controls this. 8063
758 7423 You should note that changing this option will not automatically convert existing working copies to use the new admin directory. You will have to do that yourself using a script (See our FAQ) or simply check out a fresh working copy. 8067
759 7431 The Settings Dialog, Context Menu Page 8075
760 7435 This page allows you to specify which of the TortoiseSVN context menu entries will show up in the main context menu, and which will appear in the TortoiseSVN submenu. By default most items are unchecked and appear in the submenu. 8079
761 7439 There is a special case for Get Lock. You can of course promote it to the top level using the list above, but as most files don't need locking this just adds clutter. However, a file with the svn:needs-lock property needs this action every time it is edited, so in that case it is very useful to have at the top level. Checking the box here means that when a file is selected which has the svn:needs-lock property set, Get Lock will always appear at the top level. 8083
762 7443 If there are some paths on your computer where you just don't want TortoiseSVN's context menu to appear at all, you can list them in the box at the bottom. 8087
763 7451 The Settings Dialog, Dialogs 1 Page 8096
764 7455 This dialog allows you to configure some of TortoiseSVN's dialogs the way you like them. 8100
765 7463 Limits the number of log messages that TortoiseSVN fetches when you first select TortoiseSVNShow Log Useful for slow server connections. You can always use Show All or Next 100 to get more messages. 8109
766 7471 Selects the font face and size used to display the log message itself in the middle pane of the Revision Log dialog, and when composing log messages in the Commit dialog. 8118
767 7479 If the standard long messages use up too much space on your screen use the short format. 8127
768 7487 If you frequently find yourself comparing revisions in the top pane of the log dialog, you can use this option to allow that action on double-click. It is not enabled by default because fetching the diff is often a long process, and many people prefer to avoid the wait after an accidental double-click, which is why this option is not enabled by default. 8136
769 7495 TortoiseSVN can automatically close all progress dialogs when the action is finished without error. This setting allows you to select the conditions for closing the dialogs. The default (recommended) setting is Close manually which allows you to review all messages and check what has happened. However, you may decide that you want to ignore some types of message and have the dialog close automatically if there are no critical changes. 8145
770 7499 Auto-close if no merges, adds or deletes means that the progress dialog will close if there were simple updates, but if changes from the repository were merged with yours, or if any files were added or deleted, the dialog will remain open. It will also stay open if there were any conflicts or errors during the operation. 8149
771 7503 Auto-close if no conflicts relaxes the criteria further and will close the dialog even if there were merges, adds or deletes. However, if there were any conflicts or errors, the dialog remains open. 8153
772 7507 Auto-close if no errors always closes the dialog even if there were conflicts. The only condition that keeps the dialog open is an error condition, which occurs when Subversion is unable to complete the task. For example, an update fails because the server is inaccessible, or a commit fails because the working copy is out-of-date. 8157
773 7515 Local operations like adding files or reverting changes do not need to contact the repository and complete quickly, so the progress dialog is often of little interest. Select this option if you want the progress dialog to close automatically after these operations, unless there are errors. 8166
774 7523 When you revert local modifications, your changes are discarded. TortoiseSVN gives you an extra safety net by sending the modified file to the recycle bin before bringing back the pristine copy. If you prefer to skip the recycle bin, uncheck this option. 8175
775 7527 Use URL of WC as the default From: URL 8179
776 7531 In the merge dialog, the default behaviour is for the From: URL to be remembered between merges. However, some people like to perform merges from many different points in their hierarchy, and find it easier to start out with the URL of the current working copy. This can then be edited to refer to a parallel path on another branch. 8183
777 7539 You can specify the default path for checkouts. If you keep all your checkouts in one place, it is useful to have the drive and folder pre-filled so you only have to add the new folder name to the end. 8192
778 7547 You can also specify the default URL for checkouts. If you often checkout sub-projects of some very large project, it can be useful to have the URL pre-filled so you only have to add the sub-project name to the end. 8201
779 7555 The Settings Dialog, Dialogs 2 Page 8210
780 7563 If this box is checked (default state), then whenever the status of an unversioned folder is shown in the Add, Commit or Check for Modifications dialog, every child file and folder is also shown. If you uncheck this box, only the unversioned parent is shown. Unchecking reduces clutter in these dialogs. In that case if you select an unversioned folder for Add, it is added recursively. 8219
781 7567 In the Check for Modifications dialog you can opt to see ignored items. If this box is checked then whenever an ignored folder is found, all child items will be shown as well. 8223
782 7575 The commit dialog includes a facility to parse the list of filenames being committed. When you type the first 3 letters of an item in the list, the auto-completion box pops up, and you can press Enter to complete the filename. Check the box to enable this feature. 8232
783 7583 The auto-completion parser can be quite slow if there are a lot of large files to check. This timeout stops the commit dialog being held up for too long. If you are missing important auto-completion information, you can extend the timeout. 8241
784 7587 Only use spellchecker when tsvn:projectlanguage is set 8245
785 7591 If you don't wish to use the spellchecker for all commits, check this box. The spellchecker will still be enabled where the project properties require it. 8249
786 7599 When you type in a log message in the commit dialog, TortoiseSVN stores it for possible re-use later. By default it will keep the last 25 log messages for each repository, but you can customize that number here. If you have many different repositories, you may wish to reduce this to avoid filling your registry. 8258
787 7603 Note that this setting applies only to messages that you type in on this computer. It has nothing to do with the log cache. 8262
788 7607 Re-open commit and branch/tag dialog after a commit failed 8266
789 7611 When a commit fails for some reason (working copy needs updating, pre-commit hook rejects commit, network error, etc), you can select this option to keep the commit dialog open ready to try again. However, you should be aware that this can lead to problems. If the failure means you need to update your working copy, and that update leads to conflicts you must resolve those first. 8270
790 7619 The normal behaviour in the commit dialog is for all modified (versioned) items to be selected for commit automatically. If you prefer to start with nothing selected and pick the items for commit manually, uncheck this box. 8279
791 7627 The Check for Modifications dialog checks the working copy by default, and only contacts the repository when you click Check repository. If you always want to check the repository, you can use this setting to make that action happen automatically. 8288
792 7635 When you select one or more files and then use TortoiseSVNLock to take out a lock on those files, on some projects it is customary to write a lock message explaining why you have locked the files. If you do not use lock messages, you can uncheck this box to skip that dialog and lock the files immediately. 8297
793 7639 If you use the lock command on a folder, you are always presented with the lock dialog as that also gives you the option to select files for locking. 8301
794 7643 If your project is using the tsvn:lockmsgminsize property, you will see the lock dialog regardless of this setting because the project requires lock messages. 8305
795 7651 The Settings Dialog, Colours Page 8314
796 7655 This dialog allows you to configure the text colours used in TortoiseSVN's dialogs the way you like them. 8318
797 7663 A conflict has occurred during update, or may occur during merge. Update is obstructed by an existing unversioned file/folder of the same name as a versioned one. 8327
798 7667 This colour is also used for error messages in the progress dialogs. 8331
799 7683 Items deleted from the repository, missing from the working copy, or deleted from the working copy and replaced with another file of the same name. 8349
800 7691 Changes from the repository successfully merged into the WC without creating any conflicts. 8357
801 7699 Add with history, or paths copied in the repository. Also used in the log dialog for entries which include copied items. 8365
802 7707 An item which has been deleted from the repository. 8373
803 7715 An item which has been added to the repository, by an add, copy or move operation. 8381
804 7723 An item which has been renamed within the repository. 8389
805 7731 The original item has been deleted and a new item with the same name replaces it. 8397
806 7739 When using filtering in the log dialog, search terms are highlighted in the results using this colour. 8406
807 7747 The Settings Dialog, Revision Graph Page 8415
808 7755 The revision graph attempts to show a clearer picture of your repository structure by distinguishing between trunk, branches and tags. As there is no such classification built into Subversion, this information is extracted from the path names. The default settings assume that you use the conventional English names as suggested in the Subversion documentation, but of course your usage may vary. 8424
809 7759 Specify the patterns used to recognise these paths in the three boxes provided. The patterns will be matched case-insensitively, but you must specify them in lower case. Wild cards * and ? will work as usual, and you can use ; to separate multiple patterns. Do not include any extra white space as it will be included in the matching specification. 8428
810 7767 Colors are used in the revision graph to indicate the node type, i.e. whether a node is added, deleted, renamed. In order to help pick out node classifications, you can allow the revision graph to blend colors to give an indication of both node type and classification. If the box is checked, blending is used. If the box is unchecked, color is used to indicate node type only. Use the color selection dialog to allocate the specific colors used. 8436
811 7775 The Settings Dialog, Revision Graph Colors Page 8444
812 7779 This page allows you to configure the colors used. Note that the color specified here is the solid color. Most nodes are colored using a blend of the node type color, the background color and optionally the classification color. 8448
813 7787 Items which have been deleted and not copied anywhere else in the same revision. 8456
814 7795 Items newly added, or copied (add with history). 8464
815 7803 Items deleted from one location and added in another in the same revision. 8472
816 7811 Simple modifications without any add or delete. 8480
817 7819 May be used to show the revision used as the source of a copy, even when no change (to the item being graphed) took place in that revision. 8489
818 7835 If you opt to show an extra node for your modified working copy, attached to its last-commit revision on the graph, use this color. 8506
819 7843 If you opt to show whether the working copy is modified, use this color border on the WC node when modifications are found. 8514
820 7851 Nodes classified as tags may be blended with this color. 8522
821 7859 Nodes classified as trunk may be blended with this color. 8530
822 7867 If you use tag folding to save space, tags are marked on the copy source using a block in this color. 8539
823 7875 When you left click on a node to select it, the marker used to indicate selection is a block in this color. 8548
824 7883 These colors are used when the graph is split into sub-trees and the background is colored in alternating stripes to help pick out the separate trees. 8557
825 7891 The Settings Dialog, Icon Overlays Page 8566
826 7895 This page allows you to choose the items for which TortoiseSVN will display icon overlays. 8570
827 7903 Caches all status information in a separate process (TSVNCache.exe). That process watches all drives for changes and fetches the status again if files inside a working copy get modified. The process runs with the least possible priority so other programs don't get hogged because of it. That also means that the status information is not real time but it can take a few seconds for the overlays to change. 8578
828 7907 Advantage: the overlays show the status recursively, i.e. if a file deep inside a working copy is modified, all folders up to the working copy root will also show the modified overlay. And since the process can send notifications to the shell, the overlays on the left tree view usually change too. 8582
829 7911 Disadvantage: the process runs constantly, even if you're not working on your projects. It also uses around 10-50 MB of RAM depending on number and size of your working copies. 8586
830 7919 Caching is done directly inside the shell extension dll, but only for the currently visible folder. Each time you navigate to another folder, the status information is fetched again. 8594
831 7923 Advantage: needs only very little memory (around 1 MB of RAM) and can show the status in real time. 8598
832 7927 Disadvantage: Since only one folder is cached, the overlays don't show the status recursively. For big working copies, it can take more time to show a folder in explorer than with the default cache. Also the mime-type column is not available. 8602
833 7935 With this setting, the TortoiseSVN does not fetch the status at all in Explorer. Because of that, files don't get an overlay and folders only get a 'normal' overlay if they're versioned. No other overlays are shown, and no extra columns are available either. 8610
834 7939 Advantage: uses absolutely no additional memory and does not slow down the Explorer at all while browsing. 8614
835 7943 Disadvantage: Status information of files and folders is not shown in Explorer. To see if your working copies are modified, you have to use the Check for modifications dialog. 8618
836 7947 Since it takes quite a while to fetch the status of a working copy, TortoiseSVN uses a cache to store the status so the explorer doesn't get hogged too much when showing the overlays. You can choose which type of cache TortoiseSVN should use according to your system and working copy size here: 8622
837 7951 By default, overlay icons and context menus will appear in all open/save dialogs as well as in Windows Explorer. If you want them to appear only in Windows Explorer, check the Show overlays and context menu only in explorer box. 8626
838 7955 You can also choose to mark folders as modified if they contain unversioned items. This could be useful for reminding you that you have created new files which are not yet versioned. This option is only available when you use the default status cache option (see below). 8630
839 7959 The next group allows you to select which classes of storage should show overlays. By default, only hard drives are selected. You can even disable all icon overlays, but where's the fun in that? 8634
840 7963 Network drives can be very slow, so by default icons are not shown for working copies located on network shares. 8638
841 7967 USB Flash drives appear to be a special case in that the drive type is identified by the device itself. Some appear as fixed drives, and some as removable drives. 8642
842 7971 The Exclude Paths are used to tell TortoiseSVN those paths for which it should not show icon overlays and status columns. This is useful if you have some very big working copies containing only libraries which you won't change at all and therefore don't need the overlays, or if you only want TortoiseSVN to look in specific folders. 8646
843 7975 Any path you specify here is assumed to apply recursively, so none of the child folders will show overlays either. If you want to exclude only the named folder, append ? after the path. 8650
844 7979 The same applies to the Include Paths. Except that for those paths the overlays are shown even if the overlays are disabled for that specific drive type, or by an exclude path specified above. 8654
845 7983 Users sometimes ask how these three settings interact. For any given path check the include and exclude lists, seeking upwards through the directory structure until a match is found. When the first match is found, obey that include or exclude rule. If there is a conflict, a single directory spec takes precedence over a recursive spec, then inclusion takes precedence over exclusion. 8658
846 7987 An example will help here: \n
Exclude:\n
C:\n
C:\\develop\\?\n
C:\\develop\\tsvn\\obj\n
C:\\develop\\tsvn\\bin\n
\n
Include:\n
C:\\develop\n
These settings disable icon overlays for the C: drive, except for c:\\develop. All projects below that directory will show overlays, except the c:\\develop folder itself, which is specifically ignored. The high-churn binary folders are also excluded.
8662
847 7991 TSVNCache.exe also uses these paths to restrict its scanning. If you want it to look only in particular folders, disable all drive types and include only the folders you specifically want to be scanned. 8676
848 7995 Exclude SUBST Drives 8680
849 8003 It is often convenient to use a SUBST drive to access your working copies, e.g. using the command \n
subst T: C:\\TortoiseSVN\\trunk\\doc\n
However this can cause the overlays not to update, as TSVNCache will only receive one notification when a file changes, and that is normally for the original path. This means that your overlays on the subst path may never be updated.
8689
850 8007 An easy way to work around this is to exclude the original path from showing overlays, so that the overlays show up on the subst path instead. 8696
851 8011 Sometimes you will exclude areas that contain working copies, which saves TSVNCache from scanning and monitoring for changes, but you still want a visual indication that such folders are versioned. The Show excluded folders as 'normal' checkbox allows you to do this. With this option, versioned folders in any excluded area (drive type not checked, or specifically excluded) will show up as normal and up-to-date, with a green check mark. This reminds you that you are looking at a working copy, even though the folder overlays may not be correct. Files do not get an overlay at all. Note that the context menus still work, even though the overlays are not shown. 8700
852 8015 As a special exception to this, drives A: and B: are never considered for the Show excluded folders as 'normal' option. This is because Windows is forced to look on the drive, which can result in a delay of several seconds when starting Explorer, even if your PC does have a floppy drive. 8704
853 8023 The Settings Dialog, Icon Set Page 8713
854 8027 You can change the overlay icon set to the one you like best. Note that if you change overlay set, you may have to restart your computer for the changes to take effect. 8717
855 8039 Because the number of overlays available is severely restricted, you can choose to disable some handlers to ensure that the ones you want will be loaded. Because TortoiseSVN uses the common TortoiseOverlays component which is shared with other Tortoise clients (e.g. TortoiseCVS, TortoiseHG) this setting will affect those clients too. 8731
856 8051 The Settings Dialog, Network Page 8744
857 8055 Here you can configure your proxy server, if you need one to get through your company's firewall. 8748
858 8059 If you need to set up per-repository proxy settings, you will need to use the Subversion servers file to configure this. Use Edit to get there directly. Consult the Runtime Configuration Area for details on how to use this file. 8752
859 8063 You can also specify which program TortoiseSVN should use to establish a secure connection to a svn+ssh repository. We recommend that you use TortoisePlink.exe. This is a version of the popular Plink program, and is included with TortoiseSVN, but it is compiled as a Windowless app, so you don't get a DOS box popping up every time you authenticate. 8756
860 8067 You must specify the full path to the executable. For TortoisePlink.exe this is the standard TortoiseSVN bin directory. Use the Browse button to help locate it. Note that if the path contains spaces, you must enclose it in quotes, e.g. \n
\"C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe\"\n
8760
861 8071 One side-effect of not having a window is that there is nowhere for any error messages to go, so if authentication fails you will simply get a message saying something like Unable to write to standard output. For this reason we recommend that you first set up using standard Plink. When everything is working, you can use TortoisePlink with exactly the same parameters. 8767
862 8075 TortoisePlink does not have any documentation of its own because it is just a minor variant of Plink. Find out about command line parameters from the PuTTY website 8771
863 8079 To avoid being prompted for a password repeatedly, you might also consider using a password caching tool such as Pageant. This is also available for download from the PuTTY website. 8775
864 8083 Finally, setting up SSH on server and clients is a non-trivial process which is beyond the scope of this help file. However, you can find a guide in the TortoiseSVN FAQ listed under Subversion/TortoiseSVN SSH How-To. 8779
865 8091 The Settings Dialog, Diff Viewer Page 8788
866 8095 Here you can define your own diff/merge programs that TortoiseSVN should use. The default setting is to use TortoiseMerge which is installed alongside TortoiseSVN. 8792
867 8099 Read for a list of some of the external diff/merge programs that people are using with TortoiseSVN. 8796
868 8107 The original file without your changes 8804
869 8112 The window title for the base file 8809
870 8116 Your own file, with your changes 8813
871 8121 The window title for your file 8818
872 8125 An external diff program may be used for comparing different revisions of files. The external program will need to obtain the filenames from the command line, along with any other command line options. TortoiseSVN uses substitution parameters prefixed with %. When it encounters one of these it will substitute the appropriate value. The order of the parameters will depend on the Diff program you use. 8822
873 8129 The window titles are not pure filenames. TortoiseSVN treats that as a name to display and creates the names accordingly. So e.g. if you're doing a diff from a file in revision 123 with a file in your working copy, the names will be filename : revision 123 and filename : working copy 8826
874 8133 For example, with ExamDiff Pro: \n
C:\\Path-To\\ExamDiff.exe %base %mine --left_display_name:%bname\n
--right_display_name:%yname\n
or with KDiff3: \n
C:\\Path-To\\kdiff3.exe %base %mine --L1 %bname --L2 %yname\n
or with WinMerge: \n
C:\\Path-To\\WinMerge.exe -e -ub -dl %bname -dr %yname %base %mine\n
or with Araxis: \n
C:\\Path-To\\compare.exe /max /wait /title1:%bname /title2:%yname\n
%base %mine\n
or with UltraCompare: \n
C:\\Path-To\\uc.exe %base %mine -title1 %bname -title2 %yname\n
8830
875 8137 If you use the svn:keywords property to expand keywords, and in particular the revision of a file, then there may be a difference between files which is purely due to the current value of the keyword. Also if you use svn:eol-style = native the BASE file will have pure LF line endings whereas your file will have CR-LF line endings. TortoiseSVN will normally hide these differences automatically by first parsing the BASE file to expand keywords and line endings before doing the diff operation. However, this can take a long time with large files. If Convert files when diffing against BASE is unchecked then TortoiseSVN will skip pre-processing the files. 8847
876 8141 You can also specify a different diff tool to use on Subversion properties. Since these tend to be short simple text strings, you may want to use a simpler more compact viewer. 8851
877 8145 If you have configured an alternate diff tool, you can access TortoiseMerge and the third party tool from the context menus. Context menuDiff uses the primary diff tool, and Shift+ Context menuDiff uses the secondary diff tool. 8855
878 8153 the original file without your or the others changes 8863
879 8157 your own file, with your changes 8867
880 8161 the file as it is in the repository 8871
881 8165 The window title for the file in the repository 8875
882 8173 The window title for the merged file 8884
883 8177 An external merge program used to resolve conflicted files. Parameter substitution is used in the same way as with the Diff Program. 8888
884 8181 For example, with Perforce Merge: \n
C:\\Path-To\\P4Merge.exe %base %theirs %mine %merged\n
or with KDiff3: \n
C:\\Path-To\\kdiff3.exe %base %mine %theirs -o %merged\n
--L1 %bname --L2 %yname --L3 %tname\n
or with Araxis: \n
C:\\Path-To\\compare.exe /max /wait /3 /title1:%tname /title2:%bname\n
/title3:%yname %theirs %base %mine %merged /a2\n
or with WinMerge (2.8 or later): \n
C:\\Path-To\\WinMerge.exe %merged\n
8892
885 8189 The Settings Dialog, Diff/Merge Advanced Dialog 8912
886 8193 In the advanced settings, you can define a different diff and merge program for every file extension. For instance you could associate Photoshop as the Diff Program for .jpg files :-) You can also associate the svn:mime-type property with a diff or merge program. 8916
887 8197 To associate using a file extension, you need to specify the extension. Use .bmp to describe Windows bitmap files. To associate using the svn:mime-type property, specify the mime type, including a slash, for example text/xml. 8920
888 8205 A viewer program for unified-diff files (patch files). No parameters are required. The Default option is to check for a file association for .diff files, and then for .txt files. If you don't have a viewer for .diff files, you will most likely get NotePad. 8929
889 8209 The original Windows NotePad program does not behave well on files which do not have standard CR-LF line-endings. Since most unified diff files have pure LF line-endings, they do not view well in NotePad. However, you can download a free NotePad replacement Notepad2 which not only displays the line-endings correctly, but also colour codes the added and removed lines. 8933
890 8217 The Settings Dialog, Saved Data Page 8944
891 8221 For your convenience, TortoiseSVN saves many of the settings you use, and remembers where you have been lately. If you want to clear out that cache of data, you can do it here. 8948
892 8229 Whenever you checkout a working copy, merge changes or use the repository browser, TortoiseSVN keeps a record of recently used URLs and offers them in a combo box. Sometimes that list gets cluttered with outdated URLs so it is useful to flush it out periodically. 8957
893 8233 If you want to remove a single item from one of the combo boxes you can do that in-place. Just click on the arrow to drop the combo box down, move the mouse over the item you want to remove and type Shift+Del. 8961
894 8241 TortoiseSVN stores recent commit log messages that you enter. These are stored per repository, so if you access many repositories this list can grow quite large. 8970
895 8249 TortoiseSVN caches log messages fetched by the Show Log dialog to save time when you next show the log. If someone else edits a log message and you already have that message cached, you will not see the change until you clear the cache. Log message caching is enabled on the Log Cache tab. 8979
896 8257 Many dialogs remember the size and screen position that you last used. 8988
897 8265 When you authenticate with a Subversion server, the username and password are cached locally so you don't have to keep entering them. You may want to clear this for security reasons, or because you want to access the repository under a different username ... does John know you are using his PC? 8997
898 8269 If you want to clear authentication data for one particular server only, read for instructions on how to find the cached data. 9001
899 8277 TortoiseSVN keeps a log of everything written to its progress dialogs. This can be useful when, for example, you want to check what happened in a recent update command. 9010
900 8281 The log file is limited in length and when it grows too big the oldest content is discarded. By default 4000 lines are kept, but you can customize that number. 9014
901 8285 From here you can view the log file content, and also clear it. 9018
902 8297 The Settings Dialog, Log Cache Page 9032
903 8301 This dialog allows you to configure the log caching feature of TortoiseSVN, which retains a local copy of log messages and changed paths to avoid time-consuming downloads from the server. Using the log cache can dramatically speed up the log dialog and the revision graph. Another useful feature is that the log messages can still be accessed when offline. 9036
904 8309 Enables log caching whenever log data is requested. If checked, data will be retrieved from the cache when available, and any messages not in the cache will be retrieved from the server and added to the cache. 9045
905 8313 If caching is disabled, data will always be retrieved directly from the server and not stored locally. 9049
906 8321 Occasionally you may have to connect to a server which uses the same URL for all repositories. Older versions of svnbridge would do this. If you need to access such repositories you will have to check this option. If you don't, leave it unchecked to improve performance. 9058
907 8329 Some hosting services give all their repositories the same UUID. You may even have done this yourself by copying a repository folder to create a new one. For all sorts of reasons this is a bad idea - a UUID should be unique. However, the log cache will still work in this situation if you check this box. If you don't need it, leave it unchecked to improve performance. 9067
908 8337 If you are working offline, or if the repository server is down, the log cache can still be used to supply log messages already held in the cache. Of course the cache may not be up-to-date, so there are options to allow you to select whether this feature should be used. 9076
909 8341 When log data is being taken from the cache without contacting the server, the dialog using those message will show the offline state in its title bar. 9080
910 8349 When you invoke the log dialog you will normally want to contact the server to check for any newer log messages. If the timeout set here is non-zero then the server will only be contacted when the timeout has elapsed since the last time contact. This can reduce server round-trips if you open the log dialog frequently and the server is slow, but the data shown may not be completely up-to-date. If you want to use this feature we suggest using a value of 300 (5 minutes) as a compromise. 9089
911 8357 If you browse around a lot of repositories you will accumulate a lot of log caches. If you're not actively using them, the cache will not grow very big, so TortoiseSVN purges them after a set time by default. Use this item to control cache purging. 9098
912 8365 Larger caches are more expensive to reacquire, so TortoiseSVN only purges small caches. Fine tune the threshold with this value. 9107
913 8373 Occasionally something goes wrong with the caching and causes a crash. If this happens the cache is normally deleted automatically to prevent a recurrence of the problem. If you use the less stable nightly build you may opt to keep the cache anyway. 9116
914 8381 On this page you can see a list of the repositories that are cached locally, and the space used for the cache. If you select one of the repositories you can then use the buttons underneath. 9125
915 8385 Click on the Update to completely refresh the cache and fill in any holes. For a large repository this could be very time consuming, but useful if you are about to go offline and want the best available cache. 9129
916 8389 Click on the Export button to export the entire cache as a set of CSV files. This could be useful if you want to process the log data using an external program, although it is mainly useful to the developers. 9133
917 8393 Click on Delete to remove all cached data for the selected repositories. This does not disable caching for the repository so the next time you request log data, a new cache will be created. 9137
918 8409 The amount of memory required to service this cache. 9155
919 8417 The amount of disk space used for the cache. Data is compressed, so disk usage is generally fairly modest. 9163
920 8425 Shows whether the repository was available last time the cache was used. 9171
921 8441 The last time we requested the HEAD revision from the server. 9188
922 8449 The number of different authors with messages recorded in the cache. 9196
923 8457 The number of paths listed, as you would see using svn log -v. 9204
924 8465 The number of revision ranges which we have not fetched, simply because they haven't been requested. This is a measure of the number of holes in the cache. 9212
925 8473 The highest revision number stored in the cache. 9220
926 8481 The number of revisions stored in the cache. This is another measure of cache completeness. 9228
927 8485 Click on the Details button to see detailed statistics for a particular cache. Many of the fields shown here are mainly of interest to the developers of TortoiseSVN, so they are not all described in detail. 9232
928 8497 The Settings Dialog, Hook Scripts Page 9245
929 8501 This dialog allows you to set up hook scripts which will be executed automatically when certain Subversion actions are performed. As opposed to the hook scripts explained in , these scripts are executed locally on the client. 9249
930 8505 One application for such hooks might be to call a program like SubWCRev.exe to update version numbers after a commit, and perhaps to trigger a rebuild. 9253
931 8509 For various security and implementation reasons, hook scripts are defined locally on a machine, rather than as project properties. You define what happens, no matter what someone else commits to the repository. Of course you can always choose to call a script which is itself under version control. 9257
932 8513 The Settings Dialog, Configure Hook Scripts 9261
933 8517 To add a new hook script, simply click Add and fill in the details. 9265
934 8526 Called before the commit dialog is shown. You might want to use this if the hook modifies a versioned file and affects the list of files that need to be committed and/or commit message. However you should note that because the hook is called at an early stage, the full list of objects selected for commit is not available. 9274
935 8535 Called after the user clicks OK in the commit dialog, and before the actual commit begins. This hook has a list of exactly what will be committed. 9283
936 8544 Called after the commit finishes (whether successful or not). 9292
937 8553 Called before the update-to-revision dialog is shown. 9301
938 8562 Called before the actual Subversion update or switch begins. 9310
939 8571 Called after the update, switch or checkout finishes (whether successful or not). 9319
940 8580 Called before an attempt to contact the repository. Called at most once in five minutes. 9329
941 8584 There are currently six types of hook script available 9333
942 8588 A hook is defined for a particular working copy path. You only need to specify the top level path; if you perform an operation in a sub-folder, TortoiseSVN will automatically search upwards for a matching path. 9337
943 8592 Next you must specify the command line to execute, starting with the path to the hook script or executable. This could be a batch file, an executable file or any other file which has a valid windows file association, eg. a perl script. Note that the script must not be specified using a UNC path as Windows shell execute will not allow such scripts to run due to security restrictions. 9341
944 8596 The command line includes several parameters which get filled in by TortoiseSVN. The parameters passed depend upon which hook is called. Each hook has its own parameters which are passed in the following order: 9345
945 8600 A path to a temporary file which contains all the paths for which the operation was started. Each path is on a separate line in the temp file. 9349
946 8604 The depth with which the commit/update is done. 9353
947 8636 Path to a file containing the log message for the commit. The file contains the text in UTF-8 encoding. After successful execution of the start-commit hook, the log message is read back, giving the hook a chance to modify it. 9386
948 8640 The repository revision to which the update should be done or after a commit completes. 9390
949 8644 Path to a file containing the error message. If there was no error, the file will be empty. 9394
950 8648 The current working directory with which the script is run. This is set to the common root directory of all affected paths. 9398
951 8652 The meaning of each of these parameters is described here: 9402
952 8656 Note that although we have given these parameters names for convenience, you do not have to refer to those names in the hook settings. All parameters listed for a particular hook are always passed, whether you want them or not ;-) 9406
953 8660 If you want the Subversion operation to hold off until the hook has completed, check Wait for the script to finish. 9410
954 8664 Normally you will want to hide ugly DOS boxes when the script runs, so Hide the script while running is checked by default. 9414
955 8668 Sample client hook scripts can be found in the contrib folder in the TortoiseSVN repository. ( explains how to access the repository). 9418
956 8672 A small tool is included in the TortoiseSVN installation folder named ConnectVPN.exe. You can use this tool configured as a pre-connect hook to connect automatically to your VPN before TortoiseSVN tries to connect to a repository. Just pass the name of the VPN connection as the first parameter to the tool. 9422
957 8680 TortoiseSVN can use a COM plugin to query issue trackers when in the commit dialog. The use of such plugins is described in . If your system administrator has provided you with a plugin, which you have already installed and registered, this is the place to specify how it integrates with your working copy. 9431
958 8684 The Settings Dialog, Issue Tracker Integration Page 9435
959 8688 Click on Add... to use the plugin with a particular working copy. Here you can specify the working copy path, choose which plugin to use from a drop down list of all registered issue tracker plugins, and any parameters to pass. The parameters will be specific to the plugin, but might include your user name on the issue tracker so that the plugin can query for issues which are assigned to you. 9439
960 8692 This property specifies the COM UUID of the IBugtraqProvider, for example {91974081-2DC7-4FB1-B3BE-0DE1C8D6CE4E}. (this example is the UUID of the Gurtle bugtraq provider, which is a provider for the Google Code issue tracker). 9443
961 8696 This is the same as bugtraq:provideruuid, but for the 64-bit version of the IBugtraqProvider. 9447
962 8700 This property specifies the parameters passed to the IBugtraqProvider. 9451
963 8704 If you want all users to use the same COM plugin for your project, you can specify the plugin also with the properties bugtraq:provideruuid, bugtraq:provideruuid64 and bugtraq:providerparams. Please check the documentation of your IBugtraqProvider plugin to find out what to specify in these two properties. 9455
964 8712 The Settings Dialog, TortoiseBlame Page 9463
965 8716 The settings used by TortoiseBlame are controlled from the main context menu, not directly with TortoiseBlame itself. 9467
966 8724 TortoiseBlame can use the background colour to indicate the age of lines in a file. You set the endpoints by specifying the colours for the newest and oldest revisions, and TortoiseBlame uses a linear interpolation between these colours according to the repository revision indicated for each line. 9475
967 8732 You can select the font used to display the text, and the point size to use. This applies both to the file content, and to the author and revision information shown in the left pane. 9483
968 8740 Defines how many spaces to use for expansion when a tab character is found in the file content. 9491
969 8756 VS.NET 2003 when used with web projects can't handle the .svn folders that Subversion uses to store its internal information. This is not a bug in Subversion. The bug is in VS.NET 2003 and the frontpage extensions it uses. 9507
970 8760 Note that the bug is fixed in VS2005 and later versions. 9511
971 8764 As of Version 1.3.0 of Subversion and TortoiseSVN, you can set the environment variable SVN_ASP_DOT_NET_HACK. If that variable is set, then Subversion will use _svn folders instead of .svn folders. You must restart your shell for that environment variable to take effect. Normally that means rebooting your PC. To make this easier, you can now do this from the general settings page using a simple checkbox - refer to . 9515
972 8768 For more information, and other ways to avoid this problem in the first place, check out the article about this in our FAQ. 9519
973 8780 A few infrequently used settings are available only in the advanced page of the settings dialog. These settings modify the registry directly and you have to know what each of these settings is used for and what it does. Do not modify these settings unless you are sure you need to change them. 9531
974 8784 You can specify a different location for the Subversion configuration file here. This will affect all TortoiseSVN operations. 9535
975 8788 Set this to true if you want a dialog to pop up for every command showing the command line used to start TortoiseProc.exe 9539
976 8792 To add a cache tray icon for the TSVNCache program, set this value to true. This is really only useful for developers as it allows you to terminate the program gracefully. 9543
977 8796 This can be useful if you use something other than the windows explorer or if you get problems with the context menu displaying incorrectly. Set this value to false if you don't want TortoiseSVN to show icons for the shell context menu items. Set this value to true to show the icons again. 9547
978 8800 If you don't want TortoiseSVN to show icons for the context menus in its own dialogs, set this value to false. 9551
979 8804 The log dialog shows the revision the working copy path is at in bold. But this requires that the log dialog fetches the status of that path. Since for very big working copies this can take a while, you can set this value to false to deactivate this feature. 9555
980 8808 The status list control which is used in various dialogs (e.g., commit, check-for-modifications, add, revert, ...) uses full row selection (i.e., if you select an entry, the full row is selected, not just the first column). This is fine, but the selected row then also covers the background image on the bottom right, which can look ugly. To disable full row select, set this value to false. 9559
981 8812 The commit and log dialog use styling (e.g. bold, italic) in commit messages (see for details). If you don't want to do this, set the value to false. 9563
982 8816 TortoiseSVN uses accelerators for its explorer context menu entries. Since this can lead to doubled accelerators (e.g. the SVN Commit has the Alt-C accelerator, but so does the Copy entry of explorer). If you don't want or need the accelerators of the TortoiseSVN entries, set this value to false. 9567
983 8820 As with the explorer, TortoiseSVN shows additional commands if the Shift key is pressed while the context menu is opened. To force TortoiseSVN to always show those extended commands, set this value to true. 9571
984 8824 If you don't want the explorer to update the status overlays while another TortoiseSVN command is running (e.g. Update, Commit, ...) then set this value to true. 9575
985 8828 This value contains the URL from which TortoiseSVN tries to download a text file to find out if there are updates available. This might be useful for company admins who don't want their users to update TortoiseSVN until they approve it. 9579
986 8832 The extra columns the TortoiseSVN adds to the details view in Windows Explorer are normally only active in a working copy. If you want those to be accessible everywhere, not just in working copies, set this value to true. Note that the extra columns are only available in XP. Vista and later doesn't support that feature any more. 9583
987 8836 If an update adds a new file from the repository which already exists in the local working copy as an unversioned file, the default action is to keep the local file, showing it as a (possibly) modified version of the new file from the repository. If you would prefer TortoiseSVN to create a conflict in such situations, set this value to false. 9587
988 8840 TortoiseSVN checks whether there's a new version available about once a week. If an updated version is found, the commit dialog shows a link control with that info. If you prefer the old behavior back where a dialog pops up notifying you about the update, set this value to true. 9591
989 8844 TortoiseSVN checks whether there's a new version available about once a week. If you don't want TortoiseSVN to do this check, set this value to false. 9595
990 8848 The auto-completion list shown in the commit message editor displays the names of files listed for commit. To also include these names with extensions removed, set this value to true. 9599
991 8852 When you merge revisions from another branch, and merge tracking information is available, the log messages from the revisions you merge will be collected to make up a commit log message. A pre-defined string is used to separate the individual log messages of the merged revisions. If you prefer, you can set this to a value containing a separator string of your choice. 9603
992 8856 TortoiseSVN allows you to assign an external diff viewer. Most such viewers, however, are not suited for change blaming (), so you might wish to fall back to TortoiseMerge in this case. To do so, set this value to true. 9607
993 8860 By default, TortoiseSVN always runs an update with externals included. This avoids problems with inconsistent working copies. If you have however a lot of externals set, an update can take quite a while. Set this value to false to run the default update with externals excluded. To update with externals included, either run the Update to revision... dialog or set this value to true again. 9611
994 8864 In most dialogs in TortoiseSVN, you can use Ctrl+Enter to dismiss the dialog as if you clicked on the OK button. If you don't want this, set this value to false. 9615
995 8868 Sometimes multiple users use the same account on the same computer. In such situations it's not really wanted to save the authentication data. Setting this value to false disables the save authentication button in the authentication dialog. 9619
996 8872 Final Step 9623
997 8909 SubWCRev is Windows console program which can be used to read the status of a Subversion working copy and optionally perform keyword substitution in a template file. This is often used as part of the build process as a means of incorporating working copy information into the object you are building. Typically it might be used to include the revision number in an About box. 9668
998 8917 SubWCRev reads the Subversion status of all files in a working copy, excluding externals by default. It records the highest commit revision number found, and the commit timestamp of that revision, It also records whether there are local modifications in the working copy, or mixed update revisions. The revision number, update revision range and modification status are displayed on stdout. 9677
999 8921 SubWCRev.exe is called from the command line or a script, and is controlled using the command line parameters. \n
SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]\n
9681
1000 8925 WorkingCopyPath is the path to the working copy being checked. You can only use SubWCRev on working copies, not directly on the repository. The path may be absolute or relative to the current working directory. 9688
1001 8929 If you want SubWCRev to perform keyword substitution, so that fields like repository revision and URL are saved to a text file, you need to supply a template file SrcVersionFile and an output file DstVersionFile which contains the substituted version of the template. 9692
1002 8957 If this switch is given, SubWCRev will exit with if the working copy contains local modifications. This may be used to prevent building with uncommitted changes present. 9723
1003 8965 If this switch is given, SubWCRev will exit with if the working copy contains mixed revisions. This may be used to prevent building with a partially updated working copy. 9731
1004 8973 If this switch is given, SubWCRev will exit with if the destination file already exists. 9739
1005 8977 If this switch is given, SubWCRev will include the last-changed revision of folders. The default behaviour is to use only files when getting the revision numbers. 9743
1006 8985 If this switch is given, SubWCRev will examine directories which are included with , but only if they are from the same repository. The default behaviour is to ignore externals. 9751
1007 8989 If this switch is given, SubWCRev will output the revision numbers in HEX. 9755
1008 8993 If this switch is given, SubWCRev will output the revision numbers in HEX, with '0X' prepended. 9759
1009 8997 There are a number of optional switches which affect the way SubWCRev works. If you use more than one, they must be specified as a single group, eg. -nm, not -n -m. 9763
1010 9001 Keyword Substitution 9767
1011 9005 Keyword 9771
1012 9009 Replaced with the highest commit revision in the working copy. 9775
1013 9025 online reference 9791
1014 9029 Replaced with the commit date/time of the highest commit revision. By default, international format is used: . Alternatively, you can specify a custom format which will be used with , for example: . For a list of available formatting characters, look at the . 9795
1015 9039 Replaced with the current system date/time. This can be used to indicate the build time. Time formatting can be used as described for . 9805
1016 9043 Replaced with the update revision range in the working copy. If the working copy is in a consistent state, this will be a single revision. If the working copy contains mixed revisions, either due to being out of date, or due to a deliberate update-to-revision, then the range will be shown in the form 100:200 9809
1017 9065 is replaced with if there are mixed update revisions, or if not. 9831
1018 9073 is replaced with if there are local modifications, or if not. 9839
1019 9077 Replaced with the repository URL of the working copy path passed to SubWCRev. 9843
1020 9085 is replaced with if the entry is versioned, or if not. 9851
1021 9093 is replaced with if the entry is locked, or if not. 9859
1022 9097 Replaced with the lock date. Time formatting can be used as described for . 9863
1023 9101 Replaced with the name of the lock owner. 9867
1024 9109 If a source and destination files are supplied, SubWCRev copies source to destination, performing keyword substitution as follows: 9876
1025 9113 Some of these keywords apply to single files rather than to an entire working copy, so it only makes sense to use these when SubWCRev is called to scan a single file. This applies to $WCINSVN$, $WCISLOCKED$, $WCLOCKDATE$, $WCLOCKOWNER$ and $WCLOCKCOMMENT$. 9880
1026 9117 Keyword Example 9884
1027 9121 The example below shows how keywords in a template file are substituted in the output file. 9888
1028 9125 \n
// Test file for SubWCRev: testfile.tmpl\n
\n
char *Revision = \"$WCREV$\";\n
char *Modified = \"$WCMODS?Modified:Not modified$\";\n
char *Date = \"$WCDATE$\";\n
char *Range = \"$WCRANGE$\";\n
char *Mixed = \"$WCMIXED?Mixed revision WC:Not mixed$\";\n
char *URL = \"$WCURL$\";\n
\n
#if $WCMODS?1:0$\n
#error Source is modified\n
#endif\n
\n
// End of file\n
9892
1029 9130 After running SubWCRev.exe path\\to\\workingcopy testfile.tmpl testfile.txt, the output file testfile.txt would looks like this: 9912
1030 9134 \n
// Test file for SubWCRev: testfile.txt\n
\n
char *Revision = \"3701\";\n
char *Modified = \"Modified\";\n
char *Date = \"2005/06/15 11:15:12\";\n
char *Range = \"3699:3701\";\n
char *Mixed = \"Mixed revision WC\";\n
char *URL = \"http://project.domain.org/svn/trunk/src\";\n
\n
#if 1\n
#error Source is modified\n
#endif\n
\n
// End of file\n
9916
1031 9139 A file like this will be included in the build so you would expect it to be versioned. Be sure to version the template file, not the generated file, otherwise each time you regenerate the version file you need to commit the change, which in turn means the version file needs to be updated. 9936
1032 9143 COM interface 9940
1033 9147 COM SubWCRev interface 9944
1034 9151 COM/automation methods supported 9948
1035 9167 This method traverses the working copy gathering the revision information. Naturally you must call this before you can access the information using the remaining methods. The first parameter is the path. The second parameter should be true if you want to include folder revisions. Equivalent to the command line switch. The third parameter should be true if you want to include svn:externals. Equivalent to the command line switch. 9964
1036 9175 The highest commit revision in the working copy. Equivalent to 9972
1037 9179 The commit date/time of the highest commit revision. Equivalent to 9976
1038 9183 The author of the highest commit revision, that is, the last person to commit changes to the working copy. 9980
1039 9192 The minimum update revision, as shown in 9989
1040 9196 The maximum update revision, as shown in 9993
1041 9200 True if there are local modifications 9997
1042 9212 Replaced with the repository URL of the working copy path used in . Equivalent to 10009
1043 9220 True if the item is locked. 10018
1044 9224 String representing the date when the lock was created, or an empty string if the item is not locked. 10022
1045 9228 String representing the lock owner, or an empty string if the item is not locked. 10026
1046 9232 The message entered when the lock was created. 10030
1047 9236 If you need to access Subversion revision information from other programs, you can use the COM interface of SubWCRev. The object to create is SubWCRev.object, and the following methods are supported: 10034
1048 9240 \n
// testCOM.js - javascript file\n
// test script for the SubWCRev COM/Automation-object\n
\n
filesystem = new ActiveXObject(\"Scripting.FileSystemObject\");\n
\n
revObject1 = new ActiveXObject(\"SubWCRev.object\");\n
revObject2 = new ActiveXObject(\"SubWCRev.object\");\n
revObject3 = new ActiveXObject(\"SubWCRev.object\");\n
revObject4 = new ActiveXObject(\"SubWCRev.object\");\n
\n
revObject1.GetWCInfo(\n
filesystem.GetAbsolutePathName(\".\"), 1, 1);\n
revObject2.GetWCInfo(\n
filesystem.GetAbsolutePathName(\"..\"), 1, 1);\n
revObject3.GetWCInfo(\n
filesystem.GetAbsolutePathName(\"SubWCRev.cpp\"), 1, 1);\n
revObject4.GetWCInfo(\n
filesystem.GetAbsolutePathName(\"..\\\\..\"), 1, 1);\n
\n
wcInfoString1 = \"Revision = \" + revObject1.Revision +\n
\"\\n
Min Revision = \" + revObject1.MinRev +\n
\"\\n
Max Revision = \" + revObject1.MaxRev +\n
\"\\n
Date = \" + revObject1.Date +\n
\"\\n
URL = \" + revObject1.Url + \"\\n
Author = \" +\n
revObject1.Author + \"\\n
HasMods = \" +\n
revObject1.HasModifications + \"\\n
IsSvnItem = \" +\n
revObject1.IsSvnItem + \"\\n
NeedsLocking = \" +\n
revObject1.IsLocked + \"\\n
LockCreationDate = \" +\n
revObject1.LockCreationDate + \"\\n
LockOwner = \" +\n
revObject1.LockOwner + \"\\n
LockComment = \" +\n
revObject1.LockComment;\n
wcInfoString2 = \"Revision = \" + revObject2.Revision +\n
\"\\n
Min Revision = \" + revObject2.MinRev +\n
\"\\n
Max Revision = \" + revObject2.MaxRev +\n
\"\\n
Date = \" + revObject2.Date +\n
\"\\n
URL = \" + revObject2.Url + \"\\n
Author = \" +\n
revObject2.Author + \"\\n
HasMods = \" +\n
revObject2.HasModifications + \"\\n
IsSvnItem = \" +\n
revObject2.IsSvnItem + \"\\n
NeedsLocking = \" +\n
revObject2.IsLocked + \"\\n
LockCreationDate = \" +\n
revObject2.LockCreationDate + \"\\n
LockOwner = \" +\n
revObject2.LockOwner + \"\\n
LockComment = \" +\n
revObject2.LockComment;\n
wcInfoString3 = \"Revision = \" + revObject3.Revision +\n
\"\\n
Min Revision = \" + revObject3.MinRev +\n
\"\\n
Max Revision = \" + revObject3.MaxRev +\n
\"\\n
Date = \" + revObject3.Date +\n
\"\\n
URL = \" + revObject3.Url + \"\\n
Author = \" +\n
revObject3.Author + \"\\n
HasMods = \" +\n
revObject3.HasModifications + \"\\n
IsSvnItem = \" +\n
revObject3.IsSvnItem + \"\\n
NeedsLocking = \" +\n
revObject3.IsLocked + \"\\n
LockCreationDate = \" +\n
revObject3.LockCreationDate + \"\\n
LockOwner = \" +\n
revObject3.LockOwner + \"\\n
LockComment = \" +\n
revObject3.LockComment;\n
wcInfoString4 = \"Revision = \" + revObject4.Revision +\n
\"\\n
Min Revision = \" + revObject4.MinRev +\n
\"\\n
Max Revision = \" + revObject4.MaxRev +\n
\"\\n
Date = \" + revObject4.Date +\n
\"\\n
URL = \" + revObject4.Url + \"\\n
Author = \" +\n
revObject4.Author + \"\\n
HasMods = \" +\n
revObject4.HasModifications + \"\\n
IsSvnItem = \" +\n
revObject4.IsSvnItem + \"\\n
NeedsLocking = \" +\n
revObject4.IsLocked + \"\\n
LockCreationDate = \" +\n
revObject4.LockCreationDate + \"\\n
LockOwner = \" +\n
revObject4.LockOwner + \"\\n
LockComment = \" +\n
revObject4.LockComment;\n
\n
WScript.Echo(wcInfoString1);\n
WScript.Echo(wcInfoString2);\n
WScript.Echo(wcInfoString3);\n
WScript.Echo(wcInfoString4);\n
\n
10038
1049 9245 The following example shows how the interface might be used. 10161
1050 9249 \n
using LibSubWCRev;\n
SubWCRev sub = new SubWCRev();\n
sub.GetWCInfo(\"C:\\\\PathToMyFile\\\\MyFile.cc\", true, true);\n
if (sub.IsSvnItem == true)\n
{\n
MessageBox.Show(\"versioned\");\n
}\n
else\n
{\n
MessageBox.Show(\"not versioned\");\n
}\n
10165
1051 9254 The following listing is an example on how to use the SubWCRev COM object from C#: 10182
1052 9258 IBugtraqProvider interface 10186
1053 9270 To get a tighter integration with issue trackers than by simply using the bugtraq: properties, TortoiseSVN can make use of COM plugins. With such plugins it is possible to fetch information directly from the issue tracker, interact with the user and provide information back to TortoiseSVN about open issues, verify log messages entered by the user and even run actions after a successful commit to e.g, close an issue. 10199
1054 9274 We can't provide information and tutorials on how you have to implement a COM object in your preferred programming language, but we have example plugins in C++/ATL and C# in our repository in the contrib/issue-tracker-plugins folder. In that folder you can also find the required include files you need to build your plugin. ( explains how to access the repository). 10203
1055 9278 You should provide both a 32-bit and 64-bit version of your plugin. Because the x64-Version of TortoiseSVN can not use a 32-bit plugin and vice-versa. 10207
1056 9282 The IBugtraqProvider interface 10211
1057 9286 TortoiseSVN 1.5 and later can use plugins which implement the IBugtraqProvider interface. The interface provides a few methods which plugins can use to interact with the issue tracker. 10215
1058 9290 \n
HRESULT ValidateParameters (\n
// Parent window for any UI that needs to be\n
// displayed during validation.\n
[in] HWND hParentWnd,\n
\n
// The parameter string that needs to be validated.\n
[in] BSTR parameters,\n
\n
// Is the string valid?\n
[out, retval] VARIANT_BOOL *valid\n
);\n
10219
1059 9295 This method is called from the settings dialog where the user can add and configure the plugin. The parameters string can be used by a plugin to get additional required information, e.g., the URL to the issue tracker, login information, etc. The plugin should verify the parameters string and show an error dialog if the string is not valid. The hParentWnd parameter should be used for any dialog the plugin shows as the parent window. The plugin must return TRUE if the validation of the parameters string is successful. If the plugin returns FALSE, the settings dialog won't allow the user to add the plugin to a working copy path. 10236
1060 9299 \n
HRESULT GetLinkText (\n
// Parent window for any (error) UI that needs to be displayed.\n
[in] HWND hParentWnd,\n
\n
// The parameter string, just in case you need to talk to your\n
// web service (e.g.) to find out what the correct text is.\n
[in] BSTR parameters,\n
\n
// What text do you want to display?\n
// Use the current thread locale.\n
[out, retval] BSTR *linkText\n
);\n
10240
1061 9304 The plugin can provide a string here which is used in the TortoiseSVN commit dialog for the button which invokes the plugin, e.g., \"Choose issue\" or \"Select ticket\". Make sure the string is not too long, otherwise it might not fit into the button. If the method returns an error (e.g., E_NOTIMPL), a default text is used for the button. 10258
1062 9308 \n
HRESULT GetCommitMessage (\n
// Parent window for your provider's UI.\n
[in] HWND hParentWnd,\n
\n
// Parameters for your provider.\n
[in] BSTR parameters,\n
[in] BSTR commonRoot,\n
[in] SAFEARRAY(BSTR) pathList,\n
\n
// The text already present in the commit message.\n
// Your provider should include this text in the new message,\n
// where appropriate.\n
[in] BSTR originalMessage,\n
\n
// The new text for the commit message.\n
// This replaces the original message.\n
[out, retval] BSTR *newMessage\n
);\n
10262
1063 9313 This is the main method of the plugin. This method is called from the TortoiseSVN commit dialog when the user clicks on the plugin button. 10286
1064 9317 The parameters string is the string the user has to enter in the settings dialog when he configures the plugin. Usually a plugin would use this to find the URL of the issue tracker and/or login information or more. 10290
1065 9321 The commonRoot string contains the parent path of all items selected to bring up the commit dialog. Note that this is not the root path of all items which the user has selected in the commit dialog. For the branch/tag dialog, this is the path which is to be copied. 10294
1066 9325 The pathList parameter contains an array of paths (as strings) which the user has selected for the commit. 10298
1067 9329 The originalMessage parameter contains the text entered in the log message box in the commit dialog. If the user has not yet entered any text, this string will be empty. 10302
1068 9333 The newMessage return string is copied into the log message edit box in the commit dialog, replacing whatever is already there. If a plugin does not modify the originalMessage string, it must return the same string again here, otherwise any text the user has entered will be lost. 10306
1069 9337 The IBugtraqProvider2 interface 10310
1070 9341 In TortoiseSVN 1.6 a new interface was added which provides more functionality for plugins. This IBugtraqProvider2 interface inherits from IBugtraqProvider. 10314
1071 9345 \n
HRESULT GetCommitMessage2 (\n
// Parent window for your provider's UI.\n
[in] HWND hParentWnd,\n
\n
// Parameters for your provider.\n
[in] BSTR parameters,\n
// The common URL of the commit\n
[in] BSTR commonURL,\n
[in] BSTR commonRoot,\n
[in] SAFEARRAY(BSTR) pathList,\n
\n
// The text already present in the commit message.\n
// Your provider should include this text in the new message,\n
// where appropriate.\n
[in] BSTR originalMessage,\n
\n
// You can assign custom revision properties to a commit\n
// by setting the next two params.\n
// note: Both safearrays must be of the same length.\n
// For every property name there must be a property value!\n
\n
// The content of the bugID field (if shown)\n
[in] BSTR bugID,\n
\n
// Modified content of the bugID field\n
[out] BSTR * bugIDOut,\n
\n
// The list of revision property names.\n
[out] SAFEARRAY(BSTR) * revPropNames,\n
\n
// The list of revision property values.\n
[out] SAFEARRAY(BSTR) * revPropValues,\n
\n
// The new text for the commit message.\n
// This replaces the original message\n
[out, retval] BSTR * newMessage\n
);\n
10318
1072 9350 This method is called from the TortoiseSVN commit dialog when the user clicks on the plugin button. This method is called instead of GetCommitMessage(). Please refer to the documentation for GetCommitMessage for the parameters that are also used there. 10361
1073 9354 The parameter commonURL is the parent URL of all items selected to bring up the commit dialog. This is basically the URL of the commonRoot path. 10365
1074 9358 The parameter bugID contains the content of the bug-ID field (if it is shown, configured with the property bugtraq:message). 10369
1075 9362 The return parameter bugIDOut is used to fill the bug-ID field when the method returns. 10373
1076 9366 The revPropNames and revPropValues return parameters can contain name/value pairs for revision properties that the commit should set. A plugin must make sure that both arrays have the same size on return! Each property name in revPropNames must also have a corresponding value in revPropValues. If no revision properties are to be set, the plugin must return empty arrays. 10377
1077 9370 \n
HRESULT CheckCommit (\n
[in] HWND hParentWnd,\n
[in] BSTR parameters,\n
[in] BSTR commonURL,\n
[in] BSTR commonRoot,\n
[in] SAFEARRAY(BSTR) pathList,\n
[in] BSTR commitMessage,\n
[out, retval] BSTR * errorMessage\n
);\n
10381
1078 9375 This method is called right before the commit dialog is closed and the commit begins. A plugin can use this method to validate the selected files/folders for the commit and/or the commit message entered by the user. The parameters are the same as for GetCommitMessage2(), with the difference that commonURL is now the common URL of all checked items, and commonRoot the root path of all checked items. 10396
1079 9379 For the branch/tag dialog, the commonURL is the source URL of the copy, and commonRoot is set to the target URL of the copy. 10400
1080 9383 The return parameter errorMessage must either contain an error message which TortoiseSVN shows to the user or be empty for the commit to start. If an error message is returned, TortoiseSVN shows the error string in a dialog and keeps the commit dialog open so the user can correct whatever is wrong. A plugin should therefore return an error string which informs the user what is wrong and how to correct it. 10404
1081 9387 \n
HRESULT OnCommitFinished (\n
// Parent window for any (error) UI that needs to be displayed.\n
[in] HWND hParentWnd,\n
\n
// The common root of all paths that got committed.\n
[in] BSTR commonRoot,\n
\n
// All the paths that got committed.\n
[in] SAFEARRAY(BSTR) pathList,\n
\n
\n
// The text already present in the commit message.\n
[in] BSTR logMessage,\n
\n
// The revision of the commit.\n
[in] ULONG revision,\n
\n
\n
// An error to show to the user if this function\n
// returns something else than S_OK\n
[out, retval] BSTR * error\n
);\n
10408
1082 9392 This method is called after a successful commit. A plugin can use this method to e.g., close the selected issue or add information about the commit to the issue. The parameters are the same as for GetCommitMessage2. 10436
1083 9396 \n
HRESULT HasOptions(\n
// Whether the provider provides options\n
[out, retval] VARIANT_BOOL *ret\n
);\n
10440
1084 9401 This method is called from the settings dialog where the user can configure the plugins. If a plugin provides its own configuration dialog with ShowOptionsDialog, it must return TRUE here, otherwise it must return FALSE. 10450
1085 9405 \n
HRESULT ShowOptionsDialog(\n
// Parent window for the options dialog\n
[in] HWND hParentWnd,\n
\n
// Parameters for your provider.\n
[in] BSTR parameters,\n
\n
// The parameters string\n
[out, retval] BSTR * newparameters\n
);\n
10454
1086 9410 This method is called from the settings dialog when the user clicks on the \"Options\" button that is shown if HasOptions returns TRUE. A plugin can show an options dialog to make it easier for the user to configure the plugin. 10470
1087 9414 The parameters string contains the plugin parameters string that is already set/entered. 10474
1088 9418 The newparameters return parameter must contain the parameters string which the plugin constructed from the info it gathered in its options dialog. That paramameters string is passed to all other IBugtraqProvider and IBugtraqProvider2 methods. 10478
1089 9422 Frequently Asked Questions (FAQ) 10482
1090 9430 Because TortoiseSVN is being developed all the time it is sometimes hard to keep the documentation completely up to date. We maintain an online FAQ which contains a selection of the questions we are asked the most on the TortoiseSVN mailing lists dev@tortoisesvn.tigris.org and users@tortoisesvn.tigris.org. 10490
1091 9434 We also maintain a project Issue Tracker which tells you about some of the things we have on our To-Do list, and bugs which have already been fixed. If you think you have found a bug, or want to request a new feature, check here first to see if someone else got there before you. 10494
1092 9438 users@tortoisesvn.tigris.org is the one to use if you have questions about using TortoiseSVN. 10498
1093 9442 If you want to help out with the development of TortoiseSVN, then you should take part in discussions on dev@tortoisesvn.tigris.org. 10502
1094 9446 If you want to help with the translation of the TortoiseSVN user interface or the documentation, send an e-mail to translators@tortoisesvn.tigris.org. 10506
1095 9450 If you have a question which is not answered anywhere else, the best place to ask it is on one of the mailing lists: 10510
1096 9458 This appendix contains solutions to problems/questions you might have when using TortoiseSVN. 10518
1097 9462 Move/copy a lot of files at once 10522
1098 9470 reorganize 10530
1099 9474 Moving/Copying single files can be done by using TortoiseSVNRename.... But if you want to move/copy a lot of files, this way is just too slow and too much work. 10534
1100 9478 The recommended way is by right-dragging the files to the new location. Simply right-click on the files you want to move/copy without releasing the mouse button. Then drag the files to the new location and release the mouse button. A context menu will appear where you can either choose Context MenuSVN Copy versioned files here. or Context MenuSVN Move versioned files here. 10538
1101 9482 Force users to enter a log message 10542
1102 9498 There are two ways to prevent users from committing with an empty log message. One is specific to TortoiseSVN, the other works for all Subversion clients, but requires access to the server directly. 10558
1103 9506 If you have direct access to the repository server, you can install a pre-commit hook script which rejects all commits with an empty or too short log message. 10567
1104 9510 In the repository folder on the server, there's a sub-folder hooks which contains some example hook scripts you can use. The file pre-commit.tmpl contains a sample script which will reject commits if no log message is supplied, or the message is too short. The file also contains comments on how to install/use this script. Just follow the instructions in that file. 10571
1105 9514 This method is the recommended way if your users also use other Subversion clients than TortoiseSVN. The drawback is that the commit is rejected by the server and therefore users will get an error message. The client can't know before the commit that it will be rejected. If you want to make TortoiseSVN have the OK button disabled until the log message is long enough then please use the method described below. 10575
1106 9522 TortoiseSVN uses properties to control some of its features. One of those properties is the tsvn:logminsize property. 10584
1107 9526 If you set that property on a folder, then TortoiseSVN will disable the OK button in all commit dialogs until the user has entered a log message with at least the length specified in the property. 10588
1108 9530 For detailed information on those project properties, please refer to 10592
1109 9534 Update selected files from the repository 10596
1110 9538 Normally you update your working copy using TortoiseSVNUpdate. But if you only want to pick up some new files that a colleague has added without merging in any changes to other files at the same time, you need a different approach. 10600
1111 9542 Use TortoiseSVNCheck for Modifications. and click on Check repository to see what has changed in the repository. Select the files you want to update locally, then use the context menu to update just those files. 10604
1112 9546 Roll back (Undo) revisions in the repository 10608
1113 9550 rollback 10612
1114 9566 The easiest way to revert the changes from a single revision, or from a range of revisions, is to use the revision log dialog. This is also the method to use of you want to discard recent changes and make an earlier revision the new HEAD. 10629
1115 9570 Select the file or folder in which you need to revert the changes. If you want to revert all changes, this should be the top level folder. 10633
1116 9574 Select TortoiseSVNShow Log to display a list of revisions. You may need to use Show All or Next 100 to show the revision(s) you are interested in. 10637
1117 9578 Select the revision you wish to revert. If you want to undo a range of revisions, select the first one and hold the Shift key while selecting the last one. Note that for multiple revisions, the range must be unbroken with no gaps. Right click on the selected revision(s), then select Context MenuRevert changes from this revision. 10641
1118 9582 Or if you want to make an earlier revision the new HEAD revision, right click on the selected revision, then select Context MenuRevert to this revision. This will discard all changes after the selected revision. 10645
1119 9587 You have reverted the changes within your working copy. Check the results, then commit the changes. 10650
1120 9595 To undo a larger range of revisions, you can use the Merge dialog. The previous method uses merging behind the scenes; this method uses it explicitly. 10659
1121 9599 In your working copy select TortoiseSVNMerge. 10663
1122 9603 In the From: field enter the full folder URL of the branch or tag containing the changes you want to revert in your working copy. This should come up as the default URL. 10667
1123 9607 In the From Revision field enter the revision number that you are currently at. If you are sure there is no-one else making changes, you can use the HEAD revision. 10671
1124 9611 make sure the Use \"From:\" URL checkbox is checked. 10675
1125 9615 In the To Revision field enter the revision number that you want to revert to, namely the one before the first revision to be reverted. 10679
1126 9619 Click OK to complete the merge. 10683
1127 9627 Since TortoiseSVN never loses data, your rolled back revisions still exist as intermediate revisions in the repository. Only the HEAD revision was changed to a previous state. If you want to make revisions disappear completely from your repository, erasing all trace that they ever existed, you have to use more extreme measures. Unless there is a really good reason to do this, it is not recommended. One possible reason would be that someone committed a confidential document to a public repository. 10692
1128 9631 The only way to remove data from the repository is to use the Subversion command line tool svnadmin. You can find a description of how this works in the Repository Maintenance. 10696
1129 9635 Compare two revisions of a file or folder 10700
1130 9651 If you want to compare two revisions in an item's history, for example revisions 100 and 200 of the same file, just use TortoiseSVNShow Log to list the revision history for that file. Pick the two revisions you want to compare then use Context MenuCompare Revisions. 10719
1131 9655 If you want to compare the same item in two different trees, for example the trunk and a branch, you can use the repository browser to open up both trees, select the file in both places, then use Context MenuCompare Revisions. 10723
1132 9659 If you want to compare two trees to see what has changed, for example the trunk and a tagged release, you can use TortoiseSVNRevision Graph Select the two nodes to compare, then use Context MenuCompare HEAD Revisions. This will show a list of changed files, and you can then select individual files to view the changes in detail. You can also export a tree structure containing all the changed files, or simply a list of all changed files. Read for more information. Alternatively use Context MenuUnified Diff of HEAD Revisions to see a summary of all differences, with minimal context. 10727
1133 9663 Include a common sub-project 10731
1134 9675 Sometimes you will want to include another project within your working copy, perhaps some library code. You don't want to make a duplicate of this code in your repository because then you would lose connection with the original (and maintained) code. Or maybe you have several projects which share core code. There are at least 3 ways of dealing with this. 10745
1135 9683 Set the svn:externals property for a folder in your project. This property consists of one or more lines; each line has the name of a sub-folder which you want to use as the checkout folder for common code, and the repository URL that you want to be checked out there. For full details refer to . 10753
1136 9687 Commit the new folder. Now when you update, Subversion will pull a copy of that project from its repository into your working copy. The sub-folders will be created automatically if required. Each time you update your main working copy, you will also receive the latest version of all external projects. 10757
1137 9691 Of the three methods described, this is the only one which needs no setup on the client side. Once externals are specified in the folder properties, all clients will get populated folders when they update. 10761
1138 9699 Create a new folder within your project to contain the common code, but do not add it to Subversion 10770
1139 9703 Select TortoiseSVNCheckout for the new folder and checkout a copy of the common code into it. You now have a separate working copy nested within your main working copy. 10774
1140 9707 The two working copies are independent. When you commit changes to the parent, changes to the nested WC are ignored. Likewise when you update the parent, the nested WC is not updated. 10778
1141 9715 If you use the same common core code in several projects, and you do not want to keep multiple working copies of it for every project that uses it, you can just check it out to a separate location which is related to all the other projects which use it. For example: \n
C:\\Projects\\Proj1\n
C:\\Projects\\Proj2\n
C:\\Projects\\Proj3\n
C:\\Projects\\Common\n
and refer to the common code using a relative path, eg. ..\\..\\Common\\DSPcore.
10787
1142 9719 If your projects are scattered in unrelated locations you can use a variant of this, which is to put the common code in one location and use drive letter substitution to map that location to something you can hard code in your projects, eg. Checkout the common code to D:\\Documents\\Framework or C:\\Documents and Settings\\{login}\\My Documents\\framework then use \n
SUBST X: \"D:\\Documents\\framework\"\n
to create the drive mapping used in your source code. Your code can then use absolute locations. \n
#include \"X:\\superio\\superio.h\"\n
10797
1143 9723 This method will only work in an all-PC environment, and you will need to document the required drive mappings so your team know where these mysterious files are. This method is strictly for use in closed development environments, and not recommended for general use. 10806
1144 9735 If you frequently need to open the repository browser at a particular location, you can create a desktop shortcut using the automation interface to TortoiseProc. Just create a new shortcut and set the target to: \n
TortoiseProc.exe /command:repobrowser /path:\"url/to/repository\"\n
Of course you need to include the real repository URL.
10820
1145 9739 Ignore files which are already versioned 10827
1146 9751 If you accidentally added some files which should have been ignored, how do you get them out of version control without losing them? Maybe you have your own IDE configuration file which is not part of the project, but which took you a long time to set up just the way you like it. 10841
1147 9755 If you have not yet committed the add, then all you have to do is use TortoiseSVNRevert... to undo the add. You should then add the file(s) to the ignore list so they don't get added again later by mistake. 10845
1148 9759 If the files are already in the repository, they have to be deleted from the repository and added to the ignore list. Fortunately TortoiseSVN has a convenient shortcut for doing this. TortoiseSVNUnversion and add to ignore list will first mark the file/folder for deletion from the repository, keeping the local copy. It also adds this item to the ignore list so that it will not be added back into Subversion again by mistake. Once this is done you just need to commit the parent folder. 10849
1149 9767 If you have a working copy which you want to convert back to a plain folder tree without the .svn directories, you can simply export it to itself. Read to find out how. 10858
1150 9775 If you have a working copy which you no longer need, how do you get rid of it cleanly? Easy - just delete it in Windows Explorer! Working copies are private local entities, and they are self-contained. 10867
1151 9779 Useful Tips For Administrators 10871
1152 9783 This appendix contains solutions to problems/questions you might have when you are responsible for deploying TortoiseSVN to multiple client computers. 10875
1153 9787 Deploy TortoiseSVN via group policies 10879
1154 9809 deploy 10903
1155 9813 The TortoiseSVN installer comes as an MSI file, which means you should have no problems adding that MSI file to the group policies of your domain controller. 10907
1156 9817 A good walk-through on how to do that can be found in the knowledge base article 314934 from Microsoft: http://support.microsoft.com/?kbid=314934. 10911
1157 9821 Versions 1.3.0 and later of TortoiseSVN must be installed under Computer Configuration and not under User Configuration. This is because those versions need the new CRT and MFC DLLs, which can only be deployed per computer and not per user. If you really must install TortoiseSVN on a per user basis, then you must first install the MFC and CRT package version 8 from Microsoft on each computer you want to install TortoiseSVN as per user. 10915
1158 9841 TortoiseSVN checks if there's a new version available every few days. If there is a newer version available, a dialog shows up informing the user about that. 10937
1159 9849 If you're responsible for a lot of users in your domain, you might want your users to use only versions you have approved and not have them install always the latest version. You probably don't want that upgrade dialog to show up so your users don't go and upgrade immediately. 10945
1160 9853 Versions 1.4.0 and later of TortoiseSVN allow you to redirect that upgrade check to your intranet server. You can set the registry key HKCU\\Software\\TortoiseSVN\\UpdateCheckURL (string value) to an URL pointing to a text file in your intranet. That text file must have the following format: \n
1.4.1.6000\n
A new version of TortoiseSVN is available for you to download!\n
http://192.168.2.1/downloads/TortoiseSVN-1.4.1.6000-svn-1.4.0.msi\n
The first line in that file is the version string. You must make sure that it matches the exact version string of the TortoiseSVN installation package. The second line is a custom text, shown in the upgrade dialog. You can write there whatever you want. Just note that the space in the upgrade dialog is limited. Too long messages will get truncated! The third line is the URL to the new installation package. This URL is opened when the user clicks on the custom message label in the upgrade dialog. You can also just point the user to a web page instead of the MSI file directly. The URL is opened with the default web browser, so if you specify a web page, that page is opened and shown to the user. If you specify the MSI package, the browser will ask the user to save the MSI file locally.
10949
1161 9857 Setting the SVN_ASP_DOT_NET_HACK environment variable 10958
1162 9861 SVN_ASP_DOT_NET_HACK 10962
1163 9873 As of version 1.4.0 and later, the TortoiseSVN installer doesn't provide the user with the option to set the SVN_ASP_DOT_NET_HACK environment variable anymore, since that caused many problems and confusion for users who always install everything no matter whether they know what it is for. 10974
1164 9877 But that option is only hidden for the user. You still can force the TortoiseSVN installer to set that environment variable by setting the ASPDOTNETHACK property to TRUE. For example, you can start the installer like this: \n
msiexec /i TortoiseSVN-1.4.0.msi ASPDOTNETHACK=TRUE\n
10978
1165 9893 As of version 1.5.0 and later, TortoiseSVN allows you to disable (actually, hide) context menu entries. Since this is a feature which should not be used lightly but only if there is a compelling reason, there is no GUI for this and it has to be done directly in the registry. This can be used to disable certain commands for users who should not use them. But please note that only the context menu entries in the explorer are hidden, and the commands are still available through other means, e.g. the command line or even other dialogs in TortoiseSVN itself! 10997
1166 9897 The registry keys which hold the information on which context menus to show are HKEY_CURRENT_USER\\Software\\TortoiseSVN\\ContextMenuEntriesMaskLow and HKEY_CURRENT_USER\\Software\\TortoiseSVN\\ContextMenuEntriesMaskHigh. 11001
1167 9901 Each of these registry entries is a DWORD value, with each bit corresponding to a specific menu entry. A set bit means the corresponding menu entry is deactivated. 11005
1168 9905 Menu entries and their values 11009
1169 10075 Example: to disable the Relocate the Delete unversioned items and the Settings menu entries, add the values assigned to the entries like this: \n
0x0000000000080000\n
+ 0x0000000080000000\n
+ 0x2000000000000000\n
= 0x2000000080080000\n
The lower DWORD value (0x80080000) must then be stored in HKEY_CURRENT_USER\\Software\\TortoiseSVN\\ContextMenuEntriesMaskLow, the higher DWORD value (0x20000000) in HKEY_CURRENT_USER\\Software\\TortoiseSVN\\ContextMenuEntriesMaskHigh.
11179
1170 10079 To enable the menu entries again, simply delete the two registry keys. 11189
1171 10087 Since all commands for TortoiseSVN are controlled through command line parameters, you can automate it with batch scripts or start specific commands and dialogs from other programs (e.g. your favourite text editor). 11197
1172 10091 Remember that TortoiseSVN is a GUI client, and this automation guide shows you how to make the TortoiseSVN dialogs appear to collect user input. If you want to write a script which requires no input, you should use the official Subversion command line client instead. 11201
1173 10111 The TortoiseSVN GUI program is called TortoiseProc.exe. All commands are specified with the parameter where abcd is the required command name. Most of these commands need at least one path argument, which is given with . In the following table the command refers to the parameter and the path refers to the parameter. 11222
1174 10115 Since some of the commands can take a list of target paths (e.g. committing several specific files) the parameter can take several paths, separated by a * character. 11226
1175 10119 TortoiseSVN uses temporary files to pass multiple arguments between the shell extension and the main program. From TortoiseSVN 1.5.0 on and later, parameter is obsolete and there is no need to add it anymore. 11230
1176 10123 You can also specify a file which contains a list of paths, separated by newlines. The file must be in UTF-16 format. If you pass such a file, use instead of . To have TortoiseProc delete that file after the command is finished, you can pass the parameter . 11234
1177 10127 The progress dialog which is used for commits, updates and many more commands usually stays open after the command has finished until the user presses the OK button. This can be changed by checking the corresponding option in the settings dialog. But using that setting will close the progress dialog, no matter if you start the command from your batch file or from the TortoiseSVN context menu. 11238
1178 10131 To specify a different location of the configuration file, use the parameter . This will override the default path, including any registry setting. 11242
1179 10135 don't close the dialog automatically 11246
1180 10139 auto close if no errors 11250
1181 10143 auto close if no errors and conflicts 11254
1182 10147 auto close if no errors, conflicts and merges 11258
1183 10151 To close the progress dialog at the end of a command automatically without using the permanent setting you can pass the parameter. To close the progress dialog for local operations if there were no errors or conflicts, pass the parameter. 11262
1184 10155 The table below lists all the commands which can be accessed using the TortoiseProc.exe command line. As described above, these should be used in the form /command:abcd. In the table, the /command prefix is omitted to save space. 11266
1185 10167 Shows the about dialog. This is also shown if no command is given. 11279
1186 10238 filter by everything 11350
1187 10242 filter by messages 11354
1188 10246 filter by path 11358
1189 10250 filter by authors 11362
1190 10254 filter by revisions 11366
1191 10258 filter by bug ID 11370
1192 10262 Opens the log dialog. The specifies the file or folder for which the log should be shown. Six additional options can be set: , , enables the 'stop-on-copy' checkbox, fills in the filter text, forces the filter to use text, not regex, or forces the filter to use regex, not simple text search, and with X being a number between 1 and 7. The numbers correspond to: 11374
1193 10271 Opens the checkout dialog. The specifies the target directory and the specifies the URL to checkout from. 11383
1194 10275 Opens the import dialog. The specifies the directory with the data to import. 11387
1195 10299 Updates the working copy in to HEAD. If the option is given then a dialog is shown to ask the user to which revision the update should go. To avoid the dialog specify a revision number . Other options are , and . 11411
1196 10322 Opens the commit dialog. The specifies the target directory or the list of files to commit. You can also specify the switch to pass a predefined log message to the commit dialog. Or, if you don't want to pass the log message on the command line, use , where points to a file containing the log message. To pre-fill the bug ID box (in case you've set up integration with bug trackers properly), you can use the to do that. 11434
1197 10326 Adds the files in to version control. 11438
1198 10330 Reverts local modifications of a working copy. The tells which items to revert. 11442
1199 10338 Cleans up interrupted or aborted operations and unlocks the working copy in . Use to prevent the result dialog from popping up (either telling about the cleanup being finished or showing an error message). 11450
1200 10348 Marks a conflicted file specified in as resolved. If is given, then resolving is done without asking the user first if it really should be done. 11460
1201 10356 Opens the switch dialog. The specifies the target directory. 11468
1202 10360 Exports the working copy in to another directory. If the points to an unversioned directory, a dialog will ask for an URL to export to the directory in . 11472
1203 10385 Opens the merge dialog. The specifies the target directory. For merging a revision range, the following options are available: , . For merging two repository trees, the following options are available: , , and . These pre-fill the relevant fields in the merge dialog. 11497
1204 10389 Opens the merge all dialog. The specifies the target directory. 11501
1205 10393 Brings up the branch/tag dialog. The is the working copy to branch/tag from. And the is the target URL. You can also specify the switch to pass a predefined log message to the branch/tag dialog. Or, if you don't want to pass the log message on the command line, use , where points to a file containing the log message. 11505
1206 10401 Removes the file(s) in from version control. 11513
1207 10405 Renames the file in . The new name for the file is asked with a dialog. To avoid the question about renaming similar files in one step, pass . 11517
1208 10423 Starts the external diff program specified in the TortoiseSVN settings. The specifies the first file. If the option is set, then the diff program is started with those two files. If is omitted, then the diff is done between the file in and its BASE. To explicitly set the revision numbers use and . If is set and is not set, then the diff is done by first blaming the files with the given revisions. The parameter specifies the line to jump to when the diff is shown. 11535
1209 10427 Depending on the URLs and revisions to compare, this either shows a unified diff (if the option is set), a dialog with a list of files that have changed or if the URLs point to files starts the diff viewer for those two files. 11539
1210 10431 The options , , and must be specified. The options , , and are optional. 11543
1211 10435 Starts the conflict editor specified in the TortoiseSVN settings with the correct files for the conflicted file in . 11547
1212 10439 Opens the relocate dialog. The specifies the working copy path to relocate. 11551
1213 10455 Opens the check-for-modifications dialog. The specifies the working copy directory. If is specified, the dialog contacts the repository immediately on startup, as if the user clicked on the button. 11567
1214 10468 Starts the repository browser dialog, pointing to the URL of the working copy given in or points directly to an URL. An additional option can be used to specify the revision which the repository browser should show. If the is omitted, it defaults to HEAD. If points to an URL, the specifies the path from where to read and use the project properties. 11580
1215 10476 Adds all targets in to the ignore list, i.e. adds the property to those files. 11588
1216 10480 Opens the blame dialog for the file specified in . 11592
1217 10484 If the options and are set, then the dialog asking for the blame range is not shown but the revision values of those options are used instead. 11596
1218 10488 If the option is set, TortoiseBlame will open with the specified line number showing. 11600
1219 10492 The options , and are also supported. 11604
1220 10504 Saves a file from an URL or working copy path given in to the location given in . The revision is given in . This can be used to get a file with a specific revision. 11616
1221 10508 Creates a patch file for the path given in . 11620
1222 10512 Shows the revision graph for the path given in . 11624
1223 10516 Locks a file or all files in a directory given in . The 'lock' dialog is shown so the user can enter a comment for the lock. 11628
1224 10520 Unlocks a file or all files in a directory given in . 11632
1225 10524 Rebuilds the windows icon cache. Only use this in case the windows icons are corrupted. A side effect of this (which can't be avoided) is that the icons on the desktop get rearranged. To suppress the message box, pass . 11636
1226 10528 Shows the properties dialog for the path given in . 11640
1227 10532 Examples (which should be entered on one line): \n
TortoiseProc.exe /command:commit\n
/path:\"c:\\svn_wc\\file1.txt*c:\\svn_wc\\file2.txt\"\n
/logmsg:\"test log message\" /closeonend:0\n
\n
TortoiseProc.exe /command:update /path:\"c:\\svn_wc\\\" /closeonend:0\n
\n
TortoiseProc.exe /command:log /path:\"c:\\svn_wc\\file1.txt\"\n
/startrev:50 /endrev:60 /closeonend:0\n
11644
1228 10544 Using special URLs, it is also possible to call TortoiseProc from a web page. 11666
1229 10548 TortoiseSVN registers a new protocol tsvncmd: which can be used to create hyperlinks that execute TortoiseSVN commands. The commands and parameters are the same as when automating TortoiseSVN from the command line. 11670
1230 10552 The format of the tsvncmd: URL is like this: 11674
1231 10556 tsvncmd:command:cmd?parameter:paramvalue?parameter:paramvalue 11678
1232 10560 with cmd being one of the allowed commands and with parameter being a parameter like path or revision, depending on the command used. 11682
1233 10564 The following commands are allowed with tsvncmd: URLs: 11686
1234 10568 \n
&lt;a href=\"tsvncmd:command:showcompare?\n
url1:https://stexbar.googlecode.com/svn/trunk/StExBar/src/setup/Setup.wxs?\n
url2:https://stexbar.googlecode.com/svn/trunk/StExBar/src/setup/Setup.wxs?\n
revision1:188?revision2:189\"&gt;compare&lt;/a&gt;\n
11690
1235 10573 An example URL might look like this: 11700
1236 10581 The image diff tool has a few command line options which you can use to control how the tool is started. The program is called TortoiseIDiff.exe. 11708
1237 10585 The table below lists all the options which can be passed to the image diff tool on the command line. 11712
1238 10597 Path to the file shown on the left. 11724
1239 10602 A title string. This string is used in the image view title instead of the full path to the image file. 11729
1240 10606 Path to the file shown on the right. 11733
1241 10610 If specified, the image diff tool switches to the overlay mode (alpha blend). 11737
1242 10614 If specified, the image diff tool fits both images together. 11741
1243 10618 Shows the image info box. 11745
1244 10622 Example (which should be entered on one line): \n
TortoiseIDiff.exe /left:\"c:\\images\\img1.jpg\" /lefttitle:\"image 1\"\n
/right:\"c:\\images\\img2.jpg\" /righttitle:\"image 2\"\n
/fit /overlay\n
11749
1245 10626 Command Line Interface Cross Reference 11758
1246 10638 Sometimes this manual refers you to the main Subversion documentation, which describes Subversion in terms of the Command Line Interface (CLI). To help you understand what TortoiseSVN is doing behind the scenes, we have compiled a list showing the equivalent CLI commands for each of TortoiseSVN's GUI operations. 11770
1247 10642 Even though there are CLI equivalents to what TortoiseSVN does, remember that TortoiseSVN does not call the CLI but uses the Subversion library directly. 11774
1248 10646 If you think you have found a bug in TortoiseSVN, we may ask you to try to reproduce it using the CLI, so that we can distinguish TortoiseSVN issues from Subversion issues. This reference tells you which command to try. 11778
1249 10650 Conventions and Basic Rules 11782
1250 10654 In the descriptions which follow, the URL for a repository location is shown simply as URL, and an example might be http://tortoisesvn.googlecode.com/svn/trunk/. The working copy path is shown simply as PATH, and an example might be C:\\TortoiseSVN\\trunk. 11786
1251 10658 Because TortoiseSVN is a Windows Shell Extension, it is not able to use the notion of a current working directory. All working copy paths must be given using the absolute path, not a relative path. 11790
1252 10662 Certain items are optional, and these are often controlled by checkboxes or radio buttons in TortoiseSVN. These options are shown in [square brackets] in the command line definitions. 11794
1253 10666 \n
svn checkout [-depth ARG] [--ignore-externals] [-r rev] URL PATH\n
11798
1254 10672 The depth combo box items relate to the -depth argument. 11806
1255 10677 If Omit externals is checked, use the --ignore-externals switch. 11811
1256 10681 If you are checking out a specific revision, specify that after the URL using -r switch. 11815
1257 10685 \n
svn info URL_of_WC\n
svn update [-r rev] PATH\n
11819
1258 10690 Updating multiple items is currently not an atomic operation in Subversion. So TortoiseSVN first finds the HEAD revision of the repository, and then updates all items to that particular revision number to avoid creating a mixed revision working copy. 11827
1259 10694 If only one item is selected for updating or the selected items are not all from the same repository, TortoiseSVN just updates to HEAD. 11831
1260 10698 No command line options are used here. Update to revision also implements the update command, but offers more options. 11835
1261 10706 \n
svn info URL_of_WC\n
svn update [-r rev] [-depth ARG] [--ignore-externals] PATH\n
11843
1262 10711 In TortoiseSVN, the commit dialog uses several Subversion commands. The first stage is a status check which determines the items in your working copy which can potentially be committed. You can review the list, diff files against BASE and select the items you want to be included in the commit. 11851
1263 10723 If Show unversioned files is checked, TortoiseSVN will also show all unversioned files and folders in the working copy hierarchy, taking account of the ignore rules. This particular feature has no direct equivalent in Subversion, as the svn status command does not descend into unversioned folders. 11867
1264 10727 If you check any unversioned files and folders, those items will first be added to your working copy. 11871
1265 10737 When you click on OK, the Subversion commit takes place. If you have left all the file selection checkboxes in their default state, TortoiseSVN uses a single recursive commit of the working copy. If you deselect some files, then a non-recursive commit (-N) must be used, and every path must be specified individually on the commit command line. 11885
1266 10741 \n
svn commit -m \"LogMessage\" [-depth ARG] [--no-unlock] PATH...\n
11889
1267 10748 LogMessage here represents the contents of the log message edit box. This can be empty. 11898
1268 10752 If Keep locks is checked, use the --no-unlock switch. 11902
1269 10761 If you use Diff from the main context menu, you are diffing a modified file against its BASE revision. The output from the CLI command above also does this and produces output in unified-diff format. However, this is not what TortoiseSVN is using. TortoiseSVN uses TortoiseMerge (or a diff program of your choosing) to display differences visually between full-text files, so there is no direct CLI equivalent. 11915
1270 10765 You can also diff any 2 files using TortoiseSVN, whether or not they are version controlled. TortoiseSVN just feeds the two files into the chosen diff program and lets it work out where the differences lie. 11919
1271 10769 \n
svn log -v -r 0:N --limit 100 [--stop-on-copy] PATH\n
or\n
svn log -v -r M:N [--stop-on-copy] PATH\n
11923
1272 10774 By default, TortoiseSVN tries to fetch 100 log messages using the --limit method. If the settings instruct it to use old APIs, then the second form is used to fetch the log messages for 100 repository revisions. 11932
1273 10778 If Stop on copy/rename is checked, use the --stop-on-copy switch. 11936
1274 10787 The initial status check looks only at your working copy. If you click on Check repository then the repository is also checked to see which files would be changed by an update, which requires the -u switch. 11953
1275 10795 The revision graph is a feature of TortoiseSVN only. There's no equivalent in the command line client. 11961
1276 10799 What TortoiseSVN does is an \n
svn info URL_of_WC\n
svn log -v URL\n
where URL is the repository root and then analyzes the data returned.
11965
1277 10807 \n
svn info URL_of_WC\n
svn list [-r rev] -v URL\n
11977
1278 10812 You can use svn info to determine the repository root, which is the top level shown in the repository browser. You cannot navigate Up above this level. Also, this command returns all the locking information shown in the repository browser. 11985
1279 10816 The svn list call will list the contents of a directory, given a URL and revision. 11989
1280 10820 This command has no CLI equivalent. It invokes TortoiseMerge or an external 3-way diff/merge tool to look at the files involved in the conflict and sort out which lines to use. 11993
1281 10843 The first stage is a status check which determines the items in your working copy which can potentially be reverted. You can review the list, diff files against BASE and select the items you want to be included in the revert. 12028
1282 10847 When you click on OK, the Subversion revert takes place. If you have left all the file selection checkboxes in their default state, TortoiseSVN uses a single recursive (-R) revert of the working copy. If you deselect some files, then every path must be specified individually on the revert command line. 12032
1283 10865 The first stage is a status check which determines the files in your working copy which can potentially be locked. You can select the items you want to be locked. 12058
1284 10869 \n
svn lock -m \"LockMessage\" [--force] PATH...\n
12062
1285 10874 LockMessage here represents the contents of the lock message edit box. This can be empty. 12069
1286 10878 If Steal the locks is checked, use the --force switch. 12073
1287 10891 \n
svn copy -m \"LogMessage\" URL URL\n
or\n
svn copy -m \"LogMessage\" URL@rev URL@rev\n
or\n
svn copy -m \"LogMessage\" PATH URL\n
12090
1288 10900 The Branch/Tag dialog performs a copy to the repository. There are 3 radio button options: which correspond to the 3 command line variants above. 12105
1289 10904 \n
svn info URL_of_WC\n
svn switch [-r rev] URL PATH\n
12109
1290 10909 \n
svn merge [--dry-run] --force From_URL@revN To_URL@revM PATH\n
12117
1291 10914 The Test Merge performs the same merge with the --dry-run switch. 12124
1292 10918 \n
svn diff From_URL@revN To_URL@revM\n
12128
1293 10923 The Unified diff shows the diff operation which will be used to do the merge. 12135
1294 10927 \n
svn export [-r rev] [--ignore-externals] URL Export_PATH\n
12139
1295 10932 This form is used when accessed from an unversioned folder, and the folder is used as the destination. 12146
1296 10936 Exporting a working copy to a different location is done without using the Subversion library, so there's no matching command line equivalent. 12150
1297 10940 What TortoiseSVN does is to copy all files to the new location while showing you the progress of the operation. Unversioned files/folders can optionally be exported too. 12154
1298 10944 In both cases, if Omit externals is checked, use the --ignore-externals switch. 12158
1299 10948 \n
svn switch --relocate From_URL To_URL\n
12162
1300 10957 \n
svnadmin create --fs-type fsfs PATH\n
12173
1301 10962 If you selected a folder, TortoiseSVN first scans it recursively for items which can be added. 12180
1302 10966 \n
svn import -m LogMessage PATH URL\n
12184
1303 10976 If you use TortoiseBlame to view the blame info, the file log is also required to show log messages in a tooltip. If you view blame as a text file, this information is not required. 12202
1304 10984 \n
svn propget svn:ignore PATH &gt; tempfile\n
{edit new ignore item into tempfile}\n
svn propset svn:ignore -F tempfile PATH\n
12210
1305 10989 Because the svn:ignore property is often a multi-line value, it is shown here as being changed via a text file rather than directly on the command line. 12219
1306 10998 TortoiseSVN creates a patch file in unified diff format by comparing the working copy with its BASE version. 12230
1307 11002 Applying patches is a tricky business unless the patch and working copy are at the same revision. Luckily for you, you can use TortoiseMerge, which has no direct equivalent in Subversion. 12234
1308 11010 This appendix contains a more detailed discussion of the implementation of some of TortoiseSVN's features. 12242
1309 11018 Every file and folder has a Subversion status value as reported by the Subversion library. In the command line client, these are represented by single letter codes, but in TortoiseSVN they are shown graphically using the icon overlays. Because the number of overlays is very limited, each overlay may represent one of several status values. 12250
1310 11022 The Conflicted overlay is used to represent the conflicted state, where an update or switch results in conflicts between local changes and changes downloaded from the repository. It is also used to indicate the obstructed state, which can occur when an operation is unable to complete. 12254
1311 11026 The Modified overlay represents the modified state, where you have made local modifications, the merged state, where changes from the repository have been merged with local changes, and the replaced state, where a file has been deleted and replaced by another different file with the same name. 12258
1312 11030 The Deleted overlay represents the deleted state, where an item is scheduled for deletion, or the missing state, where an item is not present. Naturally an item which is missing cannot have an overlay itself, but the parent folder can be marked if one of its child items is missing. 12262
1313 11034 The Added overlay is simply used to represent the added status when an item has been added to version control. 12266
1314 11038 The In Subversion overlay is used to represent an item which is in the normal state, or a versioned item whose state is not yet known. Because TortoiseSVN uses a background caching process to gather status, it may take a few seconds before the overlay updates. 12270
1315 11042 The Needs Lock overlay is used to indicate when a file has the svn:needs-lock property set. For working copies which were created using Subversion 1.4.0 and later, the svn:needs-lock status is cached locally by Subversion and this is used to determine when to show this overlay. For working copies which are in pre-1.4.x format, TortoiseSVN shows this overlay when the file has read-only status. Note that Subversion automatically upgrades working copies when you update them, although the caching of the svn:needs-lock property may not happen until the file itself is updated. 12274
1316 11046 The Locked overlay is used when the local working copy holds a lock for that file. 12278
1317 11050 The Ignored overlay is used to represent an item which is in the ignored state, either due to a global ignore pattern, or the svn:ignore property of the parent folder. This overlay is optional. 12282
1318 11054 The Unversioned overlay is used to represent an item which is in the unversioned state. This is an item in a versioned folder, but which is not under version control itself. This overlay is optional. 12286
1319 11058 If an item has subversion status none (the item is not within a working copy) then no overlay is shown. If you have chosen to disable the Ignored and Unversioned overlays then no overlay will be shown for those files either. 12290
1320 11062 An item can only have one Subversion status value. For example a file could be locally modified and it could be marked for deletion at the same time. Subversion returns a single status value - in this case deleted. Those priorities are defined within Subversion itself. 12294
1321 11066 When TortoiseSVN displays the status recursively (the default setting), each folder displays an overlay reflecting its own status and the status of all its children. In order to display a single summary overlay, we use the priority order shown above to determine which overlay to use, with the Conflicted overlay taking highest priority. 12298
1322 11070 In fact, you may find that not all of these icons are used on your system. This is because the number of overlays allowed by Windows is limited to 15. Windows uses 4 of those, and the remaining 11 can be used by other applications. If there are not enough overlay slots available, TortoiseSVN tries to be a Good Citizen (TM) and limits its use of overlays to give other apps a chance. 12302
1323 11074 Normal, Modified and Conflicted are always loaded and visible. 12306
1324 11078 Deleted is loaded if possible, but falls back to Modified if there are not enough slots. 12310
1325 11082 Read-Only is loaded if possible, but falls back to Normal if there are not enough slots. 12314
1326 11086 Locked is only loaded if there are fewer than 13 overlays already loaded. It falls back to Normal if there are not enough slots. 12318
1327 11090 Added is only loaded if there are fewer than 14 overlays already loaded. It falls back to Modified if there are not enough slots. 12322
1328 11094 Securing Svnserve using SSH 12326
1329 11098 This section provides a step-by-step guide to setting up Subversion and TortoiseSVN to use the svn+ssh protocol. If you already use authenticated SSH connections to login to your server, then you are already there and you can find more detail in the Subversion book. If you are not using SSH but would like to do so to protect your Subversion installation, this guide gives a simple method which does not involve creating a separate SSH user account on the server for every subversion user. 12330
1330 11102 In this implementation we create a single SSH user account for all subversion users, and use different authentication keys to differentiate between the real Subversion users. 12334
1331 11106 In this appendix we assume that you already have the subversion tools installed, and that you have created a repository as detailed elsewhere in this manual. Note that you should not start svnserve as a service or daemon when used with SSH. 12338
1332 11110 Much of the information here comes from a tutorial provided by Marc Logemann, which has been archived at http://tortoisesvn.net/ssh_howto Additional information on setting up a Windows server was provided by Thorsten Müller. Thanks guys! 12342
1333 11114 You can also watch a video tutorial created by Maximo Migliari which takes you through all the important steps. Watch it on Vimeo. or YouTube. 12346
1334 11122 You need to have SSH enabled on the server, and here we assume that you will be using OpenSSH. On most distributions this will already be installed. To find out, type: \n
ps xa | grep sshd\n
and look for ssh jobs.
12355
1335 11126 One point to note is that if you build Subversion from source and do not provide any argument to ./configure, Subversion creates a bin directory under /usr/local and places its binaries there. If you want to use tunneling mode with SSH, you have to be aware that the user logging in via SSH needs to execute the svnserve program and some other binaries. For this reason, either place /usr/local/bin into the PATH variable or create symbolic links of your binaries to the /usr/sbin directory, or to any other directory which is commonly in the PATH. 12362
1336 11130 To check that everything is OK, login in as the target user with SSH and type: \n
which svnserve\n
This command should tell you if svnserve is reachable.
12366
1337 11134 Create a new user which we will use to access the svn repository: \n
useradd -m svnuser\n
Be sure to give this user full access rights to the repository.
12373
1338 11142 Install Cygwin SSH daemon as described here: http://pigtail.net/LRP/printsrv/cygwin-sshd.html 12384
1339 11146 Create a new Windows user account svnuser which we will use to access the repository. Be sure to give this user full access rights to the repository. 12388
1340 11150 If there is no password file yet then create one from the Cygwin console using: \n
mkpasswd -l &gt; /etc/passwd\n
12392
1341 11154 SSH Client Tools for use with TortoiseSVN 12399
1342 11158 Grab the tools we need for using SSH on the windows client from this site: http://www.chiark.greenend.org.uk/~sgtatham/putty/ Just go to the download section and get Putty, Plink, Pageant and Puttygen. 12403
1343 11166 The next step is to create a key pair for authentication. There are two possible ways to create keys. The first is to create the keys with PuTTYgen on the client, upload the public key to your server and use the private key with PuTTY. The other is to create the key pair with the OpenSSH tool ssh-keygen, download the private key to your client and convert the private key to a PuTTY-style private key. 12411
1344 11170 Create Keys using ssh-keygen 12415
1345 11174 Login to the server as root or svnuser and type: \n
ssh-keygen -b 1024 -t dsa -N passphrase -f keyfile\n
substituting a real pass-phrase (which only you know) and key file. We just created a SSH2 DSA key with 1024 bit key-phrase. If you type \n
ls -l keyfile*\n
you will see two files, keyfile and keyfile.pub. As you might guess, the .pub file is the public key file, the other is the private one.
12419
1346 11178 Append the public key to those in the .ssh folder within the svnuser home directory: \n
cat keyfile.pub &gt;&gt; /home/svnuser/.ssh/authorized_keys\n
12428
1347 11182 In order to use the private key we generated, we have to convert it to a putty format. This is because the private key file format is not specified by a standards body. After you download the private key file to your client PC, start PuTTYgen and use ConversionsImport key. Browse to your file keyfile which you got from the server the passphrase you used when creating the key. Finally click on Save private key and save the file as keyfile.PPK. 12435
1348 11186 Create Keys using PuTTYgen 12439
1349 11190 Use PuTTYgen to generate a public-key/private-key pair and save it. Copy the public key to the server and append it to those in the .ssh folder within the svnuser home directory: \n
cat keyfile.pub &gt;&gt; /home/svnuser/.ssh/authorized_keys\n
12443
1350 11198 To test the connection we will use PuTTY. Start the program and on the Session tab set the hostname to the name or IP address of your server, the protocol to SSH and save the session as SvnConnection or whatever name you prefer. On the SSH tab set the preferred SSH protocol version to 2 and from Auth set the full path to the .PPK private key file you converted earlier. Go back to the Sessions tab and hit the Save button. You will now see SvnConnection in the list of saved sessions. 12454
1351 11202 Click on Open and you should see a telnet style login prompt. Use svnuser as the user name and if all is well you should connect directly without being prompted for a password. 12458
1352 11206 You may need to edit /etc/sshd_config on the server. Edit lines as follows and restart the SSH service afterwards. \n
PubkeyAuthentication yes\n
PasswordAuthentication no\n
PermitEmptyPasswords no\n
ChallengeResponseAuthentication no\n
12462
1353 11214 So far we have only tested that you can login using SSH. Now we need to make sure that the SSH connection can actually run svnserve. On the server modify /home/svnuser/.ssh/authorized_keys as follows to allow many subversion authors to use the same system account, svnuser. Note that every subversion author uses the same login but a different authentication key, thus you have to add one line for every author. 12476
1354 11218 Note: This is all on one very long line. \n
command=\"svnserve -t -r &lt;ReposRootPath&gt; --tunnel-user=&lt;author&gt;\",\n
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,\n
no-pty ssh-rsa &lt;PublicKey&gt; &lt;Comment&gt;\n
There are several values that you need to set according to your setup.
12480
1355 11222 &lt;ReposRootPath&gt; should be replaced with the path to the directory containing your repositories. This avoids the need to specify full server paths within URLs. Note that you must use forward slashes even on a Windows server, e.g. c:/svn/reposroot. In the examples below we assume that you have a repository folder within the repository root called repos. 12489
1356 11226 &lt;author&gt; should be replaced with the svn author that you want to be stored on commit. This also allows svnserve to use its own access rights within svnserve.conf. 12493
1357 11230 &lt;PublicKey&gt; should be replaced with the public key that you generated earlier. 12497
1358 11234 &lt;Comment&gt; can be any comment you like, but it is useful for mapping an svn author name to the person's real name. 12501
1359 11238 Right click on any folder in Windows Explorer and select TortoiseSVNRepo-Browser. You will be prompted to enter a URL, so enter one in this form: \n
svn+ssh://svnuser@SvnConnection/repos\n
What does this URL mean? The Schema name is svn+ssh which tells TortoiseSVN how to handle the requests to the server. After the double slash, you specify the user to connect to the server, in our case svnuser. After the @ we supply our PuTTY session name. This session name contains all details like where to find the private key and the server's IP or DNS. Lastly we have to provide the path to the repository, relative to the repository root on the server, as specified in the authorized_keys file.
12505
1360 11242 Click on OK and you should be able to browse the repository content. If so you now have a running SSH tunnel in conjunction with TortoiseSVN. 12512
1361 11246 Note that by default TortoiseSVN uses its own version of Plink to connect. This avoids a console window popping up for every authentication attempt, but it also means that there is nowhere for error messages to appear. If you receive the error Unable to write to standard output, you can try specifying Plink as the client in TortoiseSVN's network settings. This will allow you to see the real error message generated by Plink. 12516
1362 11254 One way to simplify the URL in TortoiseSVN is to set the user inside the PuTTY session. For this you have to load your already defined session SvnConnection in PuTTY and in the Connection tab set Auto login user to the user name, e.g. svnuser. Save your PuTTY session as before and try the following URL inside TortoiseSVN: \n
svn+ssh://SvnConnection/repos\n
This time we only provide the PuTTY session SvnConnection to the SSH client TortoiseSVN uses (TortoisePlink.exe). This client will check the session for all necessary details.
12524
1363 11258 At the time of writing PuTTY does not check all saved configurations, so if you have multiple configurations with the same server name, it will pick the first one which matches. Also, if you edit the default configuration and save it, the auto login user name is not saved. 12531
1364 11262 Many people like to use Pageant for storing all their keys. Because a PuTTY session is capable of storing a key, you don't always need Pageant. But imagine you want to store keys for several different servers; in that case you would have to edit the PuTTY session over and over again, depending on the server you are trying to connect with. In this situation Pageant makes perfect sense, because when PuTTY, Plink, TortoisePlink or any other PuTTY-based tool is trying to connect to an SSH server, it checks all private keys that Pageant holds to initiate the connection. 12535
1365 11266 For this task, simply run Pageant and add the private key. It should be the same private key you defined in the PuTTY session above. If you use Pageant for private key storage, you can delete the reference to the private key file in your saved PuTTY session. You can add more keys for other servers, or other users of course. 12539
1366 11270 If you don't want to repeat this procedure after every reboot of your client, you should place Pageant in the auto-start group of your Windows installation. You can append the keys with complete paths as command line arguments to Pageant.exe 12543
1367 11274 The last way to connect to an SSH server is simply by using this URL inside TortoiseSVN: \n
svn+ssh://svnuser@100.101.102.103/repos\n
svn+ssh://svnuser@mydomain.com/repos\n
As you can see, we don't use a saved PuTTY session but an IP address (or domain name) as the connection target. We also supply the user, but you might ask how the private key file will be found. Because TortoisePlink.exe is just a modified version of the standard Plink tool from the PuTTY suite, TortoiseSVN will also try all the keys stored in Pageant.
12547
1368 11278 If you use this last method, be sure you do not have a default username set in PuTTY. We have had reports of a bug in PuTTY causing connections to close in this case. To remove the default user, simply clear HKEY_CURRENT_USER\\Software\\SimonTatham\\Putty\\Sessions\\Default%20Settings\\HostName 12555
1369 11282 Language Packs and Spell Checkers 12559
1370 11286 The standard installer has support only for English, but you can download separate language packs and spell check dictionaries separately after installation. 12563
1371 11310 The documentation has also been translated into several different languages. You can download translated manuals from the support page on our website. 12589
Note: Line numbers are as in committed file, it may differ when you update to use newer .pot, also edited multi line messages may shift line position.

Total:1371

Fuzzy mark test

String marked as fuzzy is not in final shape.

Index Line English Line Native
1 - TortoiseSVN is a free open-source Windows 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. 91 TortoiseSVN é um aplicativo gratuito de código aberto para o sistema de controle de versão Subversion. Isto é, TortoiseSVN controla os arquivos e diretórios ao longo do tempo. Os arquivos são gravados em um repository central. O repositório é muito parecido com um arquivo qualquer do servidor, exceto que ele contém cada alteração feita em seus arquivos e diretórios. Isto lhe permite voltar antigas versões de seus arquivos e analisar o histórico de como e quando seus dados foram modificados, e quem fez a alteração. Esta é a razão de muitas pessoas pensarem que de um modo geral o Subversion e o controle de versão é uma time machine.
2 - 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 the functions of version control. 120 TortoiseSVN se integra sem intermediários com a interface do windows (ex. o explorer). Isto significa que você pode continuar trabalhando com as ferramentas que você já está familiarizado. E você não precisa abrir outra aplicação cada vez que precisa das funções do controle de versão!
3 - And you are not limited to using the Windows Explorer; TortoiseSVN's context menus work in many other file managers, and also 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 an 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. 125 E você não é forçado a usar o Windows Explorer. Os menus do TortoiseSVN funcionam com muitos outros gerenciadores de arquivos, e em janelas Arquivo/Abrir que são comuns em muitas das aplicações padrões do Windows. Você deverá, no entanto, ter em mente que TortoiseSVN é desenvolvido intensionamente como uma externsão do Windows Explorer. Assim é provavel que em outras aplicações a integração não seja completa e por exemplo a sobreposição dos ícones podem não funcionar.
4 - Graphical User Interface 138 '%s' travado pelo usuário '%s'.\n
5 - Although most people just download the installer, you also 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/. The current development line is located under /trunk/, and the released versions are located under /tags/. 219 TortoiseSVN é um projeto de Código Aberto. Isto significa que vocë tem total acesso para ver o código fonte do projeto. Você pode navegar entre os arquivo no endereço http://tortoisesvn.tigris.org/svn/tortoisesvn/. Ao acessar será pedido um usuário e uma senha. O usuário é guest, e a senha deve ser deixada em branco. A versão mais recente (onde nós estamos atualmente trabalhando) está em /trunk/, e as versões liberadas estão em /tags/.
6 - Both 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, working together to create great software. 228 Tanto TortoiseSVN como Subversion são desenvolvidos por pessoas que trabalhando nesses projetos. Elas são de diferentes países de todo o mundo e trabalham juntas para criar aplicativos poderosos.
7 - In 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. 237 Em 2002, Tim Kemp descobriu que Subversion era um bom sistema de controle de versão, mas pecava em relação à interface. A idéia para um aplicativo baseado no Subversion como uma extensão da interface do windows foi inspirada em um aplicativo similar para CVS chamado TortoiseCVS.
8 - Around that time, Stefan Küng 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, he joined the project and started programming. He soon rewrote most of the existing code and started adding commands and features, up to a point where nothing of the original code remained. 242 Tim estudou o código fonte do TortoiseCVS e usou isso como base para o TortoiseSVN. Ele então começou o projeto, registrou o domínio tortoisesvn.org and disponibilizou o código na internet. Neste período, Stefan Küng procurava por um bom sistema de controle de versão gratuito e encontrou o Subversion e o TortoiseSVN. Como TortoiseSVN não estava pronto para ser usado ele entrou no projeto e começou a desenvolver. Logo ele tinha reescrito boa parte do código existente e adicionando novos comandos e características, até que não restasse nada do código original.
9 - 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 Lübbe Onken offered to help out with some nice icons and a logo for TortoiseSVN. He now takes care of the website and manages the many translations. 247 Com a estabilidade do Subversion atraindo mais e mais usuários esses também começaram a usar o TortoiseSVN como aplicativo cliente do Subversion. Os usuários comuns aumentaram rapidamente (e continua aumentando a cada dia). Foi quando Lübbe Onken ofereceu ajuda com alguns bons ícones e uma logomarca para TortoiseSVN. E ele cuida também do Website e administra as traduções.
10 - for the hard work to get TortoiseSVN to what it is now, and his leadership of the project 268 pelo trabalho duro para deixar o TortoiseSVN o que é hoje
11 - for the patches, bug reports and new ideas, and for helping others by answering questions on our mailing list 317 pelas correções, reporte de problemas e novas idéias, e por ajudar aos outros respondendo perguntas na nossa lista de discussão.
12 - This book is written for computer-literate folk who want to use Subversion to manage their data, but prefer to use a GUI client rather than a command line client. TortoiseSVN is a windows shell extension and it is assumed that the user is familiar with the windows explorer and how to use it. 334 Este arquivo foi escrito para profissionais de informática que querem usar Subversion para controlar seus dados, mas acham pouco prático usar a linha de comando para isso. Já que TortoiseSVN é uma extensão da interface do windows assume-se que o usuário está familiarizado com o windows explorer e sabe como usá-lo.
13 - This explains what TortoiseSVN is, a little about the TortoiseSVN project and the community of people who work on it, and the licensing conditions for using it and distributing it. 339 Este explica um pouco sobre o projeto TortoiseSVN, as pessoas que trabalham nele, e as condições para usar e distribuir.
14 - Where extreme care has to be taken. Data corruption or other nasty things may occur if these warnings are ignored. 416 Onde deve-se ter um cuidado excessivo, dados podem ser corrompidos ou coisas desagradáveis podem acontecer se esses avisos forem ignorados.
15 - Support for Windows 98, Windows ME and Windows NT4 was dropped in version 1.2.0 and Windows 2000 support was dropped in 1.7.0. You can still download and install older versions if you need them. 442 TortoiseSVN pode ser executado com o Windows 2000 SP2, Windows XP ou mais atual. Windows 98, Windows ME e Windows NT4 não são mais suportados desde a versão 1.2.0 do TortoiseSVN, mas você ainda pode baixar essas versões antigas se você realmente precisar delas.
16 - TortoiseSVN 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. Don't forget to reboot after installation. 455 TortoiseSVN vem com um instalador simples. Dê um duplo clique no arquivo do instalador e siga as instruções. O instalador cuidará do resto.
17 - If you encounter any problems during or after installing TortoiseSVN please refer to our online FAQ at http://tortoisesvn.tigris.org/faq.html 468 Se você encontrar qualquer problema durante ou depois de instalar o TortoiseSVN por favor verifique primeiro .
18 - But what are the changes? Right click on one of the changed files and select TortoiseSVNDiff. TortoiseSVN's file compare tool starts, showing you exactly which lines have changed. 579 Você pode utilizar o comando Resolvido para múltiplos arquivos se clicar com o botão direito do mouse na pasta que contém os arquivos e selecionar TortoiseSVNResolvido... Isto fará aparecer uma caixa de diálogo de todos os arquivos em conflito naquela pasta e então poderá selecionar quais deverão ser assinalados como resolvido.
19 - Viewing the Project History 600 O estilo de projeto Tigris
20 - If you want to undo the effects of a particular revision, start with the Log dialog and find the offending revision. Select Context MenuRevert changes from this revision and those changes will be undone. 633 Se você quer fazer uma simples renomeação de arquivo ou diretório, use Menu de ContextoRenomear... e entre com o novo nome para o item e estará feito.
21 - TortoiseSVN does 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. 1205 Futuras versões do TortoiseSVN não suportarão acesso ao repositório BDB através do protocolo file:// devido aos problemas de compatibilidade, apesar de que sempre suportará claro este formato de repositório quando acessado por um servidor usando os protocolos svn://, http:// ou https://. Por esta razão, nós recomendamos fortemente que qualquer novo repositório do qual será acessado usando o protocolo file:// seja criado como FSFS.
22 - import this structure into the repository via a right click on the folder that contains this folder structure and selecting TortoiseSVNImport... In the import dialog enter the URL to your repository and click OK. This will import your temp folder into the repository root to create the basic repository layout. 1373 importe esta estrutura para dentro do repositório através de um clique com o botão direito sobre a pasta e selecionando TortoiseSVNImportar... Isto vai importar seu diretório temporário para dentro da pasta principal do repositório para criar o leiaute básico do repositório.
23 - To install svnserve as a native windows service, execute the following command all on one line to create a service which is automatically started when windows starts. \n
sc create svnserve binpath= \"c:\\svnserve\\svnserve.exe --service\n
--root c:\\repos\" displayname= \"Subversion\" depend= tcpip\n
start= auto\n
If any of the paths include spaces, you have to use (escaped) quotes around the path, like this: \n
sc create svnserve binpath= \"\n
\\\"C:\\Program Files\\Subversion\\bin\\svnserve.exe\\\"\n
--service --root c:\\repos\" displayname= \"Subversion\"\n
depend= tcpip start= auto\n
You can also add a description after creating the service. This will show up in the Windows Services Manager. \n
sc description svnserve \"Subversion server (svnserve)\"\n
1679 Para instalar o svnserve como um serviço nativo no windows, execute o seguinte comando em uma única linha para criar um serviço que será iniciado automaticamente quando o windows iniciar.\n
sc create svnserve binpath= \"c:\\svnserve\\svnserve.exe --service \n
--root c:\\repos\" displayname= \"Subversion\" depend= tcpip \n
start= auto\n
Se qualquer caminho incluir espaços, você precisa usar (com barra invertida) aspas, como segue: \n
sc create svnserve binpath= \"\n
\\\"C:\\Arquivos de Programas\\Subversion\\bin\\svnserve.exe\\\"\n
--service --root c:\\repos\" displayname= \"Subversion\" \n
depend= tcpip start= auto\n
Você pode também adicionar uma descrição depois de criar o serviço. Ela será mostrada no Gerenciador de Serviços do Windows.. \n
sc description svnserve \"Servidor Subversion (svnserve)\"\n
24 - Authentication With a Windows Domain 2244 Autenticação Básica com svnserve
25 - Immediate children, including folders 2949 Filhos diretos, incluindo pastas
26 - The Progress dialog showing a commit in progress 3266 Janela de progresso mostrando atualização terminada
27 - The progress dialog uses colour coding to highlight different commit actions 3314 A janela de progresso faz uso de código de cores para sublinhar diferentes ações de atualização
28 - A file conflict occurs when two or more developers have changed the same few lines of a file. As Subversion knows nothing of your project, it leaves resolving the conflicts to the developers. Whenever a conflict is reported, you should open the file in question, and search for lines starting with the string &lt;&lt;&lt;&lt;&lt;&lt;&lt;. The conflicting area is marked like this: \n
&lt;&lt;&lt;&lt;&lt;&lt;&lt; filename\n
your changes\n
=======\n
code merged from repository\n
&gt;&gt;&gt;&gt;&gt;&gt;&gt; revision\n
Also, for every conflicted file Subversion places three additional files in your directory:
3488 Um conflito de arquivo ocorre quando dois ou mais desenvolvedores tenham modificado as mesmas linhas de um arquivo. Como Subversion não conhece seu projeto, a solução de conflitos fica por conta dos desenvolvedores. Sempre que um conflito é reportado, você deverá abrir o arquivo em questão e procurar por linhas que iniciam com a sequência &lt;&lt;&lt;&lt;&lt;&lt;&lt;. A área de conflito é assinalada desta forma: \n
\t&lt;&lt;&lt;&lt;&lt;&lt;&lt; nome do arquivo\n
\t\tsuas modificações\n
\t=======\n
\t\tcódigo incluído desde o repositório\n
\t&gt;&gt;&gt;&gt;&gt;&gt;&gt; revisão\n
\t
Também, para cada arquivo em conflito, Subversion inclui três arquivos adicionais em seu diretório:
29 - In the commit dialog you can see those same files, grouped by changelist. Apart from giving an immediate visual indication of groupings, you can also use the group headings to select which files to commit. 4018 Na janela de submissão você pode ver os mesmos arquivos, agrupados por lista de alterações. Diferente de dar uma visualização indicativa imediata dos agrupamentos, você pode também usar os nomes de grupo que deseja submeter.
30 - Compare and blame with working BASE 4152 Comparar e ver &autoria com a BASE de trabalho
31 - Compare and blame with previous revision 4177 Comparar e ver autoria com a revisão anterior
32 - Merge Tracking Features 4550 .mesclagem-esquerda.r%ld
33 - merge tracking log 4555 Não foi possível abrir log
34 - Statistical Information 4669 Obtendo informações...
35 - Difference to another branch/tag 4820 Alternar a cópia de trabalho para outro ramo / rótulo
36 - Difference with blame information 4881 Comparar e ver &autoria com a BASE de trabalho
37 - Ignore line endings excludes changes which are due solely to difference in line-end style. 4910 Ignorar fim-de-linha oculta alterações feitas apenas na forma usada para indicar fim de linha.
38 - Ignore whitespace changes excludes changes which are due solely to a change in the amount or type of whitespace, eg. changing the indentation or changing tabs to spaces. Adding whitespace where there was none before, or removing a whitespace completely is still shown as a change. 4919 Ignorar alterações de espaço em branco esconde as alterações que são apenas de remoção ou inclusão de espaço em branco, ex: alterar a identação ou substituir tabulação por espaço. Adicionar espaços em branco onde não havia nada, ou remover completamente espaços em branco é também apresentado como uma alteração.
39 - Ignore all whitespaces excludes all whitespace-only changes. 4924 Ignorar todos os espaços em branco escode toda alteraçao de espaço em branco.
40 - The image difference viewer 4997 Visualizador das Diferenças do Arquivo
41 - External Diff/Merge Tools 5026 Opções Avançadas de Comparação/Combinação
42 - Beyond Compare 5075 &Comparar URLs
43 - Araxis Merge 5084 &Caminhos de combinação
44 - Explorer context menu for unversioned files 5126 Menu de contexto do Explorerer para arquivos controlados
45 - select the files you want to add 5147 selecione os arquivos ou diretórios que você quer mover
46 - svn:keywords 5676 svn:keywords
47 - Edit properties at HEAD revision 5757 &Tempo limite, em segundos, antes de atualizar a última revisão
48 - Automatic property setting 5802 Nome ruim de propriedade
49 - auto-props 5807 Ocultar &Automaticamente
50 - Conflicts on properties 5840 Propriedades não versionadas na revisão %ld:\n
51 - TortoiseSVN Project Properties 5849 por iniciar o projeto TortoiseSVN
52 - Merge a range of revisions 6365 Combinar um intervalo de &revisões
53 - This method covers the case when you have made one or more revisions to a branch (or to the trunk) and you want to port those changes across to a different branch. 6370 Esse método cobre o caso em que foi feita uma ou mais revisões em um ramo (ou ao tronco) e se deseja transportar essas mudanças para um ramo diferente.
54 - The Merge Wizard - Select Revision Range 6420 &Para: (revisão e URL finais do intervalo para combinar)
55 - The Merge Wizard - Reintegrate Merge 6481 Reintegrar combinação %s em %s
56 - The Merge Wizard - Tree Merge 6506 Selecionar as URLs para combinação em árvore
57 - Reviewing the Merge Results 6567 mostra um sumário dos resultados
58 - Handling Conflicts during Merge 6636 Conflito de mesclagem durante commit
59 - The Merge Conflict Callback Dialog 6645 Conflito de mesclagem durante commit
60 - Merge a Completed Branch 6674 A&grupar por ramo
61 - merge reintegrate 6679 Reintegrar Combinação
62 - The Merge reintegrate Dialog 6684 Reintegrar combinação %s em %s
63 - Feature Branch Maintenance 6693 A&grupar por ramo
64 - The Locking Dialog 6770 A Janela de Importação
65 - Checking Lock Status 6795 Estado desconhecido para comando de trava
66 - The Check for Modifications Dialog 6800 Verificar alterações na cópia de trabalho
67 - The Locking Hook Scripts 6833 Configurar Script para Eventos
68 - unified diff 6862 Comparação &unificada
69 - Creating a Patch File 6875 Lista de Arquivo de Correção
70 - The Create Patch dialog 6884 Caixa de diálogo do ecrã
71 - Applying a Patch File 6905 Lista de Arquivo de Correção
72 - Blame for Files 6962 Selecionar visualizador para arquivos de comparação
73 - The Annotate / Blame Dialog 6967 Caixa de diálogo do ecrã
74 - TortoiseBlame 6988 TortoiseBlame
75 - Compare and Blame with Working BASE 7057 Comparar e ver &autoria com a BASE de trabalho
76 - server-side actions 7079 Rotinas de eventos no servidor
77 - Delete or rename the file. 7112 Não é possível apagar o ficheiro INI '%s'
78 - View/Edit the file's properties. 7121 Exporta um conjunto de propriedades para um arquivo
79 - Create a new folder in the repository. 7142 Criar cópia no repositório a partir de:
80 - Delete or rename the folder. 7151 Ou no caso de um diretório movido ...
81 - Added or copied items 7248 Itens excluídos ou perdidos.
82 - Branch tip revision 7273 C&riar um ramo/rótulo a partir da revisão
83 - Working copy revision 7282 Revisão da Cópia de Trabalho Atual
84 - Modified working copy 7291 Cópia de trabalho '%s' travada
85 - Changing the View 7320 &Tela inteira
86 - Group branches 7325 &Iniciar Grupo
87 - Align trees on top 7346 Alinhar árvores pelo topo
88 - Reduce cross lines 7355 Reduzir cruzamento de &linhas
89 - Differential path names 7364 Distinguir &caminhos
90 - Show all revisions 7373 Mostrar tod&as as revisões
91 - Show HEAD revisions 7382 &Mostrar últimas revisões
92 - Exact copy sources 7391 Cópia e&xata das fontes
93 - Fold tags 7400 Dobrar &rótulos
94 - Hide deleted paths 7409 Ocultar caminhos &excluídos
95 - Hide unchanged branches 7418 Ocultar &ramos não utilizados
96 - Show WC revision 7427 Mostrar revisão da cópia de &trabalho
97 - Show WC modifications 7436 &Mostrar alterações na cópia de trabalho
98 - Tree stripes 7453 Conflito de árvore
99 - Show overview 7462 Mostrar a visão geral do gráfico todo
100 - Using the Graph 7475 Gráfico de Barras
101 - Pruning Trees 7524 duas árvores
102 - Exporting a Subversion Working Copy 7553 '%s' não é uma cópia de trabalho
103 - unversioned 'working copy' 7562 Cópia de trabalho '%s' travada
104 - The Export-from-URL Dialog 7571 &Da Cópia de Trabalho na URL:
105 - Exporting single files 7596 Ficheiros HTML (*.html;*.htm)|*.html;*.htm|
106 - Exporting a Change Tree 7609 Reduzir árvore &seguinte
107 - Relocating a working copy 7635 Cópia de trabalho '%s' travada
108 - URL changed 7644 Caminhos mudados:\n
109 - repository URL changed 7649 Repositório svn ilegal '%s'
110 - server moved 7654 servidor movido
111 - The Relocate Dialog 7663 A Janela de Importação
112 - Set the Properties on Folders 7854 Não foi possível setar permissão em '%s'
113 - Check for updates 7981 Verificar atualizações
114 - Subversion configuration file 8046 Arquivo de con&figuração do Subversion:
115 - TortoiseSVN Dialog Settings 1 8091 Abre a janela de configurações.
116 - Default number of log messages 8104 &Número padrão de mensagens de log
117 - Font for log messages 8113 &Fonte para mensagens de log:
118 - Short date / time format in log messages 8122 Formato curto de &data/hora no histórico
119 - Can double-click in log list to compare with previous revision 8131 Duplo-clique na lista de comentários para comparar com revisão anterior
120 - Auto-close 8140 Fechar Tudo
121 - Always close dialogs for local operations 8161 Sempre fechar as janelas para operações locais
122 - Use recycle bin when reverting 8170 Usar lixeira para fazer reversão
123 - Default checkout path 8187 Caminho '%s' não encontrado
124 - Default checkout URL 8196 Entrada padrão não possui URL
125 - TortoiseSVN Dialog Settings 2 8205 Abre a janela de configurações.
126 - Recurse into unversioned folders 8214 Usar recursividade nas pastas não versionadas
127 - Use auto-completion of file paths and keywords 8227 &Usar autocompletar para caminhos de arquivo e palavras-chave
128 - Timeout in seconds to stop the auto-completion parsing 8236 &Tempo limite, em segundos, para parar a interpretação do autocompletar
129 - Max. items to keep in the log message history 8253 Máximo de itens no histórico de mensagens de log
130 - Select items automatically 8274 Selecionar itens automaticamente
131 - Contact the repository on startup 8283 &Contatar o repositório ao iniciar
132 - Show Lock dialog before locking files 8292 Mostrar janela de Bloqueio antes de bloquear arquivos
133 - TortoiseSVN Colour Settings 8309 Páginas de Configuração de Cores
134 - Possible or real conflict / obstructed 8322 conflito / obstrução possível ou real
135 - Items added to the repository. 8339 Não foi possível abrir repositório '%s'
136 - Missing / deleted / replaced 8344 faltando / excluído / substituído
137 - Filter match 8401 Correspondência de filtro
138 - Revision Graph Settings 8410 Filtro do Gráfico de Revisões
139 - Classification Patterns 8419 Padrões de Classificação
140 - Unchanged Node 8484 Nó não alterado
141 - Current HEAD revision in the repository. 8497 caminho '%s' não existe na revisão HEAD
142 - Folded Tag Markers 8534 Copiar (Ramo / Rótulo)
143 - Selected Node Markers 8543 Tipo de Nó: diretório\n
144 - Stripes 8552 Faixas
145 - Icon Overlay Settings 8561 Sobreposição de Ícones::Controladores de Sobreposição
146 - SUBST drives 8684 Unidades &Fixas
147 - Icon Set Selection 8708 Sobreposição de Ícones::Conjunto de Ícones
148 - Enabled Overlay Handlers 8721 Habilitar Controladores de Sobreposição
149 - The Settings Dialog, Icon Handlers Page 8726 Exibir estatísticas para o cache de log selecionado
150 - Network Settings 8735 Configurações avançadas
151 - External Program Settings 8783 Erro chamando programa externo
152 - the conflicted file, the result of the merge operation 8879 A última combinação tentou adicionar o arquivo '%s'
153 - Diff/Merge Advanced Settings 8907 Opções Avançadas de Comparação/Combinação
154 - Unified Diff Viewer 8924 Programas Externos::Visualizador de Arquivo de Comparação Unificado
155 - Saved Data Settings 8937 Ajustar preferências\n
Preferências
156 - URL history 8952 Histórico de URLs
157 - Log messages (Input dialog) 8965 Mensagens de log (Janela de entrada)
158 - Log messages (Show log dialog) 8974 Mensagens de log (Mostra janela de log)
159 - Dialog sizes and positions 8983 Dimensões e posições das janelas
160 - Authentication data 8992 Dados de autenticação
161 - Action log 9005 Registro de ações
162 - Log Caching 9022 Cache de Log
163 - log cache 9027 Estatísticas de Cache de Log
164 - Enable log caching 9040 &Habilitar cache de log
165 - Allow ambiguous URLs 9053 Permitir URLs &ambíguas
166 - Allow ambiguous UUIDs 9062 Permitir &UUIDs ambíguos
167 - If the repository cannot be contacted 9071 Se o repositório não pode ser acessado
168 - Timeout before updating the HEAD revision 9084 &Tempo limite, em segundos, antes de atualizar a última revisão
169 - Days of inactivity until small caches get removed 9093 &Dias de inatividade até que pequenos caches sejam removidos
170 - Maximum size of removed inactive caches 9102 Tamanho &máximo [kByte] de um cache inativo removido
171 - Maximum number of tool failures before cache removal 9111 Número máximo de &falhas da ferramenta até a remoção do cache
172 - Cached Repositories 9120 Repositórios em Cache
173 - Log Cache Statistics 9141 Estatísticas de Cache de Log
174 - The Settings Dialog, Log Cache Statistics 9146 Exibir estatísticas para o cache de log selecionado
175 - The last time the cache content was changed. 9179 Última vez que o conteúdo do cache foi alterado
176 - Client Side Hook Scripts 9236 Rotinas de eventos no servidor
177 - Pre-connect 9324 Gancho Pré-Conexão
178 - Possible values are: 9381 Valores possíveis: 0 (totalmente transparente) .. 255 (opaco)
179 - Issue Tracker Integration 9426 &Bugtraq (Integração com Gerenciador de Casos)
180 - Even though TortoiseSVN and TortoiseMerge are free, you can support the developers by sending in patches and play an active role in the development. You can also help to cheer us up during the endless hours we spend in front of our computers. 9631 Mesmo TortoiseSVN e TortoiseMerge sendo gratuitos, você pode ajudar os desenvolvedores enviando correções e desempenhar um papel ativo no desenvolvimento. Você pode ajudar também ajudar nos divertindo nas infindáveis horas que gastamos na frente dos computadores.
181 - While working on TortoiseSVN we love to listen to music. And since we spend many hours on the project we need a lot of music. Therefore we have set up some wish-lists with our favourite music CDs and DVDs: http://tortoisesvn.tigris.org/donate.html Please also have a look at the list of people who contributed to the project by sending in patches or translations. 9636 Enquanto trabalhamos com o TortoiseSVN nós amamos escutar música. E já que nós gastamos muitas horas no projeto nós precisamos de muitas músicas. Por isso nós temos uma lista de desejos com nossas músicas favoritas de CDs e DVDs: http://tortoisesvn.tigris.org/donate.html Por favor veja a lista de pessoas que tem contribuido com o projeto enviando correções e traduções.
182 - The SubWCRev Program 9641 Programa interrompido.
183 - version extraction 9646 %s, versão %s\n
compilado %s, %s\n
\n
184 - version number in files 9663 Ficheiros de recurso devem ter a mesma versão!
185 - The SubWCRev Command Line 9672 linha de comando do cliente
186 - List of available command line switches 9697 Lista de opções disponíveis na linha de comando
187 - Switch 9705 Alternar
188 - Description 9714 Descrição
189 - Replaced with the comment of the lock. 9871 especifica comentário de trava ARG
190 - True if the item is versioned. 10013 Já existe um item versionado '%s'
191 - plugin 10190 Falha ao carregar 'plugin'
192 - Hook-script on the server 10562 Rotinas de eventos no servidor
193 - Project properties 10579 propriedades do projeto
194 - Use the revision log dialog 10624 Invocando a Janela de Histórico de Revisão
195 - Use the merge dialog 10654 usa ARG como comando merge
196 - Use svndumpfilter 10687 usa semântica estrita
197 - compare files 10704 Nível: arquivos\n
198 - compare folders 10709 Comparando Diretórios
199 - changes 10714 apagando mudanças
200 - common projects 10735 Índice dos projetos
201 - vendor projects 10740 Índice dos projetos
202 - Use a nested working copy 10765 '%s' não é uma cópia de trabalho
203 - Use a relative location 10782 Relativo ao esquema
204 - Create a shortcut to a repository 10810 Não foi possível abrir repositório '%s'
205 - shortcut 10815 Criar atalho
206 - remove versioning 10831 Controle de diretório
207 - detach from repository 10836 Obtendo informações do repositório...
208 - Unversion a working copy 10853 Cópia de trabalho '%s' travada
209 - Remove a working copy 10862 Cópia de trabalho '%s' travada
210 - group policies 10884 &Iniciar Grupo
211 - domain controller 10898 Domínio Windows
212 - Redirect the upgrade check 10919 Não foi possível verificar o diretório '%s'
213 - upgrade check 10924 submeter
214 - automation 11212 automatizando
215 - List of available commands and options 11270 Lista de atalhos do teclado e comandos.
216 - \n
svn diff PATH &gt; patch-file\n
12223 O caminho do arquivo de correção/diferença para aplicar para o diretório.
217 - Setting Up a Linux Server 12350 Configurando um Servidor Windows
218 - The TortoiseSVN user interface has been translated into many different languages, so you may be able to download a language pack to suit your needs. You can find the language packs on our translation status page. And if there is no language pack available, why not join the team and submit your own translation ;-) 12579 A interface do TortoiseSVN tem sido traduzido em muitos idiomas diferentes, então, você pode ter disponível um pacote para sanar sua necessidade. Você pode encontrar os pacotes de idioma em nossa página da situação das traduções. E se um idioma ainda não estiver disponível, porque não entra para o time e envie suas própria tradução ;-)
219 - Each language pack is packaged as a .msi installer. Just run the install program and follow the instructions. After the installation finishes, the translation will be available. 12584 Cada pacote de idioma é como um .exe instalador. Apenas execute o instalador e siga as instruções. Na próxima reinicialização, a tradução estará disponível.
220 - The installer automatically adds the US and UK English dictionaries. If you want other languages, the easiest option is simply to install one of TortoiseSVN's language packs. This will install the appropriate dictionary files as well as the TortoiseSVN local user interface. After the installation finishes, the dictionary will be available too. 12609 O instalador automaticamente adiciona os dicionários ingleses US e UK. Se você quer outros idiomas, a opção mais fácil é simplesmente instalar o pacote de idioma do TortoiseSVN. Isto instalará o dicionário apropriado conforme o idioma do TortoiseSVN local. Na próxima reinicialização, o dicionário também estará disponível.
221 - Glossary 12650 Glossário
222 - A Subversion command that is used to add a file or directory to your working copy. The new items are added to the repository when you commit. 12655 Um comando do Subversion que é usado para adicionar um arquivo ou diretório para a sua cópia de trabalho. Os novos itens são adicionados para o repositório quando você submetê-los.
223 - The current base revision of a file or folder in your working copy. This is the revision the file or folder was in, when the last checkout, update or commit was run. The BASE revision is normally not equal to the HEAD revision. 12664 A revisão base atual de um arquivo ou diretório na sua cópia de trabalho. Está é a revisão que o arquivo ou diretório está, quando a última obtenção, atualização ou submissão foi feita. A revisão BASE normalmente não é igual a ÚLTIMA revisão.
224 - This command is for text files only, and it annotates every line to show the repository revision in which it was last changed, and the author who made that change. Our GUI implementation is called TortoiseBlame and it also shows the commit date/time and the log message when you hover the mouse of the revision number. 12669 Este comando é apenas para arquivos texto, e ele apresenta para cada lista a revisão do repositório a qual pertence a última alteração, e o autor que fez a alteração. Nossa implementação de interface é chamada TortoiseBlame e também mostra a data/hora da submissão e a mensagem de log quando você passar o mouse sobre o número da revisão.
225 - Berkeley DB. A well tested database backend for repositories, that cannot be used on network shares. Default for pre 1.2 repositories. 12678 Berkeley DB. Uma base de dados bem testada para repositórios, que não pode ser usada em uma rede compartilhada. Padrão para repositórios anteriores a versão 1.2.
226 - A term frequently used in revision control systems to describe what happens when development forks at a particular point and follows 2 separate paths. You can create a branch off the main development line so as to develop a new feature without rendering the main line unstable. Or you can branch a stable release to which you make only bug fixes, while new developments take place on the unstable trunk. In Subversion a branch is implemented as a cheap copy. 12687 Um termo frequentemente usado em sistemas de controle de versão descreve o que acontece quando o desenvolvimento se ramifica num ponto em particular e segue dois caminhos diferentes. Você pode criar uma ramificação desligada da linha principal de desenvolvimento, logo, pode desenvolver novas funcionalidades sem desestabilizar a linha principal. Ou você pode criar uma ramificação da versão estável para a qual você apenas fará correções de erros, enquanto insere novas funcionalidades em uma versão instável no tronco. No Subversion uma ramificação é criada como uma cópia leve.
227 - A Subversion command which creates a local working copy in an empty directory by downloading versioned files from the repository. 12692 Um comando do Subversion que cria uma cópia local em uma diretório vazio baixando os arquivos controlados do repositório.
228 - To quote from the Subversion book: Recursively clean up the working copy, removing locks and resuming unfinished operations. If you ever get a working copy locked error, run this command to remove stale locks and get your working copy into a usable state again. Note that in this context lock refers to local filesystem locking, not repository locking. 12697 Uma citação do livro do Subversion: Limpar recursivamente a cópia de trabalho, removendo travas e encerrando operação não finalizadas. Se você sempre recebe o erro cópia de trabalho travada, execute este comando para remove travas obsoletas e voltar a sua cópia de trabalho para o estado normal novamente. Note que neste contexto, trava refere-se ao travamento do sistema de arquivos, e não ao bloqueio no repositório.
229 - This Subversion command is used to pass the changes in your local working copy back into the repository, creating a new repository revision. 12702 Este comando do Subversion é usado para passar as alterações da sua cópia de trabalho de volta para o repositório, criando uma nova revisão no repositório.
230 - When changes from the repository are merged with local changes, sometimes those changes occur on the same lines. In this case Subversion cannot automatically decide which version to use and the file is said to be in conflict. You have to edit the file manually and resolve the conflict before you can commit any further changes. 12711 Quando as alterações do repositório são combinadas com as alterações locais, algumas vezes estas alterações ocorrem nas mesmas linhas. Neste caso Subversion não pode decidir automaticamente qual versão usar e o arquivo é marcado como em conflito. Você precisa editar este arquivo manualmente e resolver o conflito antes que você possa submeter qualquer alteração adicional.
231 - In a Subversion repository you can create a copy of a single file or an entire tree. These are implemented as cheap copies which act a bit like a link to the original in that they take up almost no space. Making a copy preserves the history of the item in the copy, so you can trace changes made before the copy was made. 12720 Em um repositório do Subversion você pode criar uma cópia de de um arquivo apenas ou de uma estrutura inteira. Estas cópias são feitas como cópias leves que funcionam mais ou menos como um atalho para o arquivo original, e que consome quase nenhum espaço. Fazendo a cópia preserva-se o histórico do item em uma cópia, então você pode rastrear as alterações feitas antes da cópia ser feita.
232 - When you delete a versioned item (and commit the change) the item no longer exists in the repository after the committed revision. But of course it still exists in earlier repository revisions, so you can still access it. If necessary, you can copy a deleted item and resurrect it complete with history. 12725 Quando vocë excluir um item controlado (e submeter a alteração) este item não existirá mais no repositório depois da revisão submetida. Mas é claro que continuará a existir em revisões anteriores no repositório, logo você pode continuar acessando o arquivo. Se necessário, você pode copiar um item excluído e recuperar o mesmo completamente com o histórico.
233 - Shorthand for Show Differences. Very useful when you want to see exactly what changes have been made. 12730 Atalho para Mostrar Diferenças. Muito prático quando você quer ver exatamente as alterações que foram feitas.
234 - This command produces a copy of a versioned folder, just like a working copy, but without the local .svn folders. 12735 Este comando produz uma cópia de uma diretório controlado, assim como uma cópia de trabalho, mas sem os diretórios locais .svn.
235 - A proprietary Subversion filesystem backend for repositories. Can be used on network shares. Default for 1.2 and newer repositories. 12744 Um sistema de arquivo proprietário do Subversion para repositórios. Pode ser usado em uma rede compartilhada. O padrão para a versão do repositório 1.2 ou posterior.
236 - The latest revision of a file or folder in the repository. 12757 A última revisão do arquivo ou diretório no repositório.
237 - Subversion command to import an entire folder hierarchy into the repository in a single revision. 12762 Comando do Subversion para importar um diretório e sua subestrutura inteira para o repositório em uma única revisão.
238 - When you take out a lock on a versioned item, you mark it in the repository as non-committable, except from the working copy where the lock was taken out. 12767 Quando você bloqueia um item controlado, você marca o item no repositório como um arquivo não atualizável, exceto para a cópia de trabalho que bloqueiou o arquivo.
239 - Show the revision history of a file or folder. Also known as History. 12776 Mostra o histórico de revisão de um arquivo ou diretório. Também conhecido como Histórico.
240 - Show the revision history of a file or folder. Also known as Log. 12785 Mostra o histórico de revisões de um arquivo ou diretório. Também conhecido como Log.
241 - The process by which changes from the repository are added to your working copy without disrupting any changes you have already made locally. Sometimes these changes cannot be reconciled automatically and the working copy is said to be in conflict. 12790 O processo pelo qual as mudanças do repositório são adicionadas na sua cópia de trabalho sem perder qualquer alteração que você tenha feita localmente. Algumas vezes essas alterações não podem ser combinar automaticamente e a cópia de trabalho indicará que há conflito.
242 - Merging happens automatically when you update your working copy. You can also merge specific changes from another branch using TortoiseSVN's Merge command. 12795 Combinar acontece automaticamente quando você atualiza sua cópia de trabalho. Você pode também combinar mudanças específicas de outra ramificação usando o comando Combinar do TortoiseSVN.
243 - If a working copy has changes to text files only, it is possible to use Subversion's Diff command to generate a single file summary of those changes in Unified Diff format. A file of this type is often referred to as a Patch, and it can be emailed to someone else (or to a mailing list) and applied to another working copy. Someone without commit access can make changes and submit a patch file for an authorized committer to apply. Or if you are unsure about a change you can submit a patch for others to review. 12804 Se uma cópia de trabalho possui alterações apenas em arquivos texto, é possível usar o comando Diferenças do Subversion para gerar um arquivo simples de resumo dessas alterações no formato Unified Diff. Um arquivo deste tipo é oferecido como Correção, e ele pode ser enviado por e-mail para alguém (ou para uma lista de discussão) e ser aplicado em outra cópia de trabalho. Alguém sem acesso para submissão pode fazer alterações e enviar um arquivo de correção para alguém com permissão de escrita submeter as alterações. Ou se você não tem certeza sobre a alteração você pode enviar o arquivo de correção para outros revisarem.
244 - In addition to versioning your directories and files, Subversion allows you to add versioned metadata - referred to as properties to each of your versioned directories and files. Each property has a name and a value, rather like a registry key. Subversion has some special properties which it uses internally, such as svn:eol-style. TortoiseSVN has some too, such as tsvn:logminsize. You can add your own properties with any name and value you choose. 12813 Como complemento para versionamento de diretórios e arquivos, Subversion permite adicionar metadados controlados - referenciado como propriedades para cada diretório ou arquivo controlado. Cada propriedade tem um nome e um valor, assim como uma chave de registro. Subversion tem algumas propriedades especiais que são usadas internamente, tal como svn:eol-style. TortoiseSVN tem algumas também, tal como tsvn:logminsize. Você pode adicionar suas próprias propriedades com qualquer nome ou valor que você queira.
245 - If your repository moves, perhaps because you have moved it to a different directory on your server, or the server domain name has changed, you need to relocate your working copy so that its repository URLs point to the new location. 12818 Se seu repositório for movido, talvez porque você precisou movê-lo para um diretório diferente no servidor, ou porque o nome do domínio do servidor foi alterado, você precisa realocar sua cópia de trabalho para a nova URL onde o seu repositório está localizado.
246 - Note: you should only use this command if your working copy is referring to the same location in the same repository, but the repository itself has moved. In any other circumstance you probably need the Switch command instead. 12823 Nota: você deverá somente usar este comando se sua cópia de trabalho aponta para o mesmo local no mesmo repositório, mas o repositório foi movido. Em qualquer outra circustância você provavelmente deverá usar Alternar ao invés deste comando.
247 - A repository is a central place where data is stored and maintained. A repository can be a place where multiple databases or files are located for distribution over a network, or a repository can be a location that is directly accessible to the user without having to travel across a network. 12832 Um repositório é um lugar central onde os dados são guardados e mantidos. Um repositório pode ser um lugar onde várias bases de dados ou arquivos são localizados para distribuir pela rede, ou um repositório pode ser um local que é diretamente acessado pelos usuários sem ter que atravessar uma rede.
248 - When files in a working copy are left in a conflicted state following a merge, those conflicts must be sorted out by a human using an editor (or perhaps TortoiseMerge). This process is referred to as Resolving Conflicts. When this is complete you can mark the conflicted files as being resolved, which allows them to be committed. 12837 Quando os arquivos na cópia de trabalho são deixados em estado de conflito logo depois de serem unificados, estes conflitos devem ser resolvidos por um ser humano usando um editor (ou talvez o TortoiseMerge). Este processo é referenciado como Resolvendo Conflitos. Quando tudo foi resolvido você pode marcar os arquivos conflitantes como resolvidos, e então será permtido submeter estes arquivos.
249 - Subversion keeps a local pristine copy of each file as it was when you last updated your working copy. If you have made changes and decide you want to undo them, you can use the revert command to go back to the pristine copy. 12842 Subversion mantém uma cópia local original de cada arquivo de como ele era quando foi feita a última atualização da cópia de trabalho. Se você fez alterações e decidir que quer desfazê-las, você pode usar o comando reverter para voltar para a revisão original.
250 - Every time you commit a set of changes, you create one new revision in the repository. Each revision represents the state of the repository tree at a certain point in its history. If you want to go back in time you can examine the repository as it was at revision N. 12851 Cada vez que você submete um conjunto de alterações, você cria uma nova revisão no repositório. Cada revisão representa um estado da estrutura do repositório em um certo ponto de sua história. Se você quer voltar no tempo você pode examiar o repositório como ele era na revisão N.
251 - In another sense, a revision can refer to the set of changes that were made when that revision was created. 12856 De outro ponto de vista, uma revisão pode referenciar um conjunto de mudanças que foram feitas quando a revisão foi criada.
252 - Just as files can have properties, so can each revision in the repository. Some special revprops are added automatically when the revision is created, namely: svn:date svn:author svn:log which represent the commit date/time, the committer and the log message respectively. These properties can be edited, but they are not versioned, so any change is permanent and cannot be undone. 12865 Assim como os arquivo possuem propriedades, assim também é para cada revisão no repositório. Algumas revprops especiais são adicionadas automaticamente quando a revisão é criada, chamadas: svn:date svn:author svn:log que representam a data/hora, o autor e a mensagem de log da submissão respectivamente. Estas propriedades podem ser editadas, mas elas não são controladas, então qualquer alteração é permanente e não pode ser desfeita.
253 - A frequently-used abbreviation for Subversion. 12874 Uma abreviação frequentemente usada para Subversion.
254 - The name of the Subversion custom protocol used by the svnserve repository server. 12879 O nome do protocolo personalizado do Subversion usado pelo servidor de respotório svnserve.
255 - Just as Update-to-revision changes the time window of a working copy to look at a different point in history, so Switch changes the space window of a working copy so that it points to a different part of the repository. It is particularly useful when working on trunk and branches where only a few files differ. You can switch your working copy between the two and only the changed files will be transferred. 12884 Assim como Atualizar para a revisão altera a versão de uma cópia de trabalho apontando para um ponto diferente no histórico, assim também Alternar altera o espaço de uma cópia de trabalho que aponta para uma parte diferente do repositório. Isto é particularmente útil quando se está trabalhando no tronco e na ramificação e apenas poucos arquivos são diferentes. Você pode alternar sua cópia de trabalho entre os dois e somente os arquivos diferentes serão transferidos.
256 - This Subversion command pulls down the latest changes from the repository into your working copy, merging any changes made by others with local changes in the working copy. 12889 Este comando do Subversion baixa as últimas alterações do repositório para a sua cópia de trabalho, combinando qualquer alteração feita por outros usuários com suas alterações locais na cópia de trabalho.
257 - This is your local sandbox, the area where you work on the versioned files, and it normally resides on your local hard disk. You create a working copy by doing a Checkout from a repository, and you feed your changes back into the repository using Commit. 12894 Está a sua estrutura local isolada, e é onde você vai trabalhar sobre os arquivos controlados, e isto normalmente ficará em seu disco local. Você cria uma cópia de trabalho executando um Obter de um repositório, e você envia suas alterações de volta para o repositório executando um Submeter.
Note: Line numbers are as in committed file, it may differ when you update to use newer .pot, also edited multi line messages may shift line position.

Total:257

Escaped chars test

This test check if all escaped chars are known and its using match with English. Even you get red here it may be legal for your language.
This test is in developing now. Ignored are: \r \n (wee new line style test) and \".

Index Line English Line Native
1 A file conflict occurs when two or more developers have changed the same few lines of a file. As Subversion knows nothing of your project, it leaves resolving the conflicts to the developers. Whenever a conflict is reported, you should open the file in question, and search for lines starting with the string <literal>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</literal>. The conflicting area is marked like this: <screen>\n
&lt;&lt;&lt;&lt;&lt;&lt;&lt; filename\n
your changes\n
=======\n
code merged from repository\n
&gt;&gt;&gt;&gt;&gt;&gt;&gt; revision\n
</screen> Also, for every conflicted file Subversion places three additional files in your directory: <placeholder-1/>
3008 Um conflito de arquivo ocorre quando dois ou mais desenvolvedores tenham modificado as mesmas linhas de um arquivo. Como Subversion não conhece seu projeto, a solução de conflitos fica por conta dos desenvolvedores. Sempre que um conflito é reportado, você deverá abrir o arquivo em questão e procurar por linhas que iniciam com a sequência <literal>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</literal>. A área de conflito é assinalada desta forma: <screen>\n
\t&lt;&lt;&lt;&lt;&lt;&lt;&lt; nome do arquivo\n
\t\tsuas modificações\n
\t=======\n
\t\tcódigo incluído desde o repositório\n
\t&gt;&gt;&gt;&gt;&gt;&gt;&gt; revisão\n
\t</screen> Também, para cada arquivo em conflito, Subversion inclui três arquivos adicionais em seu diretório: <placeholder-1/>
Note: Line numbers are as in committed file, it may differ when you update to use newer .pot, also edited multi line messages may shift line position.

Total:1

PASS

RC Checks

Next few sections informs about duplicate accelerators in translation. There is no reason to be stressed about this, but some translators like to know it. In a fact even English translation contains duplicate.

Proc RC Check (pt_BR)

RC checking is currently off for this language. If you like enable it for your translation drop me an email.


Icons by: DryIcons