Improving early detection of software merge conflicts

Merge conflicts cause software defects which if detected late may require expensive resolution. This is especially true when developers work too long without integrating concurrent changes, which in practice is common as integration generally occurs at check-in. Awareness of others' activities was proposed to help developers detect conflicts earlier. However, it requires developers to detect conflicts by themselves and may overload them with notifications, thus making detection harder. This paper presents 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. An empirical study confirms that our solution avoids overloading developers and improves early detection of conflicts over existing approaches. Similarly to what happened with continuous compilation, this introduces the case for continuous merging inside the IDE.

[1]  Yuriy Brun,et al.  Proactive detection of collaboration conflicts , 2011, ESEC/FSE '11.

[2]  André van der Hoek,et al.  Towards supporting awareness of indirect conflicts across software configuration management workspaces , 2007, ASE '07.

[3]  Stephen P. Berczuk,et al.  Software Configuration Management Patterns: Effective Teamwork, Practical Integration , 2003 .

[4]  Prasun Dewan,et al.  A flexible object merging framework , 1994, CSCW '94.

[5]  Li-Te Cheng,et al.  Introducing collaboration into an application development environment , 2004, CSCW.

[6]  André van der Hoek,et al.  Empirical evidence of the benefits of workspace awareness in software configuration management , 2008, SIGSOFT '08/FSE-16.

[7]  Paul Dourish,et al.  Awareness and coordination in shared workspaces , 1992, CSCW '92.

[8]  Prasun Dewan,et al.  Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software Development , 2007, ECSCW.

[9]  Robert J. Walker,et al.  Customized awareness: recommending relevant external change events , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[10]  Daniela E. Damian,et al.  Awareness in the Wild: Why Communication Breakdowns Occur , 2007, International Conference on Global Software Engineering (ICGSE 2007).

[11]  Jonathan J. Cadiz,et al.  Coordination, overload and team performance: effects of team communication strategies , 1998, CSCW '98.

[12]  Harvey P. Siy,et al.  Parallel changes in large scale software development: an observational case study , 1998, Proceedings of the 20th International Conference on Software Engineering.

[13]  Prasun Dewan,et al.  Dimensions of tools for detecting software conflicts , 2008, RSSE '08.

[14]  Miryung Kim,et al.  An exploratory study of awareness interests about software modifications , 2011, CHASE.

[15]  António Rito Silva,et al.  Towards real-time integration , 2010, CHASE '10.

[16]  Jörg M. Haake,et al.  Supporting distributed software development by modes of collaboration , 2001, ECSCW.

[17]  Andrew Glover,et al.  Continuous Integration: Improving Software Quality and Reducing Risk (The Addison-Wesley Signature Series) , 2007 .

[18]  Paul Dourish,et al.  "Breaking the code", moving between private and public work in collaborative software development , 2003, GROUP.

[19]  Hugh Whitemore,et al.  Breaking the Code , 1986 .

[20]  Claes Wohlin,et al.  Using Students as Subjects—A Comparative Study of Students and Professionals in Lead-Time Impact Assessment , 2000, Empirical Software Engineering.

[21]  Mary Czerwinski,et al.  FASTDash: a visual dashboard for fostering awareness in software teams , 2007, CHI.

[22]  Geraldine Fitzpatrick,et al.  CVS integration with notification and chat: lightweight software team collaboration , 2006, CSCW '06.

[23]  Rebecca E. Grinter Using a configuration management tool to coordinate software development , 1995, COCS '95.