Track the evolution of a section of code back through revisions
This overlaps with the existing version tree functionality in Plastic, and with the existing annotations functionality - and is probably related to method history too.
My use cases are:-
1. I see a piece of code that is broken, but don't know anything about what that code did in the first place, when it was introduced or who did it, and what were the checkin comments.
2. Again, I see a piece of code that is broken, and I want to jump straight to the diff for that piece of code in whatever revision introduced the breakage. If that revision turns out not to be the one that broke that code, I want to jump back further without seeing other revisions that had nothing to do with that section of code.
What I'm looking for is some way of focussing on a specific section of code and going back over revisions to see how that section of code changed, and ultimately how it got in the first place.
For added value, I'd like to track that section of code as it moves around a file or across files.
I've see annotation GUIs in other VCS offerings that allow a progressive jump back by line - this addresses my use cases for 80% of the time.
Occasionally I'd like to track code motion too - so maybe some method history using the Semantic Outline mechanism would be good?
Alternatively, could there be an option in the file 2-d history view to lock on to a line in the preview pane - that would be awesome, and I think that if Semantic Outline is enabled with analyse refactors, it would cope with code motion too.
Göran Wallgren commented
This is also related to the following uservoice:
Göran Wallgren commented
This uservoice is related to this one: https://plasticscm.uservoice.com/forums/15467-general/suggestions/9392205-improvements-to-the-annotate-view
The crucial point I'm making is simply that if I see a line (or section) of code in an annotated file, I'd like to jump straight to the annotated revision where that line (or section) of code was last changed. What's more, if the change turns out to be irrelevant to whatever I'm looking for, I'd like to be able to repeat this process, jumping back to the previous change for the same line and so on...
Tracking code motion is a very nice bonus on top of this feature request.
That might work if I was using C# in Visual Studio - but I am using Scala in IntelliJ using the plugin and the Plastic GUI in standalone mode.
I'm looking for something that is available in the Plastic GUI. Also, my focus tends to be on lines of code rather than entire methods, so picking up all the history for a given method would result in a lot of noise - but the idea of using Semantic Merge to track the code motion of a line of code via its enclosing method would definitely help.
Have you tried "semantic method history"?? Not sure if it does part of what you need already: http://codicesoftware.blogspot.com/2013/10/new-semantic-methodhist-is-now-out.html
As a note, it is currently possible to manually note down the changeset from the annotations view, jump to that changeset and re-annotate - but this is fiddly!