by Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin
Abstract:
Conflicts among developers' inconsistent copies of a shared project arise in collaborative development and can slow progress and decrease quality. Identifying and resolving such conflicts early can help. Identifying situations which may lead to conflicts can prevent some conflicts altogether. By studying nine open-source systems totaling 3.4 million lines of code, we establish that conflicts are frequent, persistent, and appear not only as overlapping textual edits but also as subsequent build and test failures. Motivated by this finding, we develop a speculative analysis technique that uses previously-unexploited information from version control operations to precisely diagnose important classes of conflicts. Then, we design and implement Crystal, a publicly-available tool that helps developers identify, manage, and prevent conflicts. Crystal uses speculative analysis to make concrete advice unobtrusively available to developers.
Citation:
Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin, Early Detection of Collaboration Conflicts and Risks, IEEE Transactions on Software Engineering (TSE), vol. 39, no. 10, October 2013, pp. 1358–1375.
Related:
Extended and revised version of "Proactive detection of
collaboration conflicts" in ESEC/FSE 2011.
Bibtex:
@article{Brun13tse,
author = {Yuriy Brun and Reid Holmes and Michael D. Ernst and David Notkin},
title =
{\href{http://people.cs.umass.edu/brun/pubs/pubs/Brun13tse.pdf}{Early
Detection of Collaboration Conflicts and Risks}},
journal = {IEEE Transactions on Software Engineering (TSE)},
venue = {TSE},
year = {2013},
volume = {39},
number = {10},
month = {October},
pages = {1358--1375},
doi = {10.1109/TSE.2013.28},
issn = {0098-5589},
note = {\raisebox{-.5ex}{\includegraphics[height=2.5ex]{trophy}}~Recognized
as a Spotlight Paper. Extended and revised version of~\ref{Brun11fse}.
\href{https://doi.org/10.1109/TSE.2013.28}{DOI:
10.1109/TSE.2013.28}},
previous = {Extended and revised version of "Proactive detection of
collaboration conflicts" in ESEC/FSE 2011.},
abstract = {Conflicts among developers' inconsistent copies of a shared
project arise in collaborative development and can slow progress and decrease
quality. Identifying and resolving such conflicts early can help. Identifying
situations which may lead to conflicts can prevent some conflicts altogether.
By studying nine open-source systems totaling 3.4 million lines of code, we
establish that conflicts are frequent, persistent, and appear not only as
overlapping textual edits but also as subsequent build and test failures.
Motivated by this finding, we develop a speculative analysis technique that
uses previously-unexploited information from version control operations to
precisely diagnose important classes of conflicts. Then, we design and
implement Crystal, a publicly-available tool that helps developers identify,
manage, and prevent conflicts. Crystal uses speculative analysis to make
concrete advice unobtrusively available to developers.},
fundedBy = {NSF CNS-0937060 to the CRA for the CIFellows Project, NSF CCF-0963757,
NSERC Postdoctoral Fellowship, Microsoft Research via a SEIF award},
}