Support

There are several places where you can get support for TortoiseSVN.

Online documentation


Webtortoisesvn.net

Manuals (release version)

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
 EnglishPDFHTMLPDFHTML
 Chinese, simplifiedPDFHTMLPDFHTML
 Croatian  PDFHTML
 Dutch  PDFHTML
 FinnishPDFHTMLPDFHTML
 FrenchPDFHTMLPDFHTML
 GermanPDFHTMLPDFHTML
 IndonesianPDFHTMLPDFHTML
 JapanesePDFHTMLPDFHTML
 RussianPDFHTMLPDFHTML
 Serbian cyrillicPDFHTMLPDFHTML
 Serbian latinPDFHTMLPDFHTML
 SlovakPDFHTMLPDFHTML
 SlovenianPDFHTMLPDFHTML
 SpanishPDFHTMLPDFHTML

Manuals (developer version)

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
 EnglishHTMLHTML
 Chinese, simplifiedHTMLHTML
 Croatian  HTML
 Dutch  HTML
 FinnishHTMLHTML
 FrenchHTMLHTML
 GermanHTMLHTML
 IndonesianHTMLHTML
 JapaneseHTMLHTML
 RussianHTMLHTML
 Serbian cyrillicHTMLHTML
 Serbian latinHTMLHTML
 SlovakHTMLHTML
 SlovenianHTMLHTML
 SpanishHTMLHTML

Older Manuals

Older releases are available from the Sourceforge files section.

Project Status

Have a look at our project status page to see what we are working on at the moment, and to check the release history.

Subversion book

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.

FAQ

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.

Mailing list

If your question is not answered in any of these places, you can subscribe to one of our two mailing lists:

Before you post/subscribe to one of these lists, please read our list etiquette. Also please search the archives before posting questions. Many questions have been asked before.

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.

Users list archive

Developer list archive

RSS Feed

The latest updates on our project web page are always visible in a RSS feed.

FAQ

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


I think I found a bug in TortoiseSVN!

Preparations

Before you report a bug, please make sure you have completed the following steps:
  • Update to the current version. Reports for older versions will be ignored.
  • Check the Changelog file from /trunk/ and see if your bug has already been fixed. (use 'guest' as username and leave the password field empty)
  • If possible, update to the latest nightly build and see if the bug is still there. You can find the link to the nightly builds on our download page.
  • Check the mailing list archive. Maybe someone else already reported the same bug you're seeing, and if so that bug might be already fixed.
  • Check the issue tracker. Maybe your bug has already been filed there.
  • If you've got a zip file from our crashreporting tool, send it to crashreports_at_tortoisesvn.tigris.org. Note that we don't answer mails there. Other kinds of bugreports on that list will be deleted without being read.

How to write the bug report

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.

The basics: what you did, what you wanted to happen, and what actually happened.

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.

Only report one problem in each bug report

If you have encountered two bugs that don't appear to be related, create a new bug report for each one. This makes it easier for different people to help with the different bugs.

Where to send the report to?

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

Installation & Upgrade

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.


When upgrading TortoiseSVN, do I have to uninstall the existing version first?

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!


BDB error after upgrading TSVN

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.


Do I need Admin privileges to install 1.3.x?

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.


Do I need to install Subversion before I can use TortoiseSVN to access SVN repositories?

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.


How do I uninstall TortoiseSVN?

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.


I installed a new version of TortoiseSVN, but the new functions aren't visible

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.

I upgraded TortoiseSVN and now the context menus/overlays have gone

There are several possible reasons for this:

  1. The obvious one first - you forgot to reboot as prompted!
  2. Changes to the installer around version 1.2.x have occasionally caused problems when upgrading from older versions. The workaround is first to uninstall TSVN and reboot.
    Then run our little CleanInstall tool you can download from here. Then you can install TortoiseSVN (and reboot) again.
  3. If you are viewing a working copy on a network share, the type of overlay to use is monitored by TSVNcache.exe, and as of V1.2.2 this needs access to the root of the mounted volume in order to see changes. If it can't monitor that, it assumes unversioned, so the overlays appear not to work. You must configure network access such that the ReadDirectoryChangesW() can work on the volume root. Unfortunately this call is not supported by SAMBA so overlays will not work on those mounts.

Is it possible to install TortoiseSVN for just one user?

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.


Is there a Version of TortoiseSVN for older OS (95/98/ME/NT)?

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


MSI installation is disabled on my machine. Is there a .exe installer?

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:

  • It's open. Everybody can see what we're doing by using msi tools like Orca.
  • It's easy to adjust an existing msi for your special needs if you like. There are tools with which you can edit an msi manually. You can't do that with an exe installer.
  • It runs with SYSTEM privileges, not just as e.g. Administrator. That's important because TortoiseSVN is a shell extension which requires us to create and modify registry keys which aren't accessible to user accounts (at least on Vista, that would cause big troubles if UAC is enabled).
  • It's easy to distribute an msi to multiple computers/users in a domain via GPO's. All other installers would require a domain admin to first 'wrap' that installer inside an msi to do that.
  • msi is the standard and recommended way of installing windows applications.
  • There's a great open source tool for creating msi files: WiX which we use.

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.


Silent MSI install on a windows computer ?

msiexec /package TortoiseSVN.msi /quiet INSTALLDIR="path/to/install/dir"


The installer aborts with an error message

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.

  • "This installation package is not supported by this processor type. Contact your product vendor."
    This means you are trying to install the 64-bit version of TortoiseSVN on a normal 32-bit operating system. You need to download and use the correct msi file for your OS. For normal 32-bit OS, make sure the msi file does not have an x64 in it.
  • "The installer was interrupted before TortoiseSVN could be installed. You need to restart the installer to try again"
    Then the user SYSTEM doesn't have read/execution rights in the folder where
    the installer msi is located. Either move the msi file to another
    location or give the user SYSTEM read and execution rights.
  • "The windows installer service could not be accessed"
    This can occur if you are running Windows in safe mode, or if the windows installer is not correctly installed.
    For this kind of error message, please check out the Microsoft Knowledgebase article Q315346 (basically, check that the folder where the msi is stored isn't encrypted or compressed)
  • "The system can not open the device of file specified", followed usually by "The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2755".
    This can happen if:

    • The installation does not have access to the Temp directory or if the default Temp directory of the machine is not clean or does not have enough space to run the setup.
    • The installation is being run over a terminal Server via a mapped network drive.
    • The installation is unable to create or write to the Installer directory in a Windows NT system environment.

    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:

    • 220780 OFF2000: Setup Error 2755 with Earlier Office Version Installed
    • 217714 OFF2000: Setup Appears to Stop Responding, Followed by Internal Error 2336 or 2755
    • 254841 OFF2000: Internal Error 2755, When You Try to Install from a Remote Windows Terminal Server Client
    • 305640 PRJ2000: Internal Error 2381 or Internal Error 2755 When You Install Microsoft Project

The TortoiseSVN menu is invisible!

There are a number of known problems with disappearing menus, which are due to the Windows Explorer, not TSVN.

  • If you select a folder in the left pane of explorer, then use the File menu to access TSVN, the menu text and icons are invisible the second time you use the File menu. If you select another folder, the menu is restored. This happens under Windows 98, ME, NT and 2000. Everything works fine under XP.
  • Under Windows NT 4, the context menu text and icons for TSVN sometimes disappear. This can happen anywhere in explorer.

You can also get problems with invisible TortoiseSVN menus in other applications. Check our FAQ article on Blank TortoiseSVN Menus for further details.


Versions of server and client, compatibilty issues

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.


What are the hidden registry settings?

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.

HKCU\Software\TortoiseSVN\Debug
Set this value to 1 for TortoiseSVN to show you the parameters it gets from the shell extension part.
HKCU\Software\TortoiseSVN\CacheTrayIcon
Set this value to 1 and restart the TSVNCache.exe process. After the cache starts up again, an icon is added to the system tray. Doubleclick on that icon to show a window with information about which path the cache is currently fetching the status for.
HKCU\Software\TortoiseSVN\OwnerdrawnMenus
Set this value to 0 if you don't want TortoiseSVN to use ownerdraw menu items in the shell context menu. This helps if you use something else than the windows explorer or if you get problems with the context menu showing up.

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.

HKCU\Software\TortoiseSVN\BlockStatus
If you don't want the explorer to update the status overlays while another TortoiseSVN command is running (e.g. an update, commit, ...) then set this value to 1.
HKCU\Software\TortoiseSVN\UpdateCheckURL
Since version 1.3.0: This is the URL TortoiseSVN tries to download a text file from to find out if there are updates available. You can set this also under HKLM instead of HKCU if you want, but HKCU overwrites the setting in HKLM. This might be useful for company admins who don't want their users to update TortoiseSVN until they approve it.
HKCU\Software\TortoiseSVN\ColumnsEveryWhere
This registry setting enables the SVN columns everywhere, not just inside working copies. Create this DWORD value in the registry and set it to something else than zero.

Please don't mess with those and any other registry setting if you don't know exactly what you're doing!


When I try to install a new version, it tells me the old version cannot be removed

You have two options:

  1. Download the installer for the version you've already installed. You can find the link to the archive of older TSVN version on our download-page. Doubleclick on the msi file and choose repair. After that, you can install the newer version without problems.
  2. Try here: http://windowsxp.mvps.org/MSICLEAN.htm
    This tool will clean up a corrupted installation. Then after that, you must delete the folder where TSVN was installed (usually c:\program files\TortoiseSVN). If you can't remove it because some files are still in use, get ClearInstall.exe from our website and run it. It will remove all registry keys TSVN needs to register itself in the shell. After a reboot you will then be able to delete the TSVN folder.

Windows installer service too old to install 1.3.0

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?...


Converting from xxx to SVN (with history)

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.


Converting from CVS to SVN (without history)

  • Use cvs export instead of checkout as indicated in subversion's FAQ. So you wont get CVS subdirectories
  • Before starting, add CVS and .cvsignore to the global subversion ignore list
  • Check for auto-props in the subversion config file. If you set the svn:eol-style to "native" and svn:keywords to "Id" for your source files then you might save a lot of manual work later.
  • Then create the initial folder structure in svn (trunk/branches/tags).
  • Check out the new trunk from the svn repository to an empty directory.

This way you have a working copy, which makes the next steps easier.

  • Get the project files from CVS into this SVN working copy. If you checkout from cvs, you can use this working copy as a shared working copy to transfer future changes from cvs to svn. If you use cvs export, then you only convert the current cvs "snapshot" to svn.
  • You should verify that all text files your project are using 8 bit character sets like ASCII, Latin, ANSI or UTF-8. Subversion can not handle UTF-16 files as text files. You can store them in the svn repository, but only as binary files (that means no CRLF conversion, no keyword expansion, no textual diff).
  • Now ADD (not import) the project to svn.
  • A nice idea is to create a tiny script that recurses through the project folders (after it has been added to the SVN repository) and does something like 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.

  • now do n svn commit!

Overlay icons

TortoiseSVN uses up to seven overlay slots for the status:

icon overlay for normal status
A fresh checked out working copy has a green checkmark as overlay. That means the Subversion status is Normal.
icon overlay for modified status
As soon as you start editing a file, the status changes to Modified and the icon overlay then changes to a red exclamation mark. That way you can easily see which files were changed since you last updated your working copy and need to be committed.
icon overlay for conflicted status
If during an update a conflict occurs then the icon changes to a yellow exclamation mark.
icon overlay for readonly status
If you have set the 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.
icon overlay for locked status
If you hold a lock on a file, and the Subversion status is normal, this icon overlay reminds you that you should release the lock if you are not using it to allow others to commit their changes to the file.
icon overlay for deleted status
This icon shows you that some files or folders inside the current folder have been scheduled to be deleted from version control or a file under version control is missing in a folder.
icon overlay for added status
The plus sign tells you that a file or folder has been scheduled to be added to version control.

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.


Why don't the icon overlays appear?

  • You rebooted your PC of course?
    If you haven't please do so now. TortoiseSVN is a windows Explorer Shell extension and will be loaded together with Explorer.
  • Did you install TortoiseSVN as a different user under WinNT/Win2K/WinXP than you are using now?
  • Go to the settings of TSVN and activate the icon overlays for at least the fixed drives. The installer does this automatically for the current user (can't do it for other users...) but since you are using TSVN as a different user than you installed it you need to set this manually.
  • Did you install TortoiseSVN on an older Windows (Win95/98/SE WinNT)?
    Then follow these instructions: Icons do not appear in older Windows versions
  • If some of the overlay icons do not show up, look here: The overlay icons appear, but not all of them!

The overlay icons appear, but not all of them!

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.

  • Normal, Modified and Conflicted are always loaded and visible.
  • Deleted is loaded if possible, but falls back to Modified if there are not enough slots.
  • ReadOnly is loaded if possible, but falls back to Normal if there are not enough slots.
  • Locked is only loaded if there are less than 13 overlays already loaded. It falls back to Normal if there are not enough slots.
  • Added is only loaded if there are less than 14 overlays already loaded. It falls back to Modified if there are not enough slots.

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


The icons are only visible on local drives

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.


Extra green Checkmarks on non versioned files

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.


Icon overlay on SUBST drives

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)


Icons do not appear in older Windows versions

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:

  1. Uninstall IE5 and then install IE4 with desktop extensions, and then install IE5 again. What a palaver.
  2. Run IE5 setup with command line switches to install the IE4 desktop (shell) extensions. The command must be run from the folder that contains the ie5setup.exe file. If the browser appears unstable afterwards just run the IE5 repair function.
    For Win95: ie5setup.exe /c:"ie5wzd /e:IE4Shell WIN /I:Y"
    For WinNT: 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.


Optimize performance

If you're working with big projects, you might encounter some performance problems when using TortoiseSVN. Here are some tips to optimize the settings:

  • Don't put your working copies on a network share but keep them on your local harddrive.
    There are several problems with working copies on network shares. First, a network share is much slower than your local harddrive. Which means whenever TortoiseSVN has to fetch the status of your working copy (e.g. for a commit, update, or simply to show the overlay icons) it will take a lot longer and use a lot of bandwidth.
    If you can't put the working copy on your local harddrive, at least disable the overlay icons for network shares.
  • Reduce the size of your working copies
    If you have any branches of your projects checked out which you don't really need anymore, consider removing them. Because even if you don't work with them, the status cache still has to monitor them for changes and must crawl them to show the overlays.
  • Tell TortoiseSVN where your working copies are
    In the settings dialog, Icon Overlays page, you can specify which paths TortoiseSVN should monitor for working copies. If you don't specify them there, then TortoiseSVN must monitor all your mounted drives completely, which can slow down your system too.
    An example: if you have your working copies located in C:\projects, put the path "C:\projects\*" in the "Include paths:" box, and "C:\*" in the exlude box. That will exclude the whole drive C:\, but include all subdirs of C:\projects.
  • Show overlays only in explorer
    Many programs use the "file open" or "file save" dialogs of the shell. Whenever they do that, the shell extension of TortoiseSVN is automatically loaded too, which isn't necessary if you don't really need the icon overlays in those dialogs.
    If you don't need the overlays or the context menu of TortoiseSVN in those application dialogs, you can check the box "Show overlays only in explorer" in the settings dialog, Icon Overlays page.

Overlays not working on Windows 2003 Terminal Server

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".


The overlays show the wrong status

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.


Why do the overlay icons sometimes change to random graphics?

The Windows icon cache is a fairly buggy creature. You can solve this in one of the following ways:

  • Install Microsoft's TweakUI and run the option to rebuild icons.
  • Or increase the icon cache size. Go to 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).
  • Or delete the file called ShellIconCache in your Windows directory. And reboot.
  • With TortoiseSVN 1.3.0 and later, you can also rebuild the icon cache by calling TortoiseProc from the command line like this TortoiseProc.exe /command:rebuildiconcache

Why is there no overlay icon for unversioned files?

There 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

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.


All commits have the same username. How do I setup the author?

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


Can TortoiseSVN use my Windows login name and password?

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


I lost my SVN password. How can I retrieve it?

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.


Windows authentication, repository on a Linux server

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 domains
  • mod_auth_nt_lm for authenticating against Windows NT4 domains
  • mod_auth_samba or mod_auth_smb for authenticating using older versions of Samba

Note 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:

  • Install Samba version 3 (or later)
  • Configure Samba's winbind
  • Adjust your system's PAM configuration through /etc/pam.d to allow winbind authentication for the services you wish to use

When 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.


Windows authentication, repository on a Windows server

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:

  1. authenticate users against your Windows domain, and
  2. properly launch svnserve in tunnel mode

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.


Daily Use

This section deals with daily use issues


100% CPU, when I right-click on a file

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:

  1. Start the Control Panel Display applet.
  2. Select the Appearance tab.
  3. Click Effects, then clear the "Use the following transition effect for menus and tooltips" check box.
  4. Click OK to close all dialog boxes.

Another solution that often works is to left-click the file or folder before right-clicking to display the context menu.


After I resolve a conflict, the overlay shows 'unmodified'

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.


Can I create a repository on a network directory?

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:

  1. You are giving direct write access to all users, so they could accidentally
    delete or corrupt the repository file system.
  2. Not all network file sharing protocols support the locking that Subversion requires.
    One day you will find your repository has been subtly corrupted.
  3. You have to set the access permissions in just the right way.
    SAMBA is particularly difficult in this respect.

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:

  1. Use drive mapping using the syntax below:
    Map //server/shared to S:
    file:///S:/repos (3 leading slashes before drive letter)
  2. Specify a UNC path directly using the syntax below:
    Subversion >= 1.2
    file://server/shared/repos (2 leading slashes)
    Subversion < 1.2 (strange syntax, we know)
    file://///server/shared/repos (5 leading slashes)
    file:///\server/shared/repos (3 slashes + backslash)

Can I define my own keyboard shortcuts to specific commands?

Sorry, No.


Can I get a list of all the repositories on my Server?

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.


Can I use different Subversion clients with the same working copy?

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.


Can I work on lots of working copies from different repositories at once?

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.


Can TortoiseSVN convert line breaks in text files on the fly?

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.


How Can I ...

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.


... add keyword information like author, revision, date and commit-time to my files?

Read about the Subversion property svn:keywords in the Subversion book.

With TortoiseSVN, set the properties as described here.


... change the case of a filename

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:

  1. Commit the changes in your working copy.
  2. Rename the file from UPPERcase to upperCASE directly in the repository using the repository browser.
  3. Update your working copy.

... change the log message or author after committing?

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.


... checkout a few directories from a large project and still get atomic commits?

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.

  1. Create a local repository
  2. In that repository create a new folder to represent your working environment.
  3. Create a working folder and checkout the newly created folder from your local repository.
  4. Add an svn:externals property to the working folder which references the elements of the real project that you are interested in.
  5. Commit the property and update.

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.


... clear the drop-down lists in TortoiseSVN?

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:

  • Commit dialog per-repository comment history
    HKCU\Software\TortoiseSVN\History\commit*
  • Repo browser per-repository URL history
    HKCU\Software\TortoiseSVN\History\repoURLS
  • Repo browser general URL history
    HKCU\Software\TortoiseSVN\TortoiseProc\repoURLS
  • Commit dialog comment history (older TSVN versions)
    HKCU\Software\TortoiseSVN\TortoiseProc\commit

... completely remove a repository from my computer?

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.


... define ignored files and activate keywords globally for all users?

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:

  1. Command-line options
  2. The per-user INI files (Accessed using the Edit button in TSVN settings)
  3. The per-user Registry values (HKCU, used by TSVN settings)
  4. The system-wide INI files
  5. The system-wide Registry values (HKLM)

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:

  • not all users have the rights to read HKLM keys
  • The settings in HKLM are overwritten by the same settings in HKCU and of course the two Subversion config files.

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.


... diff a file or directory in trunk against a branched version?

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".


... diff a working file with an old revision?

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.

  • Show the log for your working copy (the file)
  • Select the revision you want to diff your file to in the log dialog
  • Choose Compare with working copy from the context menu

... diff two MS Word documents?

TortoiseSVN installs scripts which allow you to diff / merge Word documents. They are already pre-configured in the advanced diff / merge settings of TortoiseSVN


... export the log out to a text file?

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.


... get the project revision number into my project?

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:

$WCREV$
This string will be replaced by the revision number of your working copy.
WCMODS?Modified:Not modified$
If you have local modifications, the string between question mark and colon will be inserted. If you have no local modifications, the string between colon and dollar sign will be inserted. In our example above Modified or Not modified.
$WCDATE$
Will be replaced by the date of the highest revision in your working copy.

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.


... hide (cloak) directories I'm not interested in from my working copy?

If you get annoyed that your working copy includes a bazillion megabytes of uninteresting stuff, here's a way to suppress it:

  1. create an empty folder in the repository
  2. switch all the folders in your working copy in which you're not interested to the URL of the empty folder
  3. now those switched folders are empty, and will stay empty even when you update your working copy

If you want to get those folders back, just switch them back to the original URL.


... list all changed files in my working copy?

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.


... migrate an existing SVN repository from Berkeley DB to FSFS

You can use the svnadmin command which comes with the Subversion package for that.

  • First you have to run svnadmin dump path/to/repository &gt; dumpfile
  • Then delete the repository you've got, create a new one in the FSFS format svnadmin create path/to/repository --fs-type FSFS
  • Next, load the dumpfile back into the new repository svnadmin load path/to/repository &lt; dumpfile

Detailed instructions can be found in the Subversion book.


... prevent Subversion from doing automatic merges

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.

  1. In TortoiseSVN->Settings->Subversion configuration file, click on the edit button.
  2. Change the [helpers] section by adding
    diff-cmd = "C:\\false.bat"
    diff3-cmd = "C:\\false.bat"
    (note the double backslash)
  3. Create the file C:\false.bat which contains two lines
    @type %9
    @exit 1

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.


... see what my current sandbox is?

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.


... select files and folders to import

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:

  1. Create a new folder in the repository for your import, using repo-browser.
  2. Checkout the new folder over the top of the folder you want to import. You will get a warning that the local folder is not empty. Now you have a versioned top level folder with no versioned content.
  3. Use the Add command to select the bits you want to add.
  4. Add items to the ignore list as required.
  5. Commit the top level folder.

... tag a particular revision using TortoiseSVN?

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.


How do I find out what the conflict is when it is in a directory's property list?

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.


How does TortoiseSVN handle conflicts?

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.


I accidentally removed a file. How do I get it back?

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'.


I always get an error when I check out or export a single file

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:

  • From the log dialog, right-click on the file, then choose "Save as..."
  • From the repository browser, right-click on the file, then choose "Save as..."

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.


I deleted a file and created a file with the same name. Why can't I commit?

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:

  1. Move that file to a safe place
  2. Commit your changes. That tells the repository that the file is gone in the first place
  3. Copy the file back
  4. Commit again

I don't have a 'Subversion' tab for setting properties

Possible reasons:

  • TortoiseSVN is not properly installed
  • You didn't restart your computer after installing TortoiseSVN
  • The file/folder you show the properties for is not under version control
  • The file/folder is not readable by TortoiseSVN

I get multiple TortoiseSVN context menu entries when I right click on a link!

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.


I have changed the configuration file to match my proxy/etc. setup, why doesn't it work?

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 my connection drops during a checkout, do I have to start again?

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.

  • Do a Cleanup on your partly checked out working copy
  • Now use the Update command to finish the checkout

Is it possible to use 'Shared Files' like in VSS?

You can't share single files in Subversion, but you can share folders. Please look at the chapter External Definitions in the Subversion Book.


Is it possible to use TortoiseSVN without a server?

Yes, it is. You can use the file:// protocol to access your repository locally.


Is there a way to send username & password when using TortoiseProc?

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.


Merge 'From:' revision is out by one when I use Show Log

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.


Permission control for read and write operations

Access control is extensively covered in the : Subversion Book


Revision graph

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.


There's no 'author' shown in the logs when I commit changes via svn+ssh.

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.


TortoiseSVN does not recognize a file as modified!

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

  • the file 'last modification' date has changed (some tools like hex editors like to reset that time)
  • if the svn:eol-style property is set and the changes are only to newlines, the file won't show up as modified because for Subversion it hasn't changed

Subversion determines whether a file has changed with the following approach:

  1. has the 'last modification' date and/or the file size changed?
  2. if not: file is not modified
  3. if yes: compare file content with the BASE file
  4. stop at the first byte that differs, mark the file as modified
  5. if no byte differs regarding to BASE, mark the file as not-modified

TortoiseSVN doesn't work with VS.NET web projects!

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.


TortoiseSVN seems very slow on big directories

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:

  • Network drives can be very slow to respond, so you may have to turn off icon overlays for such drives. However, the caching scheme usually makes it workable.
  • Whenever the last modified time of a file changed, TortoiseSVN needs to do a complete diff (!) of that file to find out if it has changed. If you often change a file, undo the changes and save the file again you'll encounter a slowdown in browsing. You can fix that condition by doing a Cleanup of your working copy folders.
  • There are several Virus scanners around that interfere with TortoiseSVN. Most of the time they lock files inside the .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.

  • If you're working on Windows XP then you can also disable the zipfolders. This will also increase the browsing speed.

    1. Select Run from the start menu
    2. Type regsvr32 /u %windir%\\system32\\zipfldr.dll at the prompt and click ok
    3. The change will take effect immediately, but you may have to restart Windows for all traces of the built-in ZIP support to disappear.

    If, at any time, you wish to re-enable Windows XP's built-in ZIP support, just follow these steps:

    1. Select Run from the start menu
    2. Type regsvr32 %windir%\\system32\\zipfldr.dll at the prompt and click ok
    3. The change will take effect immediately, but you may have to restart Windows for all traces of the built-in ZIP support to be available.
  • Check your system for spyware, policy enforcement software, or local search engines (like Google desktop). Those can all interfere with normal use quite effectively.

When I remove a file it vanishes, how do I commit it?

Easy, 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.


Where can I view/edit the list of ignored files for each directory?

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.


Why is SVN checkout so much slower than CVS?

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.


Feature Requests

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.


I need another overlay for 'locked by others'

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.


Renaming in explorer should work as 'svn rename'

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:

  • You have made some changes to a file. You need to revert to a known working version so you can get a bugfix out, but you want to keep a copy of the changed file. The easiest way is simply to rename the changed file, then update your working copy, allowing Subversion to bring back the missing file for you.
  • You want to unversion a file, ie. delete it from Subversion, but keep the file. The easiest way is to follow these steps:
    1. Rename the file, eg. MyFile.cpp to MyFile.bak.cpp.
    2. Commit the parent folder, making sure the missing file (MyFile.cpp) is checked for deletion.
    3. Rename the file again (MyFile.bak.cpp to MyFile.cpp).

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.


Symbolic links should be supported

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.

  • it only works on Vista
  • symlinks are limited to 31 per path (I don't think Linux has that limitation)
  • only admins are allowed to create symlinks - which means the whole
    feature is pretty much useless in svn since (I hope) that most users
    don't have admin rights 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.


TortoiseMerge should have editing facilities

In version 1.5.0 and later, TortoiseMerge has editing implemented.


Known problems on Vista

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.

Other Tools

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.


Blank TortoiseSVN menus

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.


Can I use TortoiseCVS and TortoiseSVN on the same computer?

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


Does a similar app also exist for Macs or Linux?

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.

  • Mac OS X finder plugin - SCPlugin
  • Unix graphical SVN client - eSVN
  • KDE-integrated SVN client - kdesvn

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.


External Diff Tools

This list is by no means complete, but might help you to find something:

  • WinMerge
    a great open-source viewer
  • Perforce Win Diff
    a free tool from Perforce. You can download the full installer here.
  • Examdiff or Examdiff Pro
    an excellent Free or Shareware tool, The 3.2 version can handle unicode.
  • Beyond Compare
    an excellent Shareware tool, can handle Unicode
  • SciTE
    for showing unified diffs, it has built-in support for syntax-coloring, since it's not only a viewer but a Text Editor as well.


External Merge Tools

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.


PowerDesk 5

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".


Removable drives cannot be unmounted

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.


Total Commander

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.

  1. Enable right-click functionality
    Go to Configuration -> Options -> Operation and choose "Left mouse button (Windows standard)" in the "Mouse selection mode".
  2. Show overlay icons
    Go to Configuration -> Options -> Layout -> Display and enable "Show overlay icons, e.g. for links". In TortoiseSVN settings, go to the Look and Feel tab and uncheck the box labelled "Show overlays only in explorer".
  3. Show explorer SVN columns
    Install the free "ShellDetails"-Plugin available at
    http://www.ghisler.com/plugins.htm#filesys
    Important note: in order to use it, make sure you read the documentation at
    http://www.lefteous.de/tc/docs/shelldetails/readme.htm#fieldsearchdirs

You will need to restart Total Commander after making these changes.
Total Commander Homepage: http://www.ghisler.com/


TrueCrypt volumes cannot be unmounted

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