CVS, the Concurrent Versions System is the dominant open-source version control system. CVS is useful for everyone from individual developers to large, distributed teams. The software is used extensively on SourceForge.net and elsewhere around the web. Besides the command-line, there are a number of front ends to CVS that make day-to-development easier. The CVS client SF.net staff recommend for MS Windows users is TortoiseCVS. TortoiseCVS lets users work with files directly from Windows Explorer. Features include: graphical UI, tight integration with SSH, and context-menu interactivity. As of (Dec 2004), TortoiseCVS has had over 600,000 downloads and is one of the top projects on the site. The SourceForge.net team is proud to make TortoiseCVS December 2004 project of the month.
Description of project:
TortoiseCVS lets Windows users use version control easily and naturally. Most user interfaces for version control replicate a file manager; TortoiseCVS extends Windows Explorer, the built-in Windows file manager.
- OS: All 32-bit flavours of Windows
- Environment: Win32
- Language: Apart from English, there are currently 10 official translations, with two more being prepared.
- License: GPL
- Hardware requirements: Whatever the OS needs
- Programming Language: C++
- Development Status: 5 – Production/Stable
- Intended Audience: Developers, end users/desktop
- Topic: CVS
Why and how did you get started?
Francis: In my job as a games programmer, I started to use CVS under Windows. I wanted a better user interface, had the idea, so made it.
Martin: At the time I ran a small development shop and we needed a version control system. The team consisted of a mix of skills developers, designers, and technical writers, and I needed something simple and intuitive. I found TortoiseCVS and was able to quickly and easily bring my entire team onto version control. Three months later Francis put a message on Slashdot asking for help to keep the tortoise going. It was my first step into the open source world.
What is the software’s intended audience?
Anybody who wants a simple-to-use version control tool.
How many people do you believe are using your software?
The latest stable release was downloaded about 75,000 times, so I guess there are at least 50,000 users.
What are a couple of notable examples of how people are using your software?
There are some CEOs who use it to manage word documents and spreadsheets, something I don’t think CVS had much use for before.
What gave you an indication that your project was becoming successful?
Francis: When an old school friend found it while searching for good CVS clients, and emailed me out the blue to check I was the same Francis Irving.
Torsten: Many FOSS projects are recommending TortoiseCVS as a CVS client for Windows.
Martin: When I visited a vendors office once, and someone put two and two together and asked me if I participated on the project.
What has been your biggest surprise?
Francis: I quite often meet people who mention that they or their company uses TortoiseCVS, before I’ve told them I ever worked on it.
Torsten: Discovering that someone had made a Japanese version of www.tortoisecvs.org.
Martin: The amount of community support that TortoiseCVS has gotten. The mailing list is active with many non-developers offering time to test TortoiseCVS on different configurations.
What has been your biggest challenge?
Francis: Stopping working on it. I enjoyed it, but didn’t really have any more to offer, and didn’t know how to find good people to take over. It turned out they were already there, I just hadn’t noticed!
Torsten: The greatest challenge is ensuring getting all bugs out of the stable releases. TortoiseCVS is used on a variety of Windows platforms with various combinations of multiple monitors, small/large fonts, themes etc., as well as being run against many different CVS servers, some of which are surprisingly old. This of course means that it is not possible for the developers to test every possible setup, but we are lucky to get quite good feedback from our users.
Hartmut: The transition from unstable to stable releases – sorting out all the major and minor bugs, so that a “stable” release actually deserves its name.
Why do you think your project has been so well received?
Francis: Because people like right-clicking. (Seriously!).
Torsten: Because users feel that they don’t have to learn a new application – they just use their old trusty Explorer or Total Commander with a few extensions.
Hartmut: Because of the great support: There are so many experienced TortoiseCVS users answering questions on the mailing list. Plus, we’re very fast when it comes to fixing bugs.
Martin: It fills a need. CVS is a great version control system, but the command-line interface is not convenient. Other CVS interfaces are clunky and confusing. Right-clicking just makes sense.
Where do you see your project going?
The next logical step I see is supporting some of the advanced features of CVSNT such as renaming. But it is important to keep the simplicity.
What’s on your project wish list?
Torsten: Getting rid of even more preference settings.
Martin: I’ve recently switched to the Mac OS X, and I really, really miss TortoiseCVS. I would love to see TortoiseCVS it other platforms, although this is likely never to happen.
What are you most proud of?
Francis: I’m most flattered and pleased that TortoiseCVS inspired another project, TortoiseSVN. It offers a similar interface to the new Subversion version control system.
Torsten: Each time I have resisted the temptation to add another preference setting, and instead made the code smarter.
Hartmut: Finally giving something back to the OSS community after having used open source software for so many years now.
If you could change something about the project, what would it be?
Maybe I’d call it TurtleCVS so people didn’t think it was slow 🙂 Not as cute though. There isn’t really a fast animal with a shell.
How do you coordinate the project?
We have a pretty small core development team: Hartmut and myself (several other people also contribute, but not on a regular basis). I handle everything related to releases, as well as the documentation and web site stuff. Apart from those things, there is no strict division of responsibility – we both work on the new features we find cool, and we both handle bug reports etc. via the trackers and the mailing list.
Do you work on the project full-time, or do you have another job?
Torsten: I do have a real job in a software company (where we also use TortoiseCVS exclusively).
Hartmut: I currently work as a freelance software developer and consultant for a German engineering company.
If you work on the project part-time, how much time would you say you spend, per week, on it?
Torsten: Three or four hours, I guess.
Hartmut: Somewhere between 5 and 8 hours.
What is your development environment like?
Torsten: Fujitsu-Siemens Amilo Pro notebook (Pentium 4 @ 2.2GHz, 256MB RAM) running Windows XP Professional SP 2. I use Visual Studio .Net 2003 as compiler and debugger, but I do all editing in Emacs. The Cygwin tools are also an indispensable part of our automatic build script.
Hartmut: A no-name notebook with a 1GHz PIII CPU, 256MB RAM, Win2K, Visual Studio 2003.
- Version 1.0.0 (July 2002): Edit/Unedit, seamless SSH support.
- Version 1.2.0 (November 2002): Add Contents, History, Revision Graph.
- Version 1.4.0 (June 2003): CVSNT support, new conflict resolution engine, translations.
- Version 1.6.0 (December 2003): Lots of minor improvements.
- Version 1.8.0 (October 2004): Improved conflict handling, Annotate, Merge point display, better SSH integration, new Add dialog.
- Version 2.0.0 (??? 2005): More powerful Revision Graph dialog, three-way merge support, Rename, …
How can others contribute?
New translators would be nice, both for new languages and for those existing translations which have not been updated for a while. Documentation writers are also on the wish list. And programmers are of course welcome to implement one of the many RFE’s in the tracker. Contact firstname.lastname@example.org if you are interested.