If you have TortoiseSVN installed, you can simply press the F1 key in any dialog to start up the help. That help is the same as the documentation you find here.
| Language | TortoiseSVN | TortoiseMerge | ||
|---|---|---|---|---|
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | ||||
| HTML | ||||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
These manuals are only for the trunk build, not released versions. Please note that these docs aren't updated nightly but very irregularly.
| Language | TortoiseSVN | TortoiseMerge | ||
|---|---|---|---|---|
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | ||||
| HTML | ||||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
| HTML | HTML | |||
Older releases are available from the Sourceforge files section.
Have a look at our project status page to see what we are working on at the moment, and to check the release history.
Read the official Subversion book Version Control with Subversion to find out what it's all about. This book explains the general concepts of Subversion. It's no must, but it'll give you deep insight. There's also a free online version available.
A list of common problems and their solutions can be found in the FAQ. Please note that the FAQ contains answers, but is not the place to ask questions. For that you need to go to the users mailing list. When we have a good answer to a good question we post it in the FAQ.
If your question is not answered in any of these places, you can subscribe to one of our two mailing lists:
You can subscribe to our mailing lists here.
If you want to search the lists, our mailing lists are archived on gmane.org and haxx.se. You can either access the archives via http: or nntp: protocol. Haxx.se is recommended for searches.
The latest updates on our project web page are always visible in a RSS feed.
You can find the FAQ here.
You might also want to read our Manual to get up and running before searching the FAQ.
If your question is not answered by this FAQ, you can ask it on the TortoiseSVN Mailing List.
-The TortoiseSVN team
There is a large number of TortoiseSVN users. There is a much small number of people who actually develop TortoiseSVN. There is an even smaller number of people who actively fix bugs reported by users.
What does this mean for you, an aspiring bug reporter? In order to catch the eye of one of these few volunteers, you'll need to take to heart a few tips on how to report a bug so that they can and will help you.
Take special note of that word in bold above. The people who are going to help you with a bug you report are volunteers. Not only are you not paying them to help you, but nobody else is either. So, be nice to them.
Beyond that golden rule, what follows are some additional tips on ways to make your bug report better so that someone will be able to help you.
Those are the three basic elements of a bug report. You need to tell us exactly what you did (for example, "I right-clicked on "make happy meal"), what you expected to have happened (to continue the example, "I expected TortoiseSVN to serve me a happy meal with a hamburger and onion rings"), and what actually happened ("It gave me a happy meal with french fries.").
Yes, the example is silly. But if your bug report simply said "The make_happy_meal function doesn't work," you will very likely get a reply saying "It works fine for me", because we can't guess what you were expecting to happen. By giving all the information you might get a reply like "That's because you can't have onion rings in a happy meal, you can only have french fries or curly fries." By telling us what you asked for, what you expected to get, and what you actually got, we don't have to guess what you mean.
Bug reports must be mailed to our mailing list (users at tortoisesvn tigris org). To subscribe to the mailing list, send a mail to users-subscribe@tortoisesvn.tigris.org. To unsubscribe again later, send a mail to users-unsubscribe@tortoisesvn.tigris.org. You don't have to subscribe to the mailing list if you don't want to. You can read the mailing list from tigris or Google groups too.
Just make sure that if you're not subscribed to the mailing list that you read the answers on either the Google groups or tigris. If we have further questions and you don't read those, that will only annoy us and your issue will never get resolved.
Note: if you're not subscribed to the list, it may take up to a day until your mail appears on the mailing list. This is because we have to review mails from non-subscribers first and have to 'accept' them - we have to do this to prevent SPAM from going to the list. So don't worry if you're not getting an answer right away, your mail will appear on the list, just give us some time.
Now you're almost ready to send your bugreport. But before you do, please read our mailing list etiquette. Then send your mail to: users at tortoisesvn tigris org
This chapter covers general installation & upgrade issues, like missing icon overlays, installer problems and the like.
You will also find some information on how to set up SSL encrypted communication with your server as well as using SSH and client certificate authentication.
If you need help about the msi installer in general, please refer to the according documentation from Microsoft.
No. You can just install the new version over the old one. The installer will take care of uninstalling the old version first automatically. But you must reboot your computer after the installer finishes! Or at least you have to log off and log on again. If you don't, TortoiseSVN will crash!
After upgrading to TSVN 1.2 you may get error messages like this when using file:// access to a BDB repository:
Unable to open an ra_local session to URL
Unable to open repository 'file:///C:/Svnrepos/TortoiseSVN/trunk'
Berkeley DB error for filesystem C:/Svnrepos/db while opening environment:
DB_VERSION_MISMATCH:
Database environment version mismatch
bdb: Program version 4.3 doesn't match environment version
Subversion 1.2 uses BDB 4.3 so you need to do some minor updates to your BDB repositories to use them from 1.2.
Instructions for fixing this can be found in the Subversion FAQ.
When you try to install TortoiseSVN 1.3.0 or higher and you don't have Administrator privileges, you will get an error.
Unfortunately, you must have Admin privileges to install those versions of TortoiseSVN. The reason is that those versions are linked against the latest MFC and CRT versions (8.0) which are installed as side-by-side assemblies and require Admin privileges for that.
You can "work around" this if you install just MFC and CRT as an Administrator. If those are already installed on your system, TortoiseSVN can be installed as a normal user.
No. TortoiseSVN comes with everything you need to access a repository. Only if you want to set up a server then you will need the Subversion package.
Simply uninstall from Add/Remove Programs in the Windows control panel. This does not effect your repositories or working copies at all. Be aware however, that the subversion database schema might change before subversion 1.0 is released.
When you are working with local repositories (file:/// URLs), a newer version of TortoiseSVN might be incompatible to an old repository. Please check the subversion release notes.
TortoiseSVN is a Windows explorer shell extension. So after updating you must restart windows or at least the explorer process. If you don't then the the explorer process still has the old version of the dll loaded in RAM and uses that old version...
If that doesn't help, uninstall TortoiseSVN again. Then run our little CleanInstall tool you can download from here. Then you can install TortoiseSVN again.
There are several possible reasons for this:
You can install TortoiseSVN for just one user. But you need at least the privileges to write to the HKLM registry keys. If you don't have those permissions, then you can't install it.
Of course, you can only do this if you already have the MFC and CRT libraries version 8 installed on your system. To install these, you require Admin privileges.
You can get those libraries from the Microsoft website if you really require that TortoiseSVN is only installed for one user.
If you simply want to hide the context menu's in the explorer for certain users, you can use a feature new for version 1.5.x:
Allow disabling of explorer context menu entries.
Version 1.1.7 of TortoiseSVN has been released a while ago. It is the last version that supports Windows 95/98/NT. Beginning with TortoiseSVN 1.2.0 only Windows 2000, Windows XP and later will be supported
Download:
Win95, Win98, WinNT, NT4
An exe installation file wouldn't help. If msi installation is really disabled on your machine, then you don't have ADMIN priviledges either. And you would need those to install TSVN (shell extensions require ADMIN rights to install).
But first make sure that msi installation is really disabled - that can only be if your domain administrator disabled it. Otherwise, check our FAQ for problems with installation.
Maybe you just need to install the msi package from Microsoft first:
Windows Installer 3.1 redistributable
And for all those who like to suggest to use something else than an msi (we even had people demanding we use a simple bat file for the installation) let me explain once and for all why we use an msi:
That said, please accept that we won't change this. We won't create another installer for you. You have to live with the fact that TortoiseSVN requires msi.
msiexec /package TortoiseSVN.msi /quiet INSTALLDIR="path/to/install/dir"
Several error messages are combined in this FAQ. If you find another one, and a solution for it, please let us know.
Note: as of TSVN 1.2.0, Windows 95/98/ME and Windows NT4.0 are no longer supported.
To solve this problem, clear the temp folder, move the installer msi file to your local harddrive where the user SYSTEM has full access rights.
The following knowledge base articles may help:
There are a number of known problems with disappearing menus, which are due to the Windows Explorer, not TSVN.
You can also get problems with invisible TortoiseSVN menus in other applications. Check our FAQ article on Blank TortoiseSVN Menus for further details.
There's a link on our download page describing exactly that: CompatibilityCheck
Subversion has a description for that too. See the "compatibility" section in the Hacking file.
There are some registry settings for TortoiseSVN which aren't available through the settings dialog. These registry settings
usually are for debugging purposes or very special occasions. You can set those with the registry editor regedt32.
Set this value to 2 if you don't want TortoiseSVN to use icons in the context menu at all. With this value set to 2 the context menu is text only.
Please don't mess with those and any other registry setting if you don't know exactly what you're doing!
You have two options:
When opening the TortoiseSVN .msi file, you might see an error window appearing with the text:
"This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service."
TortoiseSVN now uses MFC/CRT version 8, which requires at least version 3.0 of MSI.
If you cannot or do not wish to install a Windows service pack, you can get the Windows Installer as a separate package.
More information:
http://support.microsoft.com/kb/893803/
Download:
http://www.microsoft.com/downloads/details.aspx?...
There are many conversion tools which help you to convert from other VCS to SubVersion. Converters for CVS, SourceSafe, Perforce and VCP are listed in the section Repository converters on the Subversion Links Page.
This way you have a working copy, which makes the next steps easier.
svn propset svn:ignore -F .cvsignore . . See the attached script which does just that :-)@echo off echo This program imports all .cvsignore contents into the svn:ignore property. echo. echo Current directory: "%cd%" echo. pause echo. echo Searching ... call :CheckCVS "%cd%" for /D /R %%i in (*) do call :CheckCVS "%%i" echo Done :: Ende goto :eof :CheckCVS set _cvs=%~1\.cvsignore echo Path "%~1" if exist "%_cvs%" ( echo setting "%_cvs%" svn propset svn:ignore -F "%_cvs%" "%~1" ) set _cvs= goto :eof
This converts the CVS ignore list to the correct subversion ignore properties.
TortoiseSVN uses up to seven overlay slots for the status:
svn:needs-lock property on a file, Subversion makes that file ReadOnly until you get a lock on that file. Read-only files have this overlay to indicate that you have to get a lock first before you can edit that file.Unlike TortoiseCVS (the CVS shell integration) no overlay icon for unversioned files is shown. We do this because the number of icon overlays are limited system wide and should be used economically.
In some situations the overlay icons may not appear. This can happen on older Windows version (before Win2K) or if other applications install overlay handlers as well, since overlay icons are a limited ressource in Windows.
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 you are also using TortoiseCVS, then there are not enough overlay slots available, so TortoiseSVN tries to be a "Good Citizen (TM)"? and limits its use of overlays to give other apps a chance.
If you like to see all of the TortoiseSVN icons, you have to manually remove one of the other icon overlay handlers. This can be done by editing the registry. Use at your own risk!
You can to delete one of TortoiseCVSes entries at: HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellIconOverlayIdentifiers
Go to the Settings -> Look and Feel -> Icon Overlays and check the drive types for which you want to see overlay icons. Be aware that enabling overlays for network drives will slow down not only TortoiseSVN but the whole system.
After upgrading the client from Subversion/TortoiseSVN 1.3.x to 1.4.x some unversioned files display green checkmarks instead of no overlay icon at all.
It looks like something is left behind during the upgrade which confuses the TortoiseSVN status cache.
The standard procedure to resolve this problem is to close all explorer windows that display the working copy in question and to kill the TSVNCache process. When the explorer window is opened again, the TortoiseSVN status cache wil rebuild its internal data structures.
If your working copy is on a SUBST drive the icons might be mixed up.
The problem arises because the cache tries to fetch the status for two "different" locations at the same time, but those locations are actually the same so there are two status fetchings for the same working copy at the same time.
There is an easy way to solve this:
just exclude the original path from showing overlays (settings->icon overlays->exclude paths).
For example, if you have mapped \\station\folder\wc to g:
then put "\\station\folder\wc*" as the exclude pattern.
(Solution first found by Stefan)
NOTE: This FAQ entry applies to TSVN 1.1.7 and earlier. From V1.2.0 these older operating systems are no longer supported.
If you are using Windows 95 the icon overlays won't appear. You can try the instructions for Windows NT4 below if you like, but it may still not work. Please note: We don't support Windows 95 at all - so there may be other issues if you're using that OS
If you are using Windows NT4, you need to install the IE4 shell or desktop extensions to get a more recent version of Explorer. To do this install IE4, and choose Yes to install the active desktop. Don't worry, you can turn off the actual active desktop later by right clicking on it. It's the new version of Explorer that we are after.
If you've already installed IE5, you must either:
ie5setup.exe file. If the browser appears unstable afterwards just run the IE5 repair function.ie5setup.exe /c:"ie5wzd /e:IE4Shell WIN /I:Y"ie5setup.exe /c:"ie5wzd /e:IE4Shell NTx86 /I:Y"
For IE6: Run IE6 setup with command line switches to install the IE4 desktop (shell) extensions. The same caveats apply as for IE5. The command must be run from the folder that contains the ie6setup.exe file.
For WinNT: ie6setup.exe /c:"ie6wzd /e:IE4Shell NTx86 /I:Y"
The shortcut labelled Win NT Explorer on your start menu probably points to C:\\WINNT\\explorer.scf and doesn't get the overlays. Create a new shortcut to %windir%\\Explorer.exe /n, /e and it may get the overlays.
If you're using an IntelliPoint mouse driver, and launching Explorer via a mouse click, you need to upgrade from version 3 to version 3.2 or higher of IntelliPoint. Strangely, launching Explorer from the Start menu gives icons in this case, but not when launched from the mouse.
If you're working with big projects, you might encounter some performance problems when using TortoiseSVN. Here are some tips to optimize the settings:
Problem:
If several users are connected to a Windows 2003 Terminal Server, some of them do not see the overlay icons.
Solution:
As long as the users have certain rights on the server (i.e. the right to establish local pipe connections to apps running in another user context) it will work. If the users don't have those rights, then only the first user will see the overlays, all others won't. That's because there's only one single instance of the TSVNCache process which all users access - if they don't have the right to access it then they don't have the overlays.
Or:
Open ToroiseSVN settings, navigate to "Look and Feel -> Icon Overlays", and under "Status Cache" select "Shell".
Sometimes you find that the overlays don't reflect the real status of files and/or folders. Usually, hitting the F5 key is enough to make the overlays appear correctly (you might have to wait a few seconds until the cache has fetched the status again).
The treeview on the left side of the explorer is a whole other story. It won't update the overlays, no matter how many times you hit the F5 key. That's a problem with the explorer and outside of TortoiseSVN's reach.
A short explanation:
The treeview always shows the whole explorer tree, including network drives and other namespace extensions. Since these can be very slow (e.g. slow network drives), the explorer tree doesn't ask the overlay extensions for updated overlays all the time. Even if you tell the explorer that a folder has changed and it should update the overlays accordingly, it doesn't do so. It first checks itself if the folder really has changed and only updates the overlays if it thinks the folder really has changed.
Now, since the Subversion status of a folder has nothing to do with the folder itself, the folder itself never really changes (only some file inside the .svn folder, but not the folder itself), explorer therefore doesn't update the overlays.
There are some tricks and workarounds to make the explorer refresh the overlays even on the left treeview, but those are tricks and workarounds, which obviously don't work all the time.
There's one trick that usually works, but it is slow and TortoiseSVN can't use that trick on-the-fly - it just would slow down the system too much. But you can trigger that trick manually by executing the 'cleanup' command on the root of your working copy. After the cleanup command has finished, you have to wait a few seconds for the treeview to update the overlay icons.
The Windows icon cache is a fairly buggy creature. You can solve this in one of the following ways:
HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer and add a new String Value called Max Cached Icons. The default value is 500 - try increasing it to 2048 (see Q132668 in the Microsoft knowledge base for more details). TortoiseProc.exe /command:rebuildiconcacheThere are only 15 slots for icon overlays available on Windows. And some of them are already used by Windows itself, for example shortcuts have an overlay (small black arrow), shared folders (hand), offline files and one or two more. On Vista, there's at least one more used to indicate programs which require elevated privileges (small shield).
That means for other programs, there are around 10 overlay slots available, which must be shared among all other applications/shell extensions which use overlays.
We don't want to waste a slot for the least important information. If you want to distinguish unversioned and ignored files in the explorer, switch to the explorer's detailed view and activate the column SVN Status. Then you will see the difference.
See also: The overlay icons appear, but not all of them!
Authentication covers the mechanisms that Subversion and TortoiseSVN use to identify users. Using your windows user name or domain server for authentication is possible although not all combinations work.
For general information, visit the TortoiseSVN docs and the Subversion book.
If all the commits from different people to the repository have the same username 'anonymous', you have to set up authentication on your subversion server. See our docs: Chapter Setting Up A Server
If you have set up the server to authenticate against a windows domain, then yes. But you still have to enter username/password yourself.
See our docs on how to set up such a server:
Authentication With A Windows Domain
There's no way to recover your password if you forgot it, if you are using basic authentication.
Change the password on the server/repository. If you don't have access to the server, you have to ask the administrator to do it for you.
There are at least two ways to make a Subversion server running on Linux perform authentication through a Windows domain. Either use PAM (Pluggable Authentication Modules) or one of the various authentication modules for Apache. PAM authentication also works for Apache, and is thus a more general solution.
If you wish to use the Apache-only solution, you will need to find an appropriate authentication module. This could for example be:
mod_auth_kerb for authenticating against Windows 2000, XP and 2003 domainsmod_auth_nt_lm for authenticating against Windows NT4 domainsmod_auth_samba or mod_auth_smb for authenticating using older versions of SambaNote that of the above, only mod_auth_kerb seems to be actively maintained.
Unless you feel that it is too complicated to setup, or that the particular authentication module you are looking for only exists for Apache, you will probably want to use PAM.
In order to use the PAM solution, you will first need to:
winbind/etc/pam.d to allow winbind authentication for the services you wish to useWhen you have set up the above appropriately, tunneled svnserve connections (svn+ssh://, svn+rsh:// and similar) should work out-of-the-box, since the ssh daemon and similar tools already per default uses PAM to authenticate users.
To get Apache to work with PAM, make sure that mod_auth_pam is installed and then configure Apache as appropriate.
And of course: This is actually a server question which has little to do with the TortoiseSVN client, and thus further information should be sought on the Subversion FAQ or the Subversion mailing list.
If you wish to make a Subversion server running on Windows perform authentication through your Windows domain, the most widely used option is to use Apache and the mod_auth_sspi which is now hosted and maintained on SourceForge. Configuration using this module is covered extensively in the TortoiseSVN documentation.
If you wish to use the svnserve-based solution, you're on your own. It should be possible, provided that you can find a Windows SSH server that will:
More information about setting up a SSH server for Subversion can be found in the Subversion book.
If you find yourself successful in setting up a svn+ssh server on Windows that authenticate through your Windows domain, feel free to brag about it on our mailing list.
This section deals with daily use issues
Everytime I right click on a file, the CPU goes to 100% (whilst the right click menu is displayed.) If I select something from the menu, CPU goes back to normal. If I right click on 'nothing' then the CPU is OK. What is happening?
XP contains a known bug that causes the CPU usage to spike to 100 percent when you access the context menu under certain configurations. This bug causes file-copy operations to halt, network connections to slow, and streaming media (e.g., audio, video) to become distorted. To work around this bug, you need to disable the GUI's transition effects by performing the following steps:
Another solution that often works is to left-click the file or folder before right-clicking to display the context menu.
If you have resolved the conflict by using all parts from theirs, then you don't have to commit anything because your file now looks exactly the same as the one in the repository. That's why it has the green overlay.
Do not create a Berkeley DB repository on a network share!
It cannot exist on a remote filesystem such as NFS, AFS, or Windows SMB. Berkeley DB requires that the underlying filesystem implement strict POSIX locking semantics, and more importantly, the ability to map files directly into process memory. Almost no network filesystems provide these features. If you attempt to use Berkeley DB on a network share, the results are unpredictable. You may see mysterious errors right away, or it may be months before you discover that your repository database is subtly corrupted.
If you need multiple computers to access the repository, you can create an FSFS repository on the network share, not a Berkeley DB repository. In practice this is not recommended for three very good reasons:
A better solution by far is to set up a real server process (such as Apache or svnserve), store the repository on a local filesystem which the server can access, and make the repository server available over a network. It is easier than you might think. Chapter 6, Server Configuration in the Subversion Book covers this process in detail.
To access an FSFS repository on a network share you need to do one of the following:
Sorry, No.
With TortoiseSVN and the command line Client: No.
With a web browser: Yes
A lot of people would agree that the TSVN repository browser would be a much more useful tool if you could just point it at your versioning server and it would show you whatever available repositories it had.
Same story, albeit to a lesser degree, with the command-line 'svn' client. Doing a 'svn ls' or equivalent and being able to see what repositories and projects are hosted on a specific versioning system would be very useful.
Unfortunately, this is a limitation in the Subversion libraries that both the command-line client and TortoiseSVN uses. It does not have the capability to arbitrarily enumerate repositories on a server.
Some might even argue that the lack of this feature is incitament for end users to just jumble everything into one big repository, when it would be more appropriate to split things up.
In any case, you should take this request to the main Subversion mailing list, as it does not fall under TSVN.
Send any requests regarding this (and only this!) to dev@subversion.tigris.org. Remember to ask to be CC'd if you expect replies to your request.
Yes, you can change from one client to another whenever you want. The clients just control your working copy and the interaction between your working copy and the repository. The metadata inside the working copies used by the different clients is identical.
As of Subversion 1.4, the metadata format inside the working copy has changed. This means for you that once you accessed your working copy with a Subversion client based on Subversion 1.4 and higher, you can not use it again with an older client. You will get an error message telling you that the client is too old.
Yes, you can. This is a standard feature of Subversion. Each directory which was checked out of Subversion remembers where it came from. You can even multiply select working copies which came from different places, and update or commit them all at once.
If you want to have different subdirectories to come from different repositories you can set a special Subversion property called svn:externals.
Please look at the chapter External Definitions in the Subversion Book.
Check the subversion book about the svn:eol-style property here.
If you set that property to e.g. 'native', then the file will have LF line-endings on Linux, but CRLF line-endings on Windows.
To see how you can set those properties with TortoiseSVN, read our docs here.
Since there are so many entries in the Daily Use Guide that deal with "How Do I" style of questions, all these are now summed up in this section.
Read about the Subversion property svn:keywords in the Subversion book.
With TortoiseSVN, set the properties as described here.
Subversion is designed to work with case-sensitive file systems such as are used on Linux. When it comes to the Windows case-insensitive file system, things do not always run as you might expect. A case in point is renaming a file where only the case changes, eg. renaming Makefile to MAKEFILE. You cannot do this easily within your working copy as Subversion requires both names to exist simultaneously for a short time, and Windows cannot support this.
By far the easiest way is to rename directly using the repository browser:
Yes. Call up the log dialog and do a Right-Click on the revision you want to edit. Then select "change author" or "change log message" from the context menu.
To make the server accept these changes, a pre-revprop-change hook, that allows to change author or message, has to be installed for the repository. The default installation rejects changes to author and log message.
Sometimes you want to checkout a working copy from a large project, but you are only interested in a few of the sub-folders. This method requires SVN/TSVN 1.4.0 or later.
This method uses a tiny local repository to define external references which pull in the sub-folders you are interested in.
The external references will pull in the folders you want, and you can commit atomically from the top level folder. Note that svn:externals does not support file references, so you can only reference whole folders.
When Subversion 1.5.0 is released, support for partial checkout and update will be greatly improved.
As of Version 1.4.0 and higher, you can clear all the stored data from the settings dialog of TortoiseSVN. Just click on the corresponding button.

For older Versions of TortoiseSVN, you have to delete the registry keys manually:
Delete the registry keys:
Aehemm: select the folder and hit 'delete' (the key on your keyboard may be labelled only 'del').
Seriously, there are no hidden files or settings. The repository is completely contained in one folder tree.
The same applies to working copies. If you send a working copy to the recycle bin it can seriously slow down future deletes because of the large number of small files. You may want to empty the recycle bin soon after.
The best way to define ignore files and keywords for all users of a repository is to add them to the folder properties. However, unless you know which folder level will be checked out, you have to set these properties recursively throughout your repository hierarchy, and remember to add them to new folders. Proper inherited properties is a future design goal for Subversion, but is not available yet.
However, you can define global settings for all subversion clients and all users on one PC. Read the section Configuration and the Windows Registry in the Subversion Book.
Registry-based configuration options are parsed before their file-based counterparts, so are overridden by values found in the configuration files. In other words, configuration priority is granted in the following order on a Windows system:
Option 1 takes precedence over option 5. Here's an example. If you want to set the ignore pattern globally, setting: [HKEY_LOCAL_MACHINE\\Software\\Tigris.org\\Subversion\\Config\\miscellany]
"global-ignores"="*.o *.lo *.la .*~ *.swp *.bak *.exe *.dll *.~?? *.[Tt]mp"
will work. But always keep in mind:
The global config file can normally be found at:
C:\\Documents and Settings\\All Users\\Application Data\\Subversion
The user config file can normally be found at:
C:\\Documents and Settings\\{user name}\\Application Data\\Subversion
The directory names can vary according to your system's country settings.
From repository browser select the BRANCH you wish to compare, then (using the CTRL+MOUSE_LEFT) select the TRUNK, now MOUSE_RIGHT on one of the selected entries and select "show differences as unified diff".
It's all covered in the manual! So open the help file and search for "Diff". But since you're already reading this, heres an example of one possible use case.
TortoiseSVN installs scripts which allow you to diff / merge Word documents. They are already pre-configured in the advanced diff / merge settings of TortoiseSVN
Use the log dialog. Select all the entries you want and press Ctrl-C. Then use Ctrl-V (or paste) in your favourite text editor.
If you want to process the log messages automatically or you need them in xml format, you can use the command line client for that.
If you want the revision number in your program version number, you need an additional tool to do that. You can find the tool SubWCRev.exe on the download page on our website or in your TortoiseSVN Folder under bin.
This tool traverses your whole working copy for the most recent revision. Once that revision is found, it replaces all occurrences of the following strings:
As an example, have a look at the file version.in in the TortoiseSVN source tree.
This file is used in TortoiseSVN and its resource files. The SubWCRev.exe tool is called from the build script like this:
SubWCRev.exe path\\to\\working\\copy version.in version.h
This creates a new file version.h with all the strings above replaced with the values of the working copy. The version.h file is then used in the project itself and included in the resource files for the version information.
If you get annoyed that your working copy includes a bazillion megabytes of uninteresting stuff, here's a way to suppress it:
If you want to get those folders back, just switch them back to the original URL.
Use the Check for Modifications dialog, which checks all files in your working copy and gives a flat (non-hierarchical) view. By default it does not show unmodified and unversioned files, but you can use the checkboxes to turn those on. You can also sort by status instead of filename.
You can use the svnadmin command which comes with the Subversion package for that.
svnadmin dump path/to/repository > dumpfilesvnadmin create path/to/repository --fs-type FSFSsvnadmin load path/to/repository < dumpfileDetailed instructions can be found in the Subversion book.
Some people don't like the fact that Subversion merges changes from others with their own local working copy changes automatically on update. Here's how to force those files into a conflicted state so you can merge manually at your convenience.
This effectively makes auto-merge fail every time, forcing the file into conflict.
The reason for the curious 'type %9' line is that the diff3-cmd sends the merged output to stdout. Subversion then takes this and overwrites your local file with the merge results. Adding this line avoids getting an empty local file.
Thanks to Gabriel Vey for this tip.
Right-click on the folder in your working copy, choose "Properties" from the explorer context menu. Then, in the properties dialog, switch to the "Subversion" tab. There you can see all sorts of information about the selected folder, including to what URL it points to.
Another quick way of seeing this information is to select "Relocate" from the context menu and look at the first URL. Since you don't want to relocate your WC, just abort this dialog.
With the Import command you can't. The import command can only import a single item, and that is usually a folder, imported recursively. But there is a workaround:
The best way to create a tag for a specific revision is to first pop up the Log Dialog for the file / folder / working copy. Then right-click on the revision you want to tag and select Create Tag from Revision.
Inside the folder with the conflicting properties, you'll find a file called dir_conflicts.prej. Open that file in a text editor and you will see the conflicting properties. Choose the one you want to keep and overwrite the conflicting property with that one.
Imagine you check out revision 24 of a file and started editing it. In the meantime, someone else committed revision 25, and shortly after that revision 26. You tell TortoiseSVN to update your file now, and Subversion will try to incorporate all the changes between revision 24 and 26 into your local file.
But if the changes made between 24 and 26 were too close to or even overlap with the changes you have made, Subversion detects a conflict and creates conflict markers in the file. You then have to resolve these conflicts yourself. Read the section about conflicts in the
Daily Use Guide to find out more.
If you haven't committed your changes yet, you can do a revert on the parent folder where you deleted the file or directory.
If you have already committed the deleted file, then you can use the repository browser, change to the revision where the file still existed and then use the command Copy to... from the context menu. Enter the path to your working copy as the target and the deleted file will be copied from the repository to your working copy.
You can also restore a deleted directory using this technique.
If, after the file / folder has been restored using this trick, the log dialog doesn't show you the history of that file, don't worry. The history is still there.
If you copy a file in SVN you copy its history too. But the default setting in TSVN's ShowLog is to 'Stop on copy', which means that when you look at the history, it only goes back to the branch point. The reason for this is that when you are looking at a real branch of a project, mostly you only want to see the history of that branch. To see the whole history in ShowLog you need to unselect the 'Stop on copy' checkbox and click on 'Get All'.
There's nothing wrong with it. Subversion only allows you to check out directories - not files.
It is however possible to export a single file. Well, at least Subversion allows it. In TortoiseSVN the export dialog doesn't allow exporting single files. But there are other ways to get a single file from a repository:
Note: exporting a single file from a working copy can be easily done by right-dragging the file and then choose "SVN Export to here" from the context menu.
Your're trying to fool subversion aren't you? No - seriously - what did you expect to happen?
Assume you're in revision #55.
You removed a file using TortoiseSVN, which told it to mark the file for deletion with the next commit and to remove it from the explorer. It's not really gone from the revision yet. Then you created a file with the same name and added it to TortoiseSVN, which marks the file for adding with the next commit. It's not yet added to the repository. Now you commit. Poor subversion tries to decide whether to add or remove your file at the same time in revision #56. The commit fails.
You should have committed immediately after you deleted the file using TortoiseSVN's remove command. You still have no clue what to do? Well, in that case:
Possible reasons:
This is by design. One entry is for the link itself (the .lnk-file), the other for the target the link points to.
This way a link can both be versioned and in the same time work as a link should by allowing operations on its target.
In fact, you can have up to three entries in the file menu (the context menu will show only two).
Update for TortoiseSVN 1.5.0
TortoiseSVN 1.5.0 will only show multiple entries if the target of the link is in a working copy.
Use the TSVN settings dialog to set your proxy server and more. If you edit the configuration manually, notice that the '#' char in the config file means that the rest of the line is a comment. Comments are ignored. If you make changes to the provided examples that you wish to have effect, you must first remove the '#' mark in front of the affected lines.
If for some reason a checkout fails somewhere in the middle, e.g. because your internet connection failed, you don't have to do a fresh checkout of a probably large source tree again.
You can't share single files in Subversion, but you can share folders. Please look at the chapter External Definitions in the Subversion Book.
Yes, it is. You can use the file:// protocol to access your repository locally.
TortoiseSVN is a GUI client, therefore it will ask you for username and password in case it's needed.
If you want to automate access to your repository without user interaction (i.e. without having to enter username and password if needed), use the command line client.
This behaviour is deliberate and not a bug. Here is an example:
8 Removed other
7 Added that
6 Fixed this
5 Created "my_branch" branch from rev 4 of trunk
Suppose you want to merge only revs 7 and 8 back into trunk. With a GUI client the intuitive thing to do is select those 2 revs and hit the merge button. If TSVN filled out the From/To fields as 7-8 you would actually only merge rev 8. That is why we do an automatic -1, and set the merge range to 6-8.
In fact the same thing happens in the ShowLog dialog when you "Revert changes from this revision". You select one revision and TSVN quietly does a merge of N:N-1 to undo the changes. In this case, the revision numbers are hidden internally, but it is exactly the same principle: you just select the revisions you want to revert/merge, which is the expected behaviour for a GUI client. TortoiseSVN is not just a wrapper for the command line client.
Usually this question comes up when someone wants to merge the whole branch back into trunk. In that case they often select 5-8 and then wonder why TSVN has used 4-8.
If you copied the branch from trunk directly in the repository, you only need to merge the changes you made on the branch. ie. select revisions 6-8 in the log dialog. However, it won't matter if you include the branch creation as well, because trunk@r4 is identical to branch@r5, so it makes no difference whether you include r5 or not.
If you created the branch by copying from a modified WC then (assuming you want to include those initial mods as well) you *must* include the branch creation so TSVN's use of r4 is correct. Using r5 would merge only the changes *after* branch creation.
Access control is extensively covered in the : Subversion Book
The revision graph is a little bit special, it's not like the other features found in TortoiseSVN. It shows a graph of a file or folder through the history with all the revision where the file or folder was copied, moved, branched or tagged.
We often get people asking questions why it needs to get the log for the repository root, or why it needs to get the full log from the HEAD revision back down to the first revision.
Just to make this clear: this is not because we're lazy programmers or because we're too stupid to optimize it, even though some of you seem to imply that. It is really necessary.
The revision graph shows the history of a selected file or folder by finding all revisions where the selected item was copied. And the graph has to do that by using the information that is available.
If you look at the log messages for your selected file or folder, you can see in the lower pane of the log dialog all affected paths of the selected revision. That information is what we use for the revision graph.
You will also notice that if you just show the log for e.g. /trunk, you won't see any entries in the log dialog for revisions which happened in a tag or branch. You won't even see an entry where you tagged or branched /trunk itself in that log.
--> that's why we must fetch the log for the repository root: only the log of the repository root will give us all the information we need, including when and where a path has been copied/branched/tagged/moved to.
If we would only fetch the log for a specific range and not all revisions, we could miss the revision where (still using the example above with /trunk) the trunk was branched or tagged. And even though there are changes to those branches and tags or they still exist in the revision range, the graph could not know that those branches/tags were made from /trunk and not from some other path. That means, the graph would not just be incomplete, it would be wrong.
And no: we will never change that. Because there's nothing worse than a graph that's only sometimes correct - you would never know when and if it is correct, which means it would be worse than useless.
Since SSH completely takes care of the authentication process, Subversion won't even see the author who does the commit. So to tell Subversion an author you have to specify the author in the URL itself. E.g. svn+ssh://username@server.com.
You should do that when you check out your working copy.
If you have modified a file, but TortoiseSVN does not recognize that the file has been modified, please first check whether the file really differs from what you have in your working copy.
If you know for sure that the file has modifications and it still does not show up as modified in the commit dialog, make sure that
Subversion determines whether a file has changed with the following approach:
VS.NET when used with web / asp 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 Visual Studio and the frontpage extensions it uses. Even though you might argue that Windows can't handle such foldernames, it's not correct. Windows can handle such folders very well, you just can't create them with the explorer.
The error message you most likely will get in VS.NET2003 is "Refreshing the project failed. Unable to retrieve folder informatin from the server."
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 your shell for those env variable to take effect
However, this bug applies only when you use web projects, which is not the same as ASP.NET projects. Usually, when you want to create an ASP.NET project, you choose to create a web project. But you can create or convert an ASP.NET project as a class project. With some minor tweaking, you won't notice the difference, and you then can use TortoiseSVN and SVN with .svn folders without problems.
There is a really good blog post that helps you to convert your ASP.NET web projects to ASP.NET class project. You can find it here: http://www.pluralsight.com/fritz/Samples/aspdotnet_without_web_projects.htm
If you follow those instructions, you'll have a VS.NET working with ASP.NET projects and Subversion without troubles.
Alternatively, upgrade your copy of VS.NET. The bug has been fixed in VS.NET2005, so it no longer has this problem.
To show you the file and folder icon overlays TortoiseSVN must fetch the status each time you open such a folder in the explorer. This usually takes a fraction of a second, but can take much longer if you have either a slow hard disk or a very big directory.
Here are a few things to watch out for:
.svn Status directory, which can cause TortoiseSVN to hang or to become very slow. Sometimes you might even get an Access Denied error.
Try to configure your virus scanner so that it ignores .svn directories.
regsvr32 /u %windir%\\system32\\zipfldr.dll at the prompt and click okIf, at any time, you wish to re-enable Windows XP's built-in ZIP support, just follow these steps:
regsvr32 %windir%\\system32\\zipfldr.dll at the prompt and click okEasy, you commit the whole directory!
Right-click in the Explorer window next to the file, and choose commit. The commit dialog will show you every modification as well as added or deleted files.
Right-click on a folder, choose properties from the context menu, then switch to the Subversion tab in the properties dialog. The svn:ignore property contains a list of ignored files in that directory.
There's also a configuration in the settings dialog where you can set ignore patterns.
And last but not least, Subversion itself uses a config file for ignoring files.
You can edit the Subversion config file
(Settings->General->Subversion configuration file->Edit).
You will find a line in there:
[miscellany]
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store
Subversion creates this config file when first used.
From the Subversion developer list:
---SNIP---
Svn manipulates lots of small files in the .svn/ area. (It journals all of its actions, for example.) And NTFS is tremendously slow at this, compared to Linux filesystems. For operations that are working-copy intensive, windows seems to be about 2x slower in this regard. There's nothing we can do about it (other than redesign all of the working copy code in svn 2.0.)
---SNIP---
This means that some operations which make a lot of changes to the working copy seem slow. This mainly affects the initial checkout.
On the other hand many operations are much faster. Subversion stores a local copy of the unmodified file, which means that you can diff your local changes without contacting the server at all. You can also revert your changes and start again. And because it has both the new and old versions, subversion only needs to transmit the differences to update and commit, so these operations tend to be much faster over external networks.
Some workarounds for very large projects:
Checkout only a part of your project, not the entire tree.
Run update only on subtrees.
Search for Slow in this FAQ to look for other articles.
This section contains some frequently requested new features. There are often good technical reasons why we cannot, or will not implement some of the features that are asked for. The entries here help to explain the reasoning.
If you have a feature request which isn't listed here, you can send it to our mailing list. We can then discuss your request and decide if it's a good or bad idea to implement it.
There is no way to tell if a file has been locked by someone else, so I need a new overlay to show that.
Unfortunately, that's not possible. Locking information is held in the repository, so in order to refresh the page in explorer, we would have to contact the repository. That would make explorer impossibly slow. Servers often take several seconds to respond, sometimes minutes - do you really want explorer to hang while that takes place, every time you open a versioned folder?
A fundamental design feature of TortoiseSVN is that the repository is never contacted except when explicitly requested by one of the context menu items. Even with that restriction, it is still hard work maintaining a fast response.
If you use locking to prevent simultaneous editing, then you should consider using the svn:needs-lock property. Read the locking section in the manual to learn how to use this property. That way, files in your working copy will be read-only and have a grey overlay until you acquire a lock.
If you want to see which users have files locked in their working copies, use the Check for Modifications dialog and click on the Check repository button.
When a version controlled file is renamed in Explorer, why can't you offer to rename in Subversion as well?
Firstly, we cannot access the explorer rename command as it is not part of the TortoiseSVN shell extension.
Secondly, even if we could find a way around that limitation, it would not be desirable. There are occasions when you want to rename only in explorer. Here are 2 examples:
TortoiseSVN 1.5.0 will have the ability to 'repair' a move/rename which was done without using the Subversion commands. Repairing works by selecting two files where one is unversioned and the other missing, then choose "repair move" from the context menu.
Tortoise SVN should make Unix symbolic links and MS-Window short-cut interoperable. At present, Unix links are converted into a text file.
Well, actually no. Windows Shortcuts are not symlinks, they aren't even close. Attempting to use one as a substitute for the other is a bad idea.
But doesn't Windows since Win2K support real posix-type links?
Again, no. Those links (which work on NTFS5 only, not FAT32) are not symbolic links but hard links. Those are completely different from symbolic links. Windows refers to them as reparse points. For example, the junction points for directories (which is what resembles the linux hardlinks the most) are created by using reparse points.
But I heard that Vista has real symbolic links.
Correct, Vista now has 'real' symlinks. But there are still some problems which will lead to incompatibilities anyway.
But finally, and most important of all, any such handling of links would have to be handled outside of TSVN. It has to be done in the Subversion library, or even better in the apr library.
In version 1.5.0 and later, TortoiseMerge has editing implemented.
Below is a list of known problems on Windows Vista. If you know of more issues specific to Vista, please let us know.
special columns don't show.
The Windows explorer in Vista has changed quite a bit, and one of those changes was to abandon the additional columns but introduce a new "property system". Since the property system is file type based, we can't add a column for Subversion information anymore :(
The context menu may look wrong. That's because TortoiseSVN uses ownerdrawn menus. Since Vista changed the appearance of the context menu, it switches back to the 'old' look as soon as it detects an extension which uses ownerdrawn menus.
This has been fixed on the TortoiseSVN trunk. You can use a nightly build if you like. Or, as a workaround, enable the checkbox "Enable accelerators on the top level menu" in the Look and Feel page in the settings dialog.
Exporting from a working copy only copies some empty folders.
This bug is due to a change in the SHFileOperation API. Since the API doesn't work the same anymore on Vista as it did on Win2k or XP, we've already used another way for exporting. If you're affected by this, you can update to version 1.4.7 or you can try a nightly build.
UI rendering
There are some problems when resizing the dialogs. After resizing, black areas and artifacts of borders and other controls can still show over other controls. Minimizing and restoring the dialogs will get rid of those and the dialogs will show correctly again.
This has been fixed on trunk, you can use a nightly build if you like.
Version 1.4.2 has some problems with the explorer. Use version 1.4.3 which has this fixed.
very slow repository access.
If every access to the repository is very slow and sometimes even times out, even though everything is working ok from an XP machine, then you most likely hit a special problem in Vista with the TCP-Autotuning feature. To get rid of these problems, open a command prompt and type netsh interface tcp set global autotuninglevel=disabled. You can read more about these problems here.
apart from these known issues, TortoiseSVN will work on Windows Vista.
There are programs out there that may (not) work properly together with TortoiseSVN. In this chapter we have collected information about tools that caused trouble and about possible workarounds.
Furthermore we explain how to configure TortoiseSVN to use external Diff or Merge tools instead of the builtin TortoiseMerge and suggest some programs that we have tested with TortoiseSVN.
Some applications don't display the TortoiseSVN menus properly. They can even be completely blank (no icons, no text)
This is because the icons are completely ownerdrawn. If you don't like the way TSVN handles its menu entries, you can do the following: Just create a (DWORD) registry entry under:
HKCU\\Software\\TortoiseSVN\\OwnerdrawnMenus and set it to 0. This will force TortoiseSVN to use the windows standard routine to draw menu entries. You'll have all the menu entries any time, but you will have ugly icons, since window's default only allows 10x10 icons. If you delete this registry key (the default) or set it to something else than 0 you have the nice icons back.
In case you want no icons at all you can set this value to 2. Then the context menu entries show up as text only.
Yes they can live happily together on the same PC. You can even use them on the same folder if that makes any sense to you. But, remember, that if you'll commit from this folder using one of the two, control files from the other system can be also accidently added to repository and versioned.
To avoid this problem for subversion you should run a script that does svn propset svn:ignore -F .cvsignore . in all project directories.
It can also happen that some of the overlay icons are not displayed. See also:
The overlay icons appear, but not all of them
TortoiseSVN is only available on Windows, but there are similar applications available for Mac OS X and various Unices.
Here's a couple of examples.
If you think we've left out a major or interesting piece of software from this list, feel free to drop us a note on the mailing list.
For a more complete listing of both CLI and GUI Subversion clients and plugins, please consult this page.
This list is by no means complete, but might help you to find something:
This list is by no means complete, but might help you to find something:
To set up the calling parameters for these external tools read the section External Program Settings of our Daily Use Guide.
I have PowerDesk version 4.x or 5.x installed. Whenever I right click on a folder in PowerDesk or in Windows Explorer, the application crashes.
This is a bug in PowerDesk.
We would provide a direct link to the knowledge base article, but the PowerDesk website doesn't allow that!
So, to get the update for PowerDesk which fixes this problem, go to http://kb.avanquestusa.com and then search for the article named "PowerDesk crashes when right-clicking on some files and folders".
Sometimes when you try to unmount a removable drive, such as a USB pen drive, you get an error message saying that the device is still in use.
The problem here is that Windows only allows a short time after issuing the request to release handles, and TSVNCache.exe cannot always release all handles in time.
However, if you wait a few seconds and try unmounting again, it should work the second time.
TortoiseSVN is a native Windows Explorer Shell extension, so it's only available inside Windows Explorer. Other Commanders/Explorers available don't necessarily load the explorer shell extensions, and if they do we can't guarantee that they do that correctly.
However, as of version 6.5 you can show overlay icons in Total Commander. These How-To notes from Jochem Wendebaum may help you to get started.
You will need to restart Total Commander after making these changes.
Total Commander Homepage: http://www.ghisler.com/
When trying to unmount a TrueCrypt volume you may get an error message saying that the volume is in use.
This is a bug in TrueCrypt prior to the 4.3a release, not TortoiseSVN.
They didn't send the required window messages so that apps holding open handles can close them. TSVNCache waits for these messages (windows itself sends them when e.g. unmounting a flash drive) and then closes the handles. TrueCrypt didn't send those, that's why you can't cleanly unmount those drives when TSVNCache is running.
In the meantime, here's another hint you can try:
If you mount drivecrypt always to the same drive letter, you can specify that path to the exclude list of the overlays (overlay page in the settings dialog). For example, if you always mount drivecrypt to g:\, put "g:\" into the "exclude paths" - next time the cache (TSVNCache.exe) starts up (kill it or next time you restart your computer), the cache won't monitor that drive anymore and therefore won't open any handles there.
Update
The bug is said to be fixed in the 4.3a re