Commit 2.0 - Enriching commit comments with visualization

of 48 /48
Marco D’Ambros university of Lugano switzerland Michele Lanza university of Lugano switzerland Romain robbes University of chile chile

Embed Size (px)

description

The real story of how Neo Programmerson took the red pill and switch to the Commit 2.0 world

Transcript of Commit 2.0 - Enriching commit comments with visualization

  • 1.Marco DAmbros Michele LanzaRomain robbes university of Lugano university of Lugano University of chile switzerlandswitzerland chile

2. Neo neo 3. Neo Neos girlfriend neo 4. Neo Neos girlfriend commit 2.0neo 5. Neo Neos girlfriend commit 2.0 pharo ideneo 6. Neo Neos girlfriendeclipse ide commit 2.0 pharo ideneo 7. neo 8. Deve loper neo 9. Deve loper neo documenting changes 10. neo Deve loper neo documenting changes 11. eam Development t neo Deve loper neo documenting changes 12. eam Development t neo Deve loper neocommunication means documenting changes 13. eam Development trcher Resea neo Deve loper neocommunication means documenting changes 14. eamDevelopment trcher ReseaneoMiningsoftwareDevelop repositorieserneocommunicationmeansdocumentingchanges 15. developers often do not have time and resources to write detailed commit comments Deve loper neo 16. developers often do not have time and resources to write detailed commit comments time pressure Deve lop er neo 17. developers often do not have time and resources to write detailed commit comments time pressure Deve lop er neo boss pressure 18. developers often do not have time and resources to write detailed commit comments time pressure Deve lop er neo boss pressuredeadline pressure 19. developers often do not have time and resources to write detailed commit comments time pressureLet's justi don't have the write "Added time for many contextdetailsmenu" Deve loper neo boss pressuredeadline pressure 20. large commits are difficult to document and often commit comments are left blankmore than 4,800commits involve more than 10 files* more than 5,300commit comments are left blank*** data source: gcc software project (gcc.gnu.org) ** data source: vuze software project (www.vuze.com) 21. non-descriptive comments make developers lives harderNext Argchanges* bugabugabuga now, how am isuppose to Deve lop understand these er neo changes? * real commit comments committed in vuze (www.vuze.com) in 2010 22. non-descriptive comments make developers lives harderNext Argchanges* bugabugabuga now, how am isuppose to Deve lop understand these er neo changes?misterprogrammerson * real commit comments committed in vuze (www.vuze.com) in 2010 23. non-descriptive comments make developers lives harderNext Argchanges* bugabugabuga now, how am isuppose to Deve lop understand these er neo changes?misterprogrammerson yes?? * real commit comments committed in vuze (www.vuze.com) in 2010 24. but there is an alternative...are you sure that you want to use svn to document your changes? well, i dontknow... Develop erneo 25. but there is an alternative...are you sure that you want to use svn to document your changes? well, i dontknow...mr.Deveprogrammerson,lopnow you have a erneo choice take the blue pill to continue using svntake the red pill toswitch to commit 2.0 26. I go for commit 2.0... but what is it?commit 2.0is an ide enhancementwhich enriches commit comments with visualization, IDEproviding a context to changes and a better meansto communicate. it is built Developer Commit 2.0on top of the ide and does not change the standardcommit mechanism CodeViz SCM repository 27. I go forcommit 2.0...but what is it? commit 2.0 is an ide enhancement which enriches commitcomments with visualization, IDE providing a context tochanges and a better means to communicate. it is builtDeveloperCommit 2.0 on top of the ide and doesnot change the standard commit mechanismCodeVizSCM repository it is hot here...let me remove the jacket 28. I go forcommit 2.0...but what is it? commit 2.0 is an ide enhancement which enriches commitcomments with visualization, IDE providing a context tochanges and a better means to communicate. it is builtDeveloperCommit 2.0 on top of the ide and doesnot change the standard commit mechanismCodeVizSCM repository it is hot here...let me remove the jacket 29. how does itwork?SCM repository 30. how does itwork?SCM repository 31. how does itwork?SCM repository when the developer clicks the commit button, commit 2.0 creates a visualization of thechanges between his version and the one in the SCM repository 32. how does itwork?SCM repository when the developer clicks the commit button, commit 2.0 creates a visualization of thechanges between his version and the one in the SCM repository 33. how does itwork?the developer can interact with andannotate the visualizationto document the performed changesSCM repository when the developer clicks the commit button, commit 2.0 creates a visualization of thechanges between his version and the one in the SCM repository 34. finally, commit 2.0publishes the code on the scm repository and the annotated visualization on a blog.the blog is used because no scm supports visualization Refactored Added a the class listener 35. finally, commit 2.0publishes the code on the scm repository and the annotated visualization on a blog.the blog is used because no scm supports visualization Refactored Added a the class listener 36. SCM repository code finally, commit 2.0 publishes the code onthe scm repository andthe annotatedvisualization on a blog. the blog is used becauseno scm supportsvisualizationRefactored Added athe class listener 37. SCM repository code Visualizationfinally, commit 2.0publishes the code on the scm repository and the annotated visualization on a blog. the blog is used becauseno scm supportsvisualizationRefactored Added athe class listenerPosterous blog 38. the coarse grainedview shows all the can you tell me packages in a system more about theand, within each of visualizations?them, all the classes belonging to thepackage# methods Classthe size of theclasses is proportional to # attributes the number ofattributes (width) and methods(height)package 39. I see... let me guess the color scheme: The fine grained view represents classes and Additioninheritance relationships.For each class the viewdeletionshows all the methods the class hasmodification indirect changesand you use lighter color the height offor the containersmethods is ce an proportional toitr hethe number oflines of code, inoper while the width isDevelneo fixedMethodof code # linesClass 40. it looks fancy, but can you show me anexample?sure, here youcan see a coarse grained view where theuser fixed a bug andenriched someentities. you can see which classes are involved in each change 41. in thefine grained viewon the right you can see which methods were added and modified to perform ui changes and toimprove name completion 42. wow... is this real? absolutely! you can find it at:commit20.inf.usi.ch Deve lop erfor the supported ide neo ask them 43. commit2.0 was originallywow... is this created for the pharo real? smalltalk ide absolutely! you can find it at:commit20.inf.usi.ch Deve lop erfor the supported ide neo ask them 44. commit2.0 was originallywow... is this created for the pharo real? smalltalk ide commit absolutely! 2.0 is also you can find it at: available forcommit20.inf.usi.ch eclipse. ask Deve for a demo! lop erfor the supported ide neo ask them 45. Deve loper neo 46. is this really the end of the commitactually no... 2.0 story? we plan to conduct a user study to evaluatecommit 2.0 and to improve scm to addimage support Deve lop er neo to be continued...