Skip to content

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

CVSTreeGraph

A revision graph tool that actually works on real-world CVS repositories.

If you are still maintaining a CVS codebase, you already know the problem:

  • graphs that become unreadable as soon as branches grow
  • tools that lag, flicker, or become slow enough to be unusable on large histories
  • constant context switching between log, annotate, diff, and external tools

CVSTreeGraph fixes that.

image

Download

You can find here the latest build: [CVSTreeGraph Latest Build Download Page] (https://github.com/mca-software/cvs-treegraph/releases/latest)

Each release package contains:

  • CVSTreeGraph.exe
  • CVSTreeGraphShellExtension.dll
  • Python/CVSTreeGraph.py
  • README.TXT

What This Tool Solves

1. The Revision Graph Is Finally Usable

WinCVS and TortoiseCVS graphs become almost unusable on large histories.

CVSTreeGraph is built to handle:

  • large numbers of revisions
  • branch-heavy repositories
  • long-lived maintenance branches

You can scroll through the entire history smoothly, without lag or redraw artifacts.

No more “close and reopen the graph” cycles just to see updated state.


2. Stop Jumping Between Tools

CVSTreeGraph keeps the core workflows in one place:

Selections and action results are synchronized across all views.

You move from a revision to its diff or its blame instantly, without reconstructing context: You click on a node in the graph and diff and annotate will update for the revision you clicked.


3. Annotate That You Can Actually Read

Raw cvs annotate output is barely usable on real files.

CVSTreeGraph:

  • renders annotate inside a syntax-highlighted editor
  • keeps revision info visible in the gutter
  • lets you jump from a line directly to the corresponding node in the graph

Blame becomes navigable instead of just readable.


4. Diff Without Friction

Comparing revisions should not require exporting files or opening external tools.

CVSTreeGraph supports:

  • compare with previous revision
  • compare with working copy
  • compare with a pinned revision

Pinned comparisons let you keep one side fixed while browsing candidates.

Advanced diff options are available when needed (algorithm selection, whitespace handling, etc.), but the default behavior is optimized for speed and readability.

Note for Delphi programmers:

If you are programming for languages that require unicode chars (like Chinese or Japanese), you will appreciate that the diff viewer can "normalize" the dfm text to actual unicode the before comparing the two files. You might also consider installing in your delphi IDE this free plugin: DFMTextStabilizer to solve the problem once for all.


5. Repeating Merges Without Losing Your Mind

Propagating the same fix across multiple branches is one of the most painful CVS workflows.

CVSTreeGraph lets you:

  • pin a “merge from” revision
  • pin a “merge to” revision
  • reuse that interval across multiple branches

This feature is described here.

No need to manually reconstruct merge pairs every time.


6. Moving Branch Tags When It Actually Makes Sense

In strict CVS workflow, every branch should receive its own merge.

In real-world maintenance, that often means creating dozens of identical revisions just to propagate the same trivial fix.

CVSTreeGraph allows you to move branch tags directly on the graph.

This is a deliberate shortcut:

  • fewer redundant revisions
  • cleaner history
  • faster maintenance on large sets of active branches

If you prefer canonical workflows, this feature can be disabled.


7. Built For Real CVS Usage

  • Automatic refresh after commit/update/merge
  • Local caching of previously viewed revisions and annotate results
  • Fast navigation even on large graphs
  • Compact and extended graph layouts
  • Collapsible branches
  • Smarter tag rendering to reduce clutter

Package Notes

  • CVSTreeGraph.exe is the main application. No installation required
  • CVSTreeGraphShellExtension.dll is optional (Explorer integration)
  • Python/CVSTreeGraph.py is an optional WinCVS macro
  • cvs.exe must be available in the system PATH

Licensing

CVSTreeGraph is freeware. Free for personal and commercial use, with no time limit.

  • No registration, no license key, no activation
  • The application makes no network calls of its own — it only runs cvs.exe
  • Distributed as closed-source software: this repository publishes binaries and documentation only

Support is best-effort through GitHub Issues and Discussions.

Product page: 👉 mcasoftware.dev/products/cvs-treegraph


Source Code

This repository publishes binaries only.

The source code is maintained separately.

About

Modern Windows tool for working with legacy CVS repositories, built as an alternative to TortoiseCVS and WinCVS revision graphs.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors