skip to main content
10.1145/2856636.2856640acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisecConference Proceedingsconference-collections
research-article

Delta Refactoring for Merge Conflict Avoidance

Published:18 February 2016Publication History

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.

References

  1. SAP-ERP at http://en.wikipedia.org/wiki/SAP_ERP.Google ScholarGoogle Scholar
  2. ABAP: http://en.wikipedia.org/wiki/ABAP.Google ScholarGoogle Scholar
  3. Refactoring Catalog at http://refactoring.com/catalog/.Google ScholarGoogle Scholar
  4. JMerge: http://wiki.eclipse.org/JET_FAQ_What_is_JMergeGoogle ScholarGoogle Scholar
  5. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. U. Asklund. Identifying conflicts during structural merge. In Proc. Nordic Workshop on Programming Environment Research, pages 231--242, 1994. Lund University.Google ScholarGoogle Scholar
  8. V. Berzins. On merging software extensions. Acta Inf., 23(6):607--619, Nov. 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. W. Binkley. Multi-procedure Program Integration. PhD thesis, Madison, WI, USA, 1991. UMI Order No. GAX91-34308. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. W. G. Griswold and D. Notkin. Automated assistance for program restructuring. ACM Trans. Softw. Eng. Methodol., 2(3):228--269, July 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Horwitz, J. Prins, and T. Reps. Integrating noninterfering versions of programs. ACM Trans. Program. Lang. Syst., 11(3):345--387, July 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. T. Mens. A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng., 28(5):449--462, May 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. T. Mens and T. Tourwé. A survey of software refactoring. IEEE Trans. Softw. Eng., 30(2):126--139, Feb. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. R. Smith. GNU diff3, version 2.8.1, april 2002; distributed with gnu diffutils package (1988).Google ScholarGoogle Scholar
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    ISEC '16: Proceedings of the 9th India Software Engineering Conference
    February 2016
    204 pages
    ISBN:9781450340182
    DOI:10.1145/2856636

    Copyright © 2016 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 18 February 2016

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    ISEC '16 Paper Acceptance Rate25of127submissions,20%Overall Acceptance Rate76of315submissions,24%
  • Article Metrics

    • Downloads (Last 12 months)7
    • Downloads (Last 6 weeks)1

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader