Abstract
Branching and merging have been being the outstanding methods for SCM in terms of supporting parallel developments. Since well-known commercial merging tools based on textual merging have not detecting semantics conflicts, they can cause semantic errors in the result of merging. Although a lot of researches for detecting semantic conflict and merging up to recently, these researches have been doing individually. Therefore, it is necessary for a research detecting semantic conflict on textual merging and solving it. In this paper, we propose a new method for merging which preserve semantics on textual merging. The method merging two revisions from a source program is as follows : 1) defining changing operations, which include Update, Delete, and Insert operation, per line on two revisions corresponding to the line in source program, 2) detecting textual conflicts and semantic conflict in terms of executional behaviors, 3) solving these conflicts before merging. So, the proposed method can be regarded as a hybrid method that combines a method of textual merging and a behavioral semantic merging.
분기 및 병합은 대규모 소프트웨어 개발에 있어 병렬개발을 지원할 수 있는 소프트웨어 형상관리의 대표적인 기법이다. 상업적인 용도로 쓰이는 기존의 소프트웨어 병합은 문자적 병합에만 의존하고 의미를 고려하지 않아 병합결과에서 의미적 오류를 발생시킬 수 있다. 현재까지 의미적 병합충돌 탐지 및 병합에 대한 연구가 이루어지고 있으나 의미적 병합충돌 및 병합에 대해서만 개별적으로 이루어지고 있으므로, 문자적 병합과정에서 의미적 충돌을 탐지하고 해결할 수 있는 기법에 대한 연구가 필요하다. 본 논문에서는 프로그램 원본에서 분기된 두개의 프로그램들을 병합하는데 있어서 그들 각각의 원본에 대한 각 라인별 수정, 삭제, 삽입 오퍼레이션들을 정의하여 병합과정에서 발생하는 문자적 충돌 및 실행행위에 관련된 의미적 충돌을 탐지하고 해결하여 병합하는 문자적 병합기법과 의미적 병합기법을 결합한 하이브리드 병합기법을 제시하였다.