CVS Tools. Been doing my technology evangelist / mentor bit at work this week, trying to encourage migration away from sourcesafe onto a half-decent scc system. Not having cross-platform access to our source is hampering us in so many ways. We have no budget, so I've been focussing on ways to make CVS as attractive as possible. Shamelessy stealing ideas from sourceforge, I find the following combination of tools work very well together:
- CVS (duh) on the server.
- TortoiseCVS integrated Windows client.
- Pageant for SSH key management and passwordless connection.
- ViewCVS for a web browsable view of the repository.
- Syncmail for doing automated diffs-by-email on commits.
[Pushing the envelope]
I have a similar list, with some additional items:
- CVS command line client (because Tortoise makes 98% of your daily activities easy - the cmd line is still required for that last 2%).
- WinMerge as a slightly more user friendly diff tool.
- CVSQuery to enhance ViewCVS slightly by allowing quick searches/reports (e.g. show me all changes in the last 2 weeks for a specific module).
- Nice Tortoise icon sets (I like Timo) - let's face it, the default ones suck :)
On top of that, if you do have a budget, these tools can make life all that easier (and they're affordable):
- Araxis Merge (instead of WinMerge) as the greatest diffing/merge tool in the world. Regardless of what version control system you use this is a big help. Diffing/merging a single file is very easy and intuitive, even with the most complicated changes. It also supports diffing/merging of entire directory structures and 3-way merges.
- CSRCS is a similar tool to Tortoise (which plays nicely). It exposes an SCC api to allow many existing apps integrate directly with CVS from inside the environment (such as Visual Studio, Dreamweaver, MS Office, etc) - one click diffing in Word is very useful. It also supports RCS so you can add version control to one off files located anywhere on your system/network without having to setup a CVS repo - very useful. This is a great tool if you're also storing artefacts like documents in CVS or have many non-technical users.
Things that would be nice to see:
- A quick installer that installs everything mentioned above and configures properly. It's always embarrasing when I say how much better CVS than VSS and then it's so complicated to install. The same goes for the server-side.
- A proper integration between Araxis and Tortoise. At the moment they are unaware of each other, it'd be nice to be able to have a 'resolve conflict' Tortoise option that fired up Araxis with the yours, theirs and desired versions. And something like 'compare versions' for files or directories.
- A prettied up front-end for ViewCVS/CVSQuery that looks more, ermmm, professional.
- Better server-side database versioning tools. MS SQL-Server has a nice little feature that allows it to automatically check in any changes to database objects (tables, procs, views, etc) to VSS when something changes - regardless of what tool was used to change it. This ensures changes are never forgotton about and I'd love to see this on more dbs talking to more VCS systems.