6

We're in the bug fix phase of a project. I'm trying to fix a feature that regressed sometime in the last 2 months. I think I have isolated the problem to a single Java class' method. Ideally, I'd like compare how this method evolved over the last 5 or 10 Subversion commits.

Are there any tools that understand Java and Subversion enough to visualize the evolution of a method across multiple commits? I'm imagining an extension to the Subversive Eclipse plugin.

I'm looking for something beyond a line/character comparison. Svn blame/show annotations doesn't understand that the text being analyzed is Java code which has methods. Are there any tools which visualize with this type of understanding?

Something akin to the Motive tool being described in this research paper... 2007. Visualizing Software Architecture Evolution using Change-sets. Andrew McNair, Daniel M. German, and Jens Weber-Jahnke, Computer Science Department, University of Victoria, Victoria, Canada, {amcnair,dmg,jens}@cs.uvic.ca http://turingmachine.org/~dmg/papers/dmg2007_wcre_changesets.pdf

buzz3791
  • 1,683
  • 2
  • 20
  • 38
  • Here is a related question that has some useful answers... https://stackoverflow.com/questions/523307/semantic-diff-utilities – buzz3791 Dec 13 '21 at 20:58

2 Answers2

4

By all means, please try several different SVN clients: you might find something better for your needs than if you constrain yourself to Eclipse.

Here are a few options:

http://liquidat.wordpress.com/2008/08/24/short-tip-compare-revisions-with-svn/

http://www.svnforum.org/threads/37499-graphical-tools-for-svn-diff

And I suspect you're already using this:

http://subclipse.tigris.org/

Here are some additional "tips and tricks" for using the Subclipse SVN client:

http://ist.berkeley.edu/as-ag/tools/usage/subclipse-usage-tips.html

http://www.clear.rice.edu/comp310/Eclipse/Subclipse/

'Hope that helps!

paulsm4
  • 114,292
  • 17
  • 138
  • 190
  • Thanks for the tool links, but none of the tools listed on these pages meet my requirements. I'm looking for something smarter than just a text differencing tool. A tool which actual understands that the text being differenced is Java: a programming language with packages, classes, methods, etc. – buzz3791 Jun 21 '12 at 20:38
2

I've never seen anything that does exactly what you describe, but "svn blame" might help. For every line in a particular version, it shows the last revision where that that line was changed. This is called "Show Annotations" in Subclipse.

JW.
  • 50,691
  • 36
  • 115
  • 143
  • Agreed, svn blame does do text differencing well but I'm looking for "svn java blame". I want the tool to understand the text is actually a programming language with packages, classes, methods, etc. – buzz3791 Jun 21 '12 at 20:39