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
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
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...