SlideShare a Scribd company logo
Marco D’Ambros           Michele Lanza        Romain robbes
university of Lugano   university of Lugano   University of chile
    switzerland            switzerland               chile
Neo




      neo
Neo         Neo’s girlfriend




      neo
Neo         Neo’s girlfriend



                         commit 2.0

      neo
Neo         Neo’s girlfriend



                         commit 2.0   pharo ide

      neo
Neo         Neo’s girlfriend
                                           eclipse ide

                         commit 2.0   pharo ide

      neo
neo
Deve
      lop
         er
neo
Deve
                    lop
                       er
              neo




documenting
  changes
neo




                Deve
                    lop
                       er
              neo




documenting
  changes
eam
                            Development t


                            neo




                Deve
                    lop
                       er
              neo




documenting
  changes
eam
                            Development t


                            neo




                Deve
                    lop
                       er
              neo                  communication
                                      means




documenting
  changes
eam
                                          Development t

      rcher
Resea                                     neo




                              Deve
                                  lop
                                     er
                            neo                  communication
                                                    means




              documenting
                changes
eam
                                           Development t

      rcher
Resea                                      neo




   Mining
 software                      Deve
                                   lop
repositories                          er
                             neo                  communication
                                                     means




               documenting
                 changes
developers often do not have time and resources to write detailed commit comments




                                          Deve
                                              lop
                                                 er
                                        neo
developers often do not have time and resources to write detailed commit comments




                                  time pressure




                                          Deve
                                              lop
                                                  er
                                        neo
developers often do not have time and resources to write detailed commit comments




                                  time pressure




                                          Deve
                                              lop
                                                  er
                                        neo

     boss pressure
developers often do not have time and resources to write detailed commit comments




                                  time pressure




                                          Deve
                                              lop
                                                  er
                                        neo

     boss pressure                                            deadline pressure
developers often do not have time and resources to write detailed commit comments




                                  time pressure


                                                               Let's just
                                         i don't have the
                                                              write "Added
                                          time for many
                                                                context
                                             details
                                                                 menu"


                                          Deve
                                              lop
                                                   er
                                        neo

     boss pressure                                            deadline pressure
large commits are difficult to document and often commit comments are left blank




                         more than 4,800
                       commits involve more
                          than 10 files*

                         more than 5,300
                       commit comments are
                          left blank**




 *   data source: gcc software project (gcc.gnu.org)
**   data source: vuze software project (www.vuze.com)
non-descriptive comments make developers’ lives harder




                                 “Next”         “Arg”




                                                   “changes”*
                  “bugabugabuga”


                                            now, how am i
                                             suppose to
                          Deve
                              lop         understand these
                                    er
                        neo                   changes?




*   real commit comments committed in vuze (www.vuze.com) in 2010
non-descriptive comments make developers’ lives harder




                                 “Next”         “Arg”




                                                   “changes”*
                  “bugabugabuga”


                                            now, how am i
                                             suppose to
                          Deve
                              lop         understand these
                                    er
                        neo                   changes?


                                                                 mister
                                                             programmerson




*   real commit comments committed in vuze (www.vuze.com) in 2010
non-descriptive comments make developers’ lives harder




                                 “Next”         “Arg”




                                                   “changes”*
                  “bugabugabuga”


                                            now, how am i
                                             suppose to
                          Deve
                              lop         understand these
                                    er
                        neo                   changes?


                                                                 mister
                                                             programmerson



                                                   yes??




*   real commit comments committed in vuze (www.vuze.com) in 2010
but there is an alternative...




                                   are you sure that you want to use
                                    svn to document your changes?



                           well, i don’t
                             know...



                 Deve
                     lop
                        er
               neo
but there is an alternative...




                                   are you sure that you want to use
                                    svn to document your changes?



                           well, i don’t
                             know...


                                                     mr.
                 Deve                          programmerson,
                     lop                        now you have a
                        er
               neo                                 choice



                                           take the blue pill to
                                            continue using svn




                                               take the red pill to
                                               switch to commit 2.0
I go for
      commit 2.0...
      but what is it?




         commit 2.0
   is an ide enhancement
   which enriches commit
comments with visualization,       IDE
   providing a context to
changes and a better means
 to communicate. it is built
                                                      Developer
                                Commit 2.0
 on top of the ide and does
  not change the standard
     commit mechanism
                                Code            Viz



                               SCM repository
I go for
             commit 2.0...
             but what is it?




              commit 2.0
        is an ide enhancement
        which enriches commit
     comments with visualization,       IDE
        providing a context to
     changes and a better means
      to communicate. it is built
                                                           Developer
                                     Commit 2.0
      on top of the ide and does
       not change the standard
          commit mechanism
                                     Code            Viz



                                    SCM repository




it is hot here...
 let me remove
    the jacket
I go for
             commit 2.0...
             but what is it?




              commit 2.0
        is an ide enhancement
        which enriches commit
     comments with visualization,       IDE
        providing a context to
     changes and a better means
      to communicate. it is built
                                                           Developer
                                     Commit 2.0
      on top of the ide and does
       not change the standard
          commit mechanism
                                     Code            Viz



                                    SCM repository




it is hot here...
 let me remove
    the jacket
how does it
         work?




       SCM
repository
how does it
         work?




       SCM
repository
how does it
         work?




       SCM
repository




                      when the developer clicks the
                        commit button, commit 2.0
                      creates a visualization of the
                     changes between his version and
                      the one in the SCM repository
how does it
         work?




       SCM
repository




                      when the developer clicks the
                        commit button, commit 2.0
                      creates a visualization of the
                     changes between his version and
                      the one in the SCM repository
how does it
         work?




                                                           the developer can
                                                            interact with and
                                                       annotate the visualization
                                                             to document the
                                                          performed changes


       SCM
repository




                      when the developer clicks the
                        commit button, commit 2.0
                      creates a visualization of the
                     changes between his version and
                      the one in the SCM repository
finally, commit 2.0
                         publishes 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
finally, commit 2.0
                         publishes 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
SCM
                    repository



           code




                              finally, commit 2.0
                            publishes 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
SCM
                    repository



           code



                         Visualization




                               finally, commit 2.0
                             publishes 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




                                                       Posterous blog
the coarse grained
                                           view shows all the
can you tell me
                                          packages in a system
more about the
                                           and, within each of
visualizations?
                                         them, all the classes
                                            belonging to the
                                                 package




                             # methods
                    Class
                                           the size of the
                                             classes is
                                          proportional to
                  # attributes             the number of
                                         attributes (width)
                                            and methods
                                               (height)




                   package
I see... let me
                                                        guess the color scheme:
      The fine grained view
    represents classes and
                                                                      Addition
   inheritance relationships.
     For each class the view                                          deletion
     shows all the methods
          the class has                                          modification

                                                             indirect changes

                                                        and you use lighter color
  the height of
                                                           for the containers
   methods is                                     ce
                                              an
proportional to                            it
                                         r
                                  he
 the number of
 lines of code,                 in                                      op  er
while the width is                                                Devel          neo
      fixed
                                     Method



                                              of code
                                              # lines




                           Class
it looks fancy, but
can you show me an
     example?




                           sure, here you
                         can see a coarse
                      grained view where the
                       user fixed a bug and
                           enriched some
                       entities. you can see
                        which classes are
                          involved in each
                              change
in the
   fine grained view
 on the right you can
  see which methods
    were added and
modified to perform ui
    changes and to
     improve name
      completion
wow... is this
            real?
                              absolutely!
                            you can find it at:
                           commit20.inf.usi.ch
  Deve
      lop
            er            for the supported ide
neo
                                ask them
commit
                                                   2.0 was originally
         wow... is this                           created for the pharo
            real?                                     smalltalk ide
                              absolutely!
                            you can find it at:
                           commit20.inf.usi.ch
  Deve
      lop
            er            for the supported ide
neo
                                ask them
commit
                                                   2.0 was originally
         wow... is this                           created for the pharo
            real?                                     smalltalk ide           commit
                              absolutely!                                   2.0 is also
                            you can find it at:                           available for
                           commit20.inf.usi.ch                             eclipse. ask
  Deve                                                                     for a demo!
      lop
            er            for the supported ide
neo
                                ask them
Commit 2.0 - Enriching commit comments with visualization
Commit 2.0 - Enriching commit comments with visualization
Deve
      lop
         er
neo
is
    this really the
  end of the commit        actually no...
      2.0 story?       we plan to conduct a
                      user study to evaluate
                         commit 2.0 and to
                        improve scm to add
                           image support
  Deve
      lop
          er
neo




                                      to be continued...

More Related Content

PDF
Presentation tips
KEY
Bug Prediction and Analysis
KEY
On the Relationship Between Change Coupling and Software Defects
PDF
On the Evolution of Source Code and Software Defects
PDF
Combine workshops to boost business understanding.pdf
ODP
Documenting code yapceu2016
PPTX
Growing Developer Community One Pull Request At a Time
PPTX
No Programmer Is an Island
Presentation tips
Bug Prediction and Analysis
On the Relationship Between Change Coupling and Software Defects
On the Evolution of Source Code and Software Defects
Combine workshops to boost business understanding.pdf
Documenting code yapceu2016
Growing Developer Community One Pull Request At a Time
No Programmer Is an Island

Similar to Commit 2.0 - Enriching commit comments with visualization (20)

PPTX
The Agile Technical Writer: Fact or Fiction?
PDF
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
PDF
Living documentation
PDF
Documentation avoidance for developers
PDF
Writing great documentation - CodeConf 2011
PPTX
Welcome to Agile - Taipei Regent 2016/05/20
PDF
Living Documentation (presentation)
PDF
Corry clybouw integrated user documentation
PPT
Technical writing in an agile development environment
PDF
Best Practices in Software Development
PDF
Refactoring Fest
PDF
Beyond The Timesheet
PDF
Voxxed Days Thessaloniki 2016 - Documentation Avoidance
PDF
Stash - We Code Together
ODP
Documenting Code - Patterns and Anti-patterns - NLPW 2016
KEY
Refactoring With Fire
PDF
Hidden sides of Code Review (MMM-2023)
PPTX
Pull requests do's and don'ts
PPTX
Agile presentation
PDF
Hidden sides of Code Review (Do-iOS)
The Agile Technical Writer: Fact or Fiction?
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Living documentation
Documentation avoidance for developers
Writing great documentation - CodeConf 2011
Welcome to Agile - Taipei Regent 2016/05/20
Living Documentation (presentation)
Corry clybouw integrated user documentation
Technical writing in an agile development environment
Best Practices in Software Development
Refactoring Fest
Beyond The Timesheet
Voxxed Days Thessaloniki 2016 - Documentation Avoidance
Stash - We Code Together
Documenting Code - Patterns and Anti-patterns - NLPW 2016
Refactoring With Fire
Hidden sides of Code Review (MMM-2023)
Pull requests do's and don'ts
Agile presentation
Hidden sides of Code Review (Do-iOS)
Ad

Recently uploaded (20)

PPTX
Spectroscopy.pptx food analysis technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Empathic Computing: Creating Shared Understanding
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Machine Learning_overview_presentation.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
Spectroscopy.pptx food analysis technology
Digital-Transformation-Roadmap-for-Companies.pptx
Empathic Computing: Creating Shared Understanding
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine Learning_overview_presentation.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
A comparative analysis of optical character recognition models for extracting...
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Network Security Unit 5.pdf for BCA BBA.
Programs and apps: productivity, graphics, security and other tools
MYSQL Presentation for SQL database connectivity
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Getting Started with Data Integration: FME Form 101
Diabetes mellitus diagnosis method based random forest with bat algorithm
MIND Revenue Release Quarter 2 2025 Press Release
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
Ad

Commit 2.0 - Enriching commit comments with visualization

  • 1. Marco D’Ambros Michele Lanza Romain robbes university of Lugano university of Lugano University of chile switzerland switzerland chile
  • 2. Neo neo
  • 3. Neo Neo’s girlfriend neo
  • 4. Neo Neo’s girlfriend commit 2.0 neo
  • 5. Neo Neo’s girlfriend commit 2.0 pharo ide neo
  • 6. Neo Neo’s girlfriend eclipse ide commit 2.0 pharo ide neo
  • 7. neo
  • 8. Deve lop er neo
  • 9. Deve lop er neo documenting changes
  • 10. neo Deve lop er neo documenting changes
  • 11. eam Development t neo Deve lop er neo documenting changes
  • 12. eam Development t neo Deve lop er neo communication means documenting changes
  • 13. eam Development t rcher Resea neo Deve lop er neo communication means documenting changes
  • 14. eam Development t rcher Resea neo Mining software Deve lop repositories er neo communication means documenting changes
  • 15. developers often do not have time and resources to write detailed commit comments Deve lop er 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 pressure deadline pressure
  • 19. developers often do not have time and resources to write detailed commit comments time pressure Let's just i don't have the write "Added time for many context details menu" Deve lop er neo boss pressure deadline pressure
  • 20. large commits are difficult to document and often commit comments are left blank more than 4,800 commits involve more than 10 files* more than 5,300 commit 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 harder “Next” “Arg” “changes”* “bugabugabuga” now, how am i suppose 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 harder “Next” “Arg” “changes”* “bugabugabuga” now, how am i suppose to Deve lop understand these er neo changes? mister programmerson * real commit comments committed in vuze (www.vuze.com) in 2010
  • 23. non-descriptive comments make developers’ lives harder “Next” “Arg” “changes”* “bugabugabuga” now, how am i suppose to Deve lop understand these er neo changes? mister programmerson 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 don’t know... Deve lop er neo
  • 25. but there is an alternative... are you sure that you want to use svn to document your changes? well, i don’t know... mr. Deve programmerson, lop now you have a er neo choice take the blue pill to continue using svn take the red pill to switch to commit 2.0
  • 26. I go for commit 2.0... but what is it? commit 2.0 is an ide enhancement which enriches commit comments with visualization, IDE providing a context to changes and a better means to communicate. it is built Developer Commit 2.0 on top of the ide and does not change the standard commit mechanism Code Viz SCM repository
  • 27. I go for commit 2.0... but what is it? commit 2.0 is an ide enhancement which enriches commit comments with visualization, IDE providing a context to changes and a better means to communicate. it is built Developer Commit 2.0 on top of the ide and does not change the standard commit mechanism Code Viz SCM repository it is hot here... let me remove the jacket
  • 28. I go for commit 2.0... but what is it? commit 2.0 is an ide enhancement which enriches commit comments with visualization, IDE providing a context to changes and a better means to communicate. it is built Developer Commit 2.0 on top of the ide and does not change the standard commit mechanism Code Viz SCM repository it is hot here... let me remove the jacket
  • 29. how does it work? SCM repository
  • 30. how does it work? SCM repository
  • 31. how does it work? SCM repository when the developer clicks the commit button, commit 2.0 creates a visualization of the changes between his version and the one in the SCM repository
  • 32. how does it work? SCM repository when the developer clicks the commit button, commit 2.0 creates a visualization of the changes between his version and the one in the SCM repository
  • 33. how does it work? the developer can interact with and annotate the visualization to document the performed changes SCM repository when the developer clicks the commit button, commit 2.0 creates a visualization of the changes between his version and the one in the SCM repository
  • 34. finally, commit 2.0 publishes 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.0 publishes 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 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
  • 37. SCM repository code Visualization finally, commit 2.0 publishes 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 Posterous blog
  • 38. the coarse grained view shows all the can you tell me packages in a system more about the and, within each of visualizations? them, all the classes belonging to the package # methods Class the size of the classes is proportional to # attributes the number of attributes (width) and methods (height) package
  • 39. I see... let me guess the color scheme: The fine grained view represents classes and Addition inheritance relationships. For each class the view deletion shows all the methods the class has modification indirect changes and you use lighter color the height of for the containers methods is ce an proportional to it r he the number of lines of code, in op er while the width is Devel neo fixed Method of code # lines Class
  • 40. it looks fancy, but can you show me an example? sure, here you can see a coarse grained view where the user fixed a bug and enriched some entities. you can see which classes are involved in each change
  • 41. in the fine grained view on the right you can see which methods were added and modified to perform ui changes and to improve name completion
  • 42. wow... is this real? absolutely! you can find it at: commit20.inf.usi.ch Deve lop er for the supported ide neo ask them
  • 43. commit 2.0 was originally wow... is this created for the pharo real? smalltalk ide absolutely! you can find it at: commit20.inf.usi.ch Deve lop er for the supported ide neo ask them
  • 44. commit 2.0 was originally wow... is this created for the pharo real? smalltalk ide commit absolutely! 2.0 is also you can find it at: available for commit20.inf.usi.ch eclipse. ask Deve for a demo! lop er for the supported ide neo ask them
  • 47. Deve lop er neo
  • 48. is this really the end of the commit actually no... 2.0 story? we plan to conduct a user study to evaluate commit 2.0 and to improve scm to add image support Deve lop er neo to be continued...