TortoiseCVS Help

Version 0.40

Welcome Installation Instructions FAQ Credits TortoiseCVS web site

Welcome

TortoiseCVS lets you work with files under CVS version control directly from Windows Explorer. It's freely available under the GPL - you can copy it, modify the source code, or even sell it, as long as you make any changes to the source code available. It is heavily based on the source code for WinCVS, a great Windows client for CVS.

DISCLAIMER: TortoiseCVS comes with no warranty. It's also quite new. You might not want to use it with valuable data. Saying that, I use it every day with valuable data, and have had no problems which might cause loss of data. Most functionality uses the cvs2ntlib.dll which comes with the latest beta of WinCVS. So if you trust the latest WinCVS, it might be sensible to trust this.

Experience of both CVS and, for some features, WinCVS is probably necessary to make the best of TortoiseCVS at the moment.

Installation

Installation: Extract the zip file to a temporary folder, and double click Setup.exe. Since TortoiseCVS is an Explorer extension you will have to reboot. As well as a new installation, this process will also update an existing installation of TortoiseCVS.

Windows NT/95: You might 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 uninstall it and then install IE4 with desktop extensions, and then install IE5 again. IE5 itself doesn't come with the desktop extensions. What a palaver.

Uninstallation: You won't be able to delete TortoiseShell.dll while Explorer has it loaded. To uninstall, first remove the registry entries by double clicking on Unregister.reg. Then log off and back in again, reboot, or force Explorer to respawn itself. You can now delete the TortoiseCVS folder.

Instructions

To start with, right click on the folder that you would like to put a module in and chose CVS Checkout.

From then on you can Update, Commit, Add or perform Differences by right clicking on files and folders. You will also see the icon overlays within folders which are under CVS.

There are some more options on the CVS submenu, including Remove.

The Web Log option launches your browser into ViewCVS or CVSWeb to view the history of a file. These programs let you browse the CVS repository, download old versions and display differences between them. I highly recommend that you persuade your server administrator to install ViewCVS - it supports the useful Annotate feature which tells you who last changed each line of code.

Tagging lets you mark a particular version of the code - you can later fetch that revision from the second page of the CheckOut dialog. You can find out the available tags from the web log.

Branching is where you fork the code. If you want to change the branch you have to check it out somewhere. Your original checkout carries on along the main trunk.

Merge lets you pull changes that have been made on another branch into your current working copy. Once you are happy that all the changes have been correctly integrated in your working copy, they can be committed.

FAQ

Why don't the icon overlays appear?

If you're using Windows 95 or NT then you need to install the desktop enhancements that come with Internet Explorer 4. There's a section under installation about this. Even when you've done this, TortoiseCVS activates the icons in Explorer only, as Windows NT/95 give errors if they are activated in the File Open dialog. You can still use the context menus though.

Why do the overlay icons sometimes change to random graphics?

The Windows icon cache is a fairly buggy creature. You can solve some problems by increasing its size. Go to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer and add a new key called "Max Cached Icons". The default value is 512 - try increasing it to 2048. Another thing to try is to delete the file called ShellIconCache in your Windows directory. And reboot.

Ooops! I accidentally removed a file, and now it's gone!

You can find the file in your recycle bin. Or just choose Undo Delete (Ctrl+Z) from Explorer's Edit menu.

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

Easy, you commit the whole directory! Go up a level, right click on the directory that the file was in, and choose commit. I nearly always commit things from the top level directory - it is recursive through the whole project.

How do I discard a change, and revert to the version in the repository? (Undo Checkout in Sourcesafe)

Delete the file, and then right click on the directory that it was in and do CVS Update. You can revert all your changes by deleting all the files and folders in a directory (except the special CVS folder) and doing CVS Update on the directory.

Can you recommend an external diff program?

The freeware ExamDiff is brilliant, and works well with TortoiseCVS.

How do I change the external diff program?

After you've selected the diff program for the first time it isn't obvious how to change it. Hold down Control while you click on the CVS Diff menu option.

Can I mix and match with WinCVS or the command line?

Yes, you can check out a module with WinCVS and use it in TortoiseCVS or vice versa. If you've installed a command line client you can also mix with that. The only thing you can't do is work on a repository that was checked out in Unix, because of carriage return/line feed incompatibilities in the CVS/* files.

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

Yes, you can. This is a standard feature of CVS. Each directory which was checked out of CVS remembers where it came from (look at the files in the local subfolder called CVS to find out how). You can even multiply select modules which came from different places, and update or commit them all at once.

How do I make the SSH support less clunky?

It is a bit clunky at the moment. Whenever you perform a CVS operation, a DOS window will pop up. You must type your SSH password in there and press return. To avoid doing this, you'll need to set your home directory to somewhere useful (use CVS->Prefs), and generate SSH keys in there. Make them not protected by a pass phrase. Then upload your public key to the server. If you don't know what I mean, then sorry. CVS SSH support isn't very good under Windows yet!

Tell me about the secret hidden features!

There are some registry keys which turn on experimental features or help debug problems. All are under HKCU/Software/TortoiseCVS

Show Changed Directories DWORD 1 - Enables highlighting of directories with changed files in them. This is really cool, but very slow, as it has to recursively scan each directory as it is rendered in Explorer.

Client Log DWORD 1 - Writes a record of transactions with the server to cvsclientlog.in and cvsclientlog.out in the TortoiseCVS directory. This is useful for debugging connection problems.

Credits

TortoiseCVS was written by Francis Irving, heavily based on code by Alexandre Parenteau for WinCVS. Thanks to Alexandre for lots of support and help. And everyone else who worked on WinCVS.

Thanks to Ben Campbell for lots of code and help, to Gavin Buttimore for general support, and most fun of all to Nathan Thomas for Charlie, the logo. And thank you to everyone who has emailed me with help and support.

And thanks to the folk who made wxWindows and, of course!, CVS. Two excellent pieces of software.

You can email me at francis@flourish.org.

TortoiseCVS logo