English
Related papers

Related papers: Spork: Structured Merge for Java with Formatting P…

200 papers

Unstructured line-based merge tools are widely used in practice. Structured AST-based merge tools show significantly improved merge accuracy, but are rarely used in practice because they are language specific and costly, consequently not…

Software Engineering · Computer Science 2025-07-29 Joao Pedro Duarte , Paulo Borba , Guilherme Cavalcanti

Structured merge tools exploit programming language syntactic structure to enhance merge accuracy by reducing spurious conflicts reported by unstructured tools. By creating and handling full ASTs, structured tools are language-specific and…

Software Engineering · Computer Science 2024-07-29 Guilherme Cavalcanti , Paulo Borba , Leonardo dos Anjos , Jonatas Clementino

Merging is a core operation in version control systems such as Git, but traditional line-based algorithms often yield spurious conflicts, particularly in the presence of refactorings or parallel edits. While syntax- and semantics-aware…

Software Engineering · Computer Science 2026-04-16 Qiqi Jason Gu , Mikoláš Janota

To fork a project is to copy the existing code base and move in a direction different than that of the erstwhile project leadership. Forking provides a rapid way to address new requirements by adapting an existing solution. However, it can…

Software Engineering · Computer Science 2010-04-19 Neil A. Ernst , Steve Easterbrook , John Mylopoulos

While most forks on platforms like GitHub are short-lived and used for social collaboration, a smaller but impactful subset evolve into long-lived forks, referred to here as variants, that maintain independent development trajectories.…

Software Engineering · Computer Science 2025-08-12 Daniel Ogenrwot , John Businge

Dealing with merge conflicts in version control systems is a challenging task for software developers. Resolving merge conflicts is a time-consuming and error-prone process, which distracts developers from important tasks. Recent work shows…

Software Engineering · Computer Science 2022-08-11 Max Ellis , Sarah Nadi , Danny Dig

This is a companion draft to paper 'Software Clustering: Unifying Syntactic and Semantic Features', in proceedings of the 19th Working Conference on Reverse Engineering (WCRE 2012). It discusses the clustering process in detail, which…

Software Engineering · Computer Science 2018-06-29 Janardan Misra , Vikrant Kaulgud , Gary Titus , Annervaz KM , Shubhashis Sengupta

A version control system, such as Git, requires a way to integrate changes from different developers or branches. Given a merge scenario, a merge tool either outputs a clean integration of the changes, or it outputs a conflict for manual…

Software Engineering · Computer Science 2024-10-15 Benedikt Schesch , Ryan Featherman , Kenneth J. Yang , Ben R. Roberts , Michael D. Ernst

The disconnect between distributed software artifacts and their supposed source code enables attackers to leverage the build process for inserting malicious functionality. Past research in this field focuses on compiled language ecosystems,…

Software Engineering · Computer Science 2025-08-13 Timo Pohl , Pavel Novák , Marc Ohm , Michael Meier

Developers create software branches for tentative feature addition and bug fixing, and periodically merge branches to release software with new features or repairing patches. When the program edits from different branches textually overlap…

Software Engineering · Computer Science 2021-03-04 Bowen Shen , Cihan Xiao , Na Meng , Fei He

In collaborative software development, program merging is the mechanism to integrate changes from multiple programmers. Merge algorithms in modern version control systems report a conflict when changes interfere textually. Merge conflicts…

Software Engineering · Computer Science 2021-09-08 Elizabeth Dinella , Todd Mytkowicz , Alexey Svyatkovskiy , Christian Bird , Mayur Naik , Shuvendu K. Lahiri

In collaborative software development, multiple contributors frequently change the source code in parallel to implement new features, fix bugs, refactor existing code, and make other changes. These simultaneous changes need to be merged…

Software Engineering · Computer Science 2023-05-11 Andre Oliveira , Vania Neves , Alexandre Plastino , Ana Carla Bibiano , Alessandro Garcia , Leonardo Murta

Collaborative software development is an integral part of the modern software development life cycle, essential to the success of large-scale software projects. When multiple developers make concurrent changes around the same lines of code,…

In programming, better tools often yield better results. For that, modern programming environments offer mechanisms to allow for their extensibility. The closer those tools are to the code, the easier it is for programmers to map the…

Programming Languages · Computer Science 2026-03-09 Tom Beckmann , Christoph Thiede , Jens Lincke , Robert Hirschfeld

Context: Branching has been widely adopted in version control to enable collaborative software development. However, the isolation caused by branches may impose challenges on the upcoming merging process. Recently, companies like Google,…

Software Engineering · Computer Science 2021-09-14 Eduardo Smil Prutchi , Heleno de Souza Campos Junior , Leonardo Gresta Paulino Murta

Forking 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…

Software Engineering · Computer Science 2021-03-04 Rangeet Pan , Vu Le , Nachiappan Nagappan , Sumit Gulwani , Shuvendu Lahiri , Mike Kaufman

This paper applies machine learning to the difficult and important task of version control merging. (1) We constructed a dataset, Merge-Bench, of 7938 real-world merge conflict hunks from 1439 GitHub repositories. The ground truth is the…

Machine Learning · Computer Science 2026-05-26 Benedikt Schesch , Michael D. Ernst

Modern software development necessitates efficient version-oriented collaboration among developers. While Git is the most popular version control system, it generates unsatisfactory version merging results due to textual-based workflow,…

Software Engineering · Computer Science 2024-07-04 Qingyu Zhang , Junzhe Li , Jiayi Lin , Jie Ding , Lanteng Lin , Chenxiong Qian

Program merging is standard practice when developers integrate their individual changes to a common code base. When the merge algorithm fails, this is called a merge conflict. The conflict either manifests in textual merge conflicts where…

Software Engineering · Computer Science 2021-11-24 Jialu Zhang , Todd Mytkowicz , Mike Kaufman , Ruzica Piskac , Shuvendu K. Lahiri

In this paper, we discuss the problem of the software engineering of a class of business spreadsheet models. A methodology for structured software development is proposed, which is based on structured analysis of data, represented as…

Software Engineering · Computer Science 2008-05-29 Brian Knight , David Chadwick , Kamalesen Rajalingham
‹ Prev 1 2 3 10 Next ›