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!