Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an Eclipse plugin that will let you diff a single Java method across multiple Subversion revisions?

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

like image 644
buzz3791 Avatar asked Dec 16 '11 20:12

buzz3791


2 Answers

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!

like image 60
paulsm4 Avatar answered Oct 23 '22 04:10

paulsm4


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.

like image 29
JW. Avatar answered Oct 23 '22 05:10

JW.