コードの編集履歴を用いた競合解決支援

Bibliographic Information

Other Title
  • Merge-conflict Resolution Support Using Code Change History

Search this article

Abstract

ソフトウェアの並行開発において,異なる開発者が同一のソースコードを独立に変更した場合,それらの変更のマージが競合を引き起こすことがある.このような競合を解決するためには,版管理システムに残された過去の変更を細かく調査し,競合の原因やその解決策を見つけ出す必要があるが,これは面倒で時間のかかる作業である.本論文では,開発者がどのようにJavaソースコードを編集してきたかという情報を表現した細粒度の編集操作の履歴を用いて,競合解決を支援するツールを提案する.このツールは,競合するクラスメンバに関係する編集操作だけを抽出し,それらを再演することで,競合がどのように発生したのかの理解を助ける.また,過去の編集において競合を発生させずにマージ可能な時点を検出し,自動的にマージを適用した結果を開発者に提示する.簡単な被験者実験を通して,提案ツールが開発者の競合原因の把握や競合解決作業の支援に有用であることを確認した.

In concurrent software development, merge conflicts emerge due to independent modifications that different developers have made. The resolution of such merge conflicts might require the developers to scrutinize every modification in the revisions and thus its task is troublesome and time-consuming. This paper presents a tool that supports merging differences between two conflicting revisions, using the fine-grained edit operation history of Java source code. By both extracting edit operations related to merge conflicts within the two revisions and replaying the extracted edit operations, the tool helps developers understand how such conflicts occurred. Moreover, it can automatically merge two consistent revisions that appear in their respective modifications. This artificially generated code might be a beneficial hint of the successful merge. Through a simple experiment, we confirmed that the tool can reduce the burden of inspecting the code changes behind the conflicts and reconciling the conflicting revisions.

Journal

Related Projects

See more

Details 詳細情報について

Report a problem

Back to top