commit 2.0 - enriching commit comments with visualization
DESCRIPTION
The real story of how Neo Programmerson took the red pill and switch to the Commit 2.0 worldTRANSCRIPT
![Page 1: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/1.jpg)
Marco D’Ambrosuniversity of Lugano
switzerland
Michele Lanzauniversity of Lugano
switzerland
Romain robbesUniversity of chile
chile
![Page 2: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/2.jpg)
neo
Neo
![Page 3: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/3.jpg)
neo
Neo Neo’s girlfriend
![Page 4: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/4.jpg)
neo
Neo Neo’s girlfriend
commit 2.0
![Page 5: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/5.jpg)
neo
Neo Neo’s girlfriend
commit 2.0 pharo ide
![Page 6: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/6.jpg)
neo
Neo Neo’s girlfriend
commit 2.0
eclipse ide
pharo ide
![Page 7: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/7.jpg)
neo
![Page 8: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/8.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
![Page 9: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/9.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
documenting changes
![Page 10: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/10.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
neo
documenting changes
![Page 11: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/11.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
Development team
neo
documenting changes
![Page 12: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/12.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
Development team
neo
documenting changes
communication means
![Page 13: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/13.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
Development team
neo
documenting changes
communication means
ResearcherResearcher
![Page 14: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/14.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
Development team
neo
documenting changes
communication means
ResearcherResearcher
Mining software
repositories
![Page 15: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/15.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
developers often do not have time and resources to write detailed commit comments
![Page 16: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/16.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
time pressure
developers often do not have time and resources to write detailed commit comments
![Page 17: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/17.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
time pressure
boss pressure
developers often do not have time and resources to write detailed commit comments
![Page 18: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/18.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
time pressure
boss pressure deadline pressure
developers often do not have time and resources to write detailed commit comments
![Page 19: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/19.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
time pressure
boss pressure deadline pressure
i don't have the time for many
details
Let's just write "Added
context menu"
developers often do not have time and resources to write detailed commit comments
![Page 20: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/20.jpg)
* data source: gcc software project (gcc.gnu.org)
** data source: vuze software project (www.vuze.com)
more than 4,800 commits involve more
than 10 files*
more than 5,300 commit comments are
left blank**
large commits are difficult to document and often commit comments are left blank
![Page 21: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/21.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
* real commit comments committed in vuze (www.vuze.com) in 2010
“bugabugabuga”
“Next” “Arg”
“changes”*
now, how am i suppose to
understand these changes?
non-descriptive comments make developers’ lives harder
![Page 22: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/22.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
* real commit comments committed in vuze (www.vuze.com) in 2010
“bugabugabuga”
“Next” “Arg”
“changes”*
now, how am i suppose to
understand these changes?
mister programmerson
non-descriptive comments make developers’ lives harder
![Page 23: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/23.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
* real commit comments committed in vuze (www.vuze.com) in 2010
“bugabugabuga”
“Next” “Arg”
“changes”*
now, how am i suppose to
understand these changes?
mister programmerson
yes??
non-descriptive comments make developers’ lives harder
![Page 24: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/24.jpg)
but there is an alternative...
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
are you sure that you want to use svn to document your changes?
well, i don’t know...
![Page 25: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/25.jpg)
but there is an alternative...
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
are you sure that you want to use svn to document your changes?
well, i don’t know...
mr. programmerson, now you have a
choice
take the blue pill to continue using svn
take the red pill to switch to commit 2.0
![Page 26: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/26.jpg)
IDE
SCM repository
Commit 2.0Developer
Code Viz
commit 2.0 is an ide enhancement which enriches commit
comments with visualization, providing a context to
changes and a better means to communicate. it is built on top of the ide and does not change the standard
commit mechanism
SCM repository
not change the standard
I go for commit 2.0... but what is it?
![Page 27: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/27.jpg)
IDE
SCM repository
Commit 2.0Developer
Code Viz
commit 2.0 is an ide enhancement which enriches commit
comments with visualization, providing a context to
changes and a better means to communicate. it is built on top of the ide and does not change the standard
commit mechanism
SCM repository
not change the standard
I go for commit 2.0... but what is it?
it is hot here... let me remove
the jacket
![Page 28: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/28.jpg)
IDE
SCM repository
Commit 2.0Developer
Code Viz
commit 2.0 is an ide enhancement which enriches commit
comments with visualization, providing a context to
changes and a better means to communicate. it is built on top of the ide and does not change the standard
commit mechanism
SCM repository
not change the standard
I go for commit 2.0... but what is it?
it is hot here... let me remove
the jacket
![Page 29: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/29.jpg)
SCMrepository
how does it work?
![Page 30: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/30.jpg)
SCMrepository
how does it work?
![Page 31: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/31.jpg)
SCMrepository
how does it work?
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
![Page 32: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/32.jpg)
SCMrepository
how does it work?
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
![Page 33: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/33.jpg)
SCMrepository
the developer can interact with and
annotate the visualization to document the
performed changes
how does it work?
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
![Page 34: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/34.jpg)
Added a listener
Refactored the class
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
![Page 35: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/35.jpg)
Added a listener
Refactored the class
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
![Page 36: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/36.jpg)
Added a listener
Refactored the class
SCMrepository
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
![Page 37: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/37.jpg)
Added a listener
Refactored the class
Visualization
Posterous blog
SCMrepository
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
![Page 38: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/38.jpg)
package
Class
# attributes
# m
etho
ds
can you tell me more about the visualizations?
the size of the classes is
proportional to the number of
attributes (width) and methods
(height)
the coarse grained view shows all the
packages in a system and, within each of
them, all the classes belonging to the
package
![Page 39: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/39.jpg)
Class
inhe
ritance
Metho
d
# l
ines
of c
ode
the height of methods is
proportional to the number of lines of code,
while the width is fixed
The fine grained view represents classes and
inheritance relationships. For each class the view shows all the methods
the class has
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
I see... let me guess the color scheme:
and you use lighter color for the containers
Addition
deletion
modification
indirect changes
![Page 40: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/40.jpg)
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
it looks fancy, but can you show me an
example?
![Page 41: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/41.jpg)
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
![Page 42: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/42.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
absolutely!you can find it at:
commit20.inf.usi.ch
for the supported ide ask them
wow... is this real?
![Page 43: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/43.jpg)
commit 2.0 was originally
created for the pharo smalltalk ide
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
absolutely!you can find it at:
commit20.inf.usi.ch
for the supported ide ask them
wow... is this real?
![Page 44: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/44.jpg)
commit 2.0 is also
available for eclipse. ask for a demo!
commit 2.0 was originally
created for the pharo smalltalk ide
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
absolutely!you can find it at:
commit20.inf.usi.ch
for the supported ide ask them
wow... is this real?
![Page 45: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/45.jpg)
![Page 46: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/46.jpg)
![Page 47: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/47.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
![Page 48: Commit 2.0 - Enriching commit comments with visualization](https://reader034.vdocuments.net/reader034/viewer/2022042505/554a01dab4c905557a8b511d/html5/thumbnails/48.jpg)
DeveloperDeveloperDeveloperDeveloperDeveloper
neo
is this really the
end of the commit 2.0 story?
to be continued...
actually no... we plan to conduct a
user study to evaluate commit 2.0 and to
improve scm to add image support