Proactive detection of collaboration conflicts

@inproceedings{Brun2011ProactiveDO,
  title={Proactive detection of collaboration conflicts},
  author={Yuriy Brun and Reid Holmes and Michael D. Ernst and David Notkin},
  booktitle={ESEC/FSE '11},
  year={2011}
}
Collaborative development can be hampered when conflicts arise because developers have inconsistent copies of a shared project. We present an approach to help developers identify and resolve conflicts early, before those conflicts become severe and before relevant changes fade away in the developers' memories. This paper presents three results. First, a study of open-source systems establishes that conflicts are frequent, persistent, and appear not only as overlapping textual edits but also as… 

Figures from this paper

Early Detection of Collaboration Conflicts and Risks
TLDR
Crystal, a publicly available tool that helps developers identify, manage, and prevent conflicts, is designed and implemented and uses speculative analysis to make concrete advice unobtrusively available to developers.
Build conflicts in the wild
TLDR
This work finds and classify 239 build conflicts and their resolution patterns, and illustrates that program repair tools could benefit from the catalogue of resolution patterns to automatically fix conflicts with a proof of concept implementation of a tool that fixes conflicts.
Detecting, Understanding and Resolving Build and Test Conflicts
  • Léuson Silva
  • Computer Science
    2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)
  • 2019
TLDR
The initial results, analyzing Java projects, show that most build conflicts are caused by missing declarations removed or renamed by one developer but referenced by the changes of another developer, and these conflicts are often resolved by removing the dangling reference.
Automatic Detection and Resolution of Software Merge Conflicts: Are We There Yet?
TLDR
The research reveals the challenges and opportunities for automatic detection and resolution of merge conflicts; it also sheds light on related areas like systematic program editing and change recommendation.
Improving early detection of software merge conflicts
TLDR
A novel solution that continuously merges uncommitted and committed changes to create a background system that is analyzed, compiled, and tested to precisely and accurately detect conflicts on behalf of developers, before check-in is presented.
Language agnostic proactive early detection of conflicts: a prototype
TLDR
The concept of awareness has been proposed to help developers in detecting conflicts before they occur and to empower developers for better decisions about when and how to share their changes, while at the same time reducing their overload.
What could the source code history tell UsAbout errors
TLDR
Evidence is given that developers should not be afraid of solving conflicts since just a small percentage of the conflicted merge scenarios are suspicious of having introduced bugs and this work presents that SZZ — an algorithm to find bug introducing commits — is labeled as being a bug-introducing commit.
Making Software Integration Really Continuous
TLDR
Evidence from controlled experiments shows that the solution helps developers to become aware of and resolve conflicts earlier than when they use a mainstream version control system.
Crystal: precise and unobtrusive conflict warnings
TLDR
Crystal is a tool that proactively examines developers' code and precisely identifies and reports on textual, compilation, and behavioral conflicts, and enables developers to resolve conflicts more quickly and therefore at a lesser cost.
On the Nature of Merge Conflicts: A Study of 2,731 Open Source Java Projects Hosted by GitHub
TLDR
An in-depth study of the merge conflicts found in the histories of 2,731 open source Java projects gives rise to three primary recommendations for future merge techniques, that could on one hand help in automatically resolving certain types of conflicts and on the other hand provide the developer with tool-based assistance to more easily resolve other types of conflict.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 49 REFERENCES
Crystal: precise and unobtrusive conflict warnings
TLDR
Crystal is a tool that proactively examines developers' code and precisely identifies and reports on textual, compilation, and behavioral conflicts, and enables developers to resolve conflicts more quickly and therefore at a lesser cost.
Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software Development
TLDR
A semi-synchronous distributed computer- supported model that allows programmers creating code asynchronously to synchro- nously collaborate with each other to detect and resolve potentially conflicting tasks be- fore they have completed the tasks is described and evaluated.
Towards real-time integration
TLDR
This paper proposes the novel concept of real-time integration, which automates the detection of actual conflicts emerging during programming, involving checked in and ongoing changes, and affecting two or more developers.
Safe-commit analysis to facilitate team software development
TLDR
A program analysis is presented to identify committable changes that can be released early, without causing failures of existing tests, even in the presence of failing tests in a developer's local workspace.
Dimensions of tools for detecting software conflicts
TLDR
The various points defined by this design space can be analyzed according to several evaluation dimensions including how much effort is required to find/fix the conflict; the computation and communication costs of the tool; how much change it requires to the current software development process; and to what extent is the privacy of programmers invaded.
Speculative analysis: exploring future development states of software
TLDR
It is proposed that the IDE should speculatively perform each of the suggestions in the background and provide information that helps developers select the best option for the given context.
Syde: a tool for collaborative software development
TLDR
Syde is built, a tool infrastructure to reestablish team awareness by sharing change and conflict information across developer's workspaces and model source code changes as first-class entities to record the detailed evolution of a multi-developer project.
Towards supporting awareness of indirect conflicts across software configuration management workspaces
TLDR
This paper presents a new, cross-workspace awareness technique that supports one particular kind of indirect conflict, namely those indirect conflicts caused by changes to class signatures.
"Breaking the code", moving between private and public work in collaborative software development
TLDR
Empirical material collected from a software development team suggests that the transition from private to public work needs to be more carefully handled to allow a delicate transition, where software developers are not largely affected by the emergent public work.
DynaMine: finding common error patterns by mining software revision histories
TLDR
The combination of revision history mining and dynamic analysis techniques leveraged in DynaMine proves effective for both discovering new application-specific patterns and for finding errors when applied to very large applications with many man-years of development and debugging effort behind them.
...
1
2
3
4
5
...