Supporting automatic change integration
Branching, in software development, is the process of creating a copy of a code base for
the purpose of modifying it in some way. Branching inevitably raises the issue of merging.
Changes made in one branch may need to be propagated to the others. Merging, however,
poses substantial challenges. A common issue, particularly relevant to systems software, such
as Linux, is that within a single branch, developers often create new code by copying existing
code that is expected to have a similar intent, and possibly modifying it slightly according to
its new context. A change that applies to the original code is likely to be relevant to the clones
as well, even when the original code has been deleted in the current branch. The objective of
this thesis is to provide a methodology to identify such code clones in the dierent branches
between which changes have to be propagated and integrated. This thesis will provide analyses
and tools for identifying code clones and supporting automatic change integration.