TortoiseCVS Help
Version 0.36
Welcome
Installation
Instructions
FAQ
Credits
TortoiseCVS web site
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: 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.
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.
- Green - The file or folder is in CVS
- Red - You've changed the file
- Purple - Your changes conflict with someone else's
- Blue question mark - The file isn't in CVS and perhaps should be
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.
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!
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 GTK and, of course!, CVS. Two excellent pieces of software.
You can email me at francis@flourish.org.