How did this software evolve over time?

Distributed version control system like hg and git and have full history locally. The history log and the patch functions can be useful to know how the repository has evolved over time.

In mercurial, you could try

hg log -p -r :

This will give a patch based log in the reverse chronological order. Similar stuff for git will be.

git log -p --reverse

When I try to get started to understand a new project ( tulip for e.g), this functionality is immensely helpful.

Hubris

Ohloh profile for Senthil Kumaran