Is there a high-level visual diff tool designed for managers rather than programmers?

388 Views Asked by At

I've been looking and looking but the search space on this question seems hopelessly muddied.

We've all been there: the 6 week project took 5 months and now execs want a Powerpoint.

Is there a tool that can visually show changes to a source tree from one revision to another in a way that management can understand? I'm thinking something that generates before and after thumbnails (basically just rectangles of varying heights scaled by lines of code) of source files, with the "after" thumbnails highlighted with bands of red, green, and yellow where diff saw deletions, additions and changes.

Anything that gets the point across will do, however.

Edit: I've found gource, but I'm looking for something that can fit on 2 powerpoint slides. Gource is great though.

Edit 2: Also codeswarm - another video tool, I'm looking for still images if possible.

2

There are 2 best solutions below

1
On BEST ANSWER

One way to summarize changes between releases is to use diffstat. Diffstat counts number of lines removed/added and presents a graphical presentation of the relative distribution of change for all the files. Example from the linux kernel source code:

$ git diff v3.5-rc3 v3.5-rc4 [k-z]* | diffstat 
 kernel/cgroup.c                        |   13 +
 kernel/events/core.c                   |   10 -
 kernel/exit.c                          |   19 +-
 kernel/pid_namespace.c                 |   20 ++
 kernel/printk.c                        |  241 ++++++++++++++++++++++++++++-----
 kernel/sys.c                           |    6 
 lib/fault-inject.c                     |    4 
 mm/memblock.c                          |   48 +++++-
 mm/memcontrol.c                        |    6 
 mm/memory.c                            |   12 +
 mm/mempolicy.c                         |    2 
 mm/oom_kill.c                          |   17 +-
 mm/page_cgroup.c                       |    4 
 mm/pagewalk.c                          |    1 
 mm/percpu-vm.c                         |    1 
 net/9p/trans_virtio.c                  |    2 
 net/ceph/ceph_common.c                 |    7 
 net/ceph/messenger.c                   |    4 
 net/ceph/mon_client.c                  |    8 +
 net/ceph/osd_client.c                  |   12 -
 scripts/get_maintainer.pl              |    3 
 sound/pci/hda/hda_codec.c              |   46 +++++-
 sound/pci/hda/hda_codec.h              |    2 
 sound/pci/hda/hda_intel.c              |    2 
 sound/soc/codecs/wm8904.c              |   26 +--
 sound/soc/codecs/wm8996.c              |    8 -
 sound/soc/pxa/pxa-ssp.c                |   38 +----
 sound/soc/tegra/tegra_wm8903.c         |   13 +
 sound/usb/6fire/firmware.c             |    2 
 sound/usb/pcm.c                        |   21 +-
 tools/hv/hv_kvp_daemon.c               |   10 -
 tools/perf/builtin-stat.c              |    8 -
 tools/perf/util/header.c               |   48 +++++-
 tools/perf/util/include/linux/bitops.h |    2 
 tools/perf/util/session.c              |   10 +
 tools/perf/util/session.h              |    1 
 virt/kvm/assigned-dev.c                |    4 
 37 files changed, 510 insertions(+), 171 deletions(-)
$

Here you can see that for the selected directories, between 3.5-rc3 and 3.5-rc4 most effort has been in adding debug code (when naively assuming each line added/removed represents an equal amount of effort).

0
On

You could try something like Software Cities, which was presented in a recent paper:

F. Steinbrückner and C. Lewerentz. 2010. Representing development history in software cities. In Proceedings of the 5th international symposium on Software visualization (SOFTVIS '10). ACM, New York, NY, USA, 193-202. DOI=10.1145/1879211.1879239. PDF link.

Software Cities example for Java JDK 6