ABSTRACT
Today's software are developed and maintained by multiple developers. A particular source code can be updated from multiple sources which can possibly lead to a conflict. Manual resolution of such conflict is time consuming and error prone. Various frameworks address this problem in different ways - some define guidelines or contracts to avoid such conflict, others use powerful merge tools to automatically resolve the conflicts. We observe that in many cases the conflicts are due to identical update locations. Such a conflict can be avoided if the change is performed in some other location. In this paper we developed Delta Refactoring, a set of semantic preserving program transformations to move a change to a safe location - either following the guidelines or outside the conflict region determined by the text-based merging tool. Our main motivation is to solve a problem in SAP-ERP domain where conflicts occur during the merge of SAP updates and custom enhancements. We also demonstrate the effectiveness of our solution in the context of diff3 based textual merge used in source code management systems.
- SAP-ERP at http://en.wikipedia.org/wiki/SAP_ERP.Google Scholar
- ABAP: http://en.wikipedia.org/wiki/ABAP.Google Scholar
- Refactoring Catalog at http://refactoring.com/catalog/.Google Scholar
- JMerge: http://wiki.eclipse.org/JET_FAQ_What_is_JMergeGoogle Scholar
- Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. Google ScholarDigital Library
- S. Apel, O. Leßenich, and C. Lengauer. Structured merge with auto-tuning: balancing precision and performance. In Proceedings of the 27th ASE, pages 120--129. ACM, 2012. Google ScholarDigital Library
- U. Asklund. Identifying conflicts during structural merge. In Proc. Nordic Workshop on Programming Environment Research, pages 231--242, 1994. Lund University.Google Scholar
- V. Berzins. On merging software extensions. Acta Inf., 23(6):607--619, Nov. 1986. Google ScholarDigital Library
- D. W. Binkley. Multi-procedure Program Integration. PhD thesis, Madison, WI, USA, 1991. UMI Order No. GAX91-34308. Google ScholarDigital Library
- J. Buffenbarger. Syntactic software merging. In Selected Papers from the ICSE SCM-4 and SCM-5 Workshops, on Software Configuration Management, pages 153--172, London, UK, UK, 1995. Springer-Verlag. Google ScholarDigital Library
- P. Dewan. Dimensions of tools for detecting software conflicts. In Proceedings of the 2008 International Workshop on Recommendation Systems for Software Engineering, RSSE '08, pages 21--25, New York, NY, USA, 2008. ACM. Google ScholarDigital Library
- D. Dig, K. Manzoor, R. Johnson, and T. N. Nguyen. Refactoring-aware configuration management for object-oriented programs. In Proceedings of the 29th ICSE, ICSE '07, pages 427--436, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- W. G. Griswold and D. Notkin. Automated assistance for program restructuring. ACM Trans. Softw. Eng. Methodol., 2(3):228--269, July 1993. Google ScholarDigital Library
- S. Horwitz. Identifying the semantic and textual differences between two versions of a program. In Proceedings of PLDI, PLDI '90, pages 234--245, New York, NY, USA, 1990. ACM. Google ScholarDigital Library
- S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Trans. Program. Lang. Syst., 11(3):345--387, July 1989. Google ScholarDigital Library
- D. Jackson and D. A. Ladd. Semantic diff: A tool for summarizing the effects of modifications. In Proceedings of the International Conference on Software Maintenance, ICSM '94, pages 243--252, Washington, DC, USA, 1994. IEEE Computer Society. Google ScholarDigital Library
- W. Jin and A. Orso. Bugredux: Reproducing field failures for in-house debugging. In Proceedings of the 34th International Conference on Software Engineering, ICSE '12, pages 474--484, Piscataway, NJ, USA, 2012. IEEE Press. Google ScholarDigital Library
- M. Kim, T. Zimmermann, and N. Nagappan. A field study of refactoring challenges and benefits. In Proceedings of the ACM SIGSOFT 20th FSE, FSE '12, pages 50:1--50:11, New York, NY, USA, 2012. ACM. Google ScholarDigital Library
- S. Litvak, N. Dor, R. Bodik, N. Rinetzky, and M. Sagiv. Field-sensitive program dependence analysis. In Proceedings of FSE, pages 287--296, New York, NY, USA, 2010. ACM. Google ScholarDigital Library
- T. Mens. A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng., 28(5):449--462, May 2002. Google ScholarDigital Library
- T. Mens and T. Tourwé. A survey of software refactoring. IEEE Trans. Softw. Eng., 30(2):126--139, Feb. 2004. Google ScholarDigital Library
- D. Saha, P. Dhoolia, M. Garg, and V. V. Delta Refactoring for Merge Conflict Avoidance. Technical report, IBM Research. India, 2014. Available at http://researcher.watson.ibm.com/researcher/files/in-diptsaha/delta.pdf.Google Scholar
- D. Saha, M. G. Nanda, P. Dhoolia, V. K. Nandivada, V. Sinha, and S. Chandra. Fault localization for data-centric programs. In Proceedings of the 19th ESEC/FSE, pages 157--167, New York, NY, USA, 2011. ACM. Google ScholarDigital Library
- R. Smith. GNU diff3, version 2.8.1, april 2002; distributed with gnu diffutils package (1988).Google Scholar
- E. Visser. A survey of strategies in rule-based program transformation systems. Journal of Symbolic Computation, 40(1):831--873, 2005. Special issue on Reduction Strategies in Rewriting and Programming. Google ScholarDigital Library
- B. Westfechtel. Structure-oriented merging of revisions of software documents. In Proceedings of the 3rd International Workshop on Software Configuration Management, SCM '91, pages 68--79, New York, NY, USA, 1991. ACM. Google ScholarDigital Library
- W. Yang, S. Horwitz, and T. Reps. A program integration algorithm that accommodates semantics-preserving transformations. ACM Trans. Softw. Eng. Methodol., 1(3):310--354, July 1992. Google ScholarDigital Library
Recommendations
Conflict Avoidance Scheduling Using Grouping List for Transactional Memory
IPDPSW '12: Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD ForumConventional Transactional Memory (TM) systems may experience performance degradation in applications with high contention, given the fact that execution of transaction will frequently restart due to conflicts. The restarting of transaction essentially ...
Priority-Based Conflict Resolution for Hardware Transactional Memory
CANDAR '14: Proceedings of the 2014 Second International Symposium on Computing and NetworkingLock-based thread synchronization techniques have been commonly used in parallel programming on multi-core processors. However, lock can cause deadlocks and poor scalabilites, and Transactional Memory (TM) has been proposed and studied for lock-free ...
Can Program Synthesis be Used to Learn Merge Conflict Resolutions?: An Empirical Analysis
ICSE '21: Proceedings of the 43rd International Conference on Software EngineeringForking structure is widespread in the open-source repositories and that causes a significant number of merge conflicts. In this paper, we study the problem of textual merge conflicts from the perspective of Microsoft Edge, a large, highly collaborative ...
Comments