構文木の差分を用いた版管理システム向きマージ機能

書誌事項

タイトル別名
  • コウブンギ ノ サブン ヲ モチイタ ハンカンリ システム ムキ マージ キノウ
  • コウブン ボク ノ サブン オ モチイタ ハン カンリ システム ムキ マージ キノウ
  • Merging Algorithm for Revision Control System Using Syntax Tree Deltas
  • システム評価・管理技術

この論文をさがす

抄録

オープンソースソフトウェア開発では,世界中に分散した開発者が,版管理システムを用いて並行して作業を行っている.このとき,互いの作業結果を1 つにまとめるために,版管理システムが提供するマージ機能が用いられる.既存の版管理システムのマージ機能は,汎用性のため行単位によるマージを行うために,ソースコードを対象としたマージの場合,間違った出力をしたり,マージできるべき変更をマージできなかったりするという問題があった.本研究では,ソースコードを対象としたマージにおけるこれらの問題を解決するために,一般的なプログラミング言語が木構造を持つことに着目して,ソースコードを木構造を持つ中間言語に変換したうえで,中間言語に対するマージを行うアルゴリズムを提案する.また本アルゴリズムを,Java で書かれたソースコードを対象として,実際の版管理システムsubversion 上に実装した.本システムによるマージと行単位のマージとの比較実験を行った結果,行単位のマージでは正しくマージすることができなかった問題を解決することができ,本システムの有効性が確認できた.

In an opensource development process developers work together using a revision control system. While getting multi-developers working products together into a single form, merge feature of revision control systems is used. Nowadays, merge operations in existing systems are commonly implemented with a line-by-line approach that can fail if two changes to the same line of code happen at the same time. In this paper, we propose a merge algorithm for source code that exploit the tree structure of modern programming language grammar: the source code is transformed in an intermediate XML representation and the merge operation is conducted on the transformed version. We give an implementation of the algorithm for the Java language for the subversion revision control system. Experiments shown that the proposed algorithm gives more accurate merge result than the existing line-by-line algorithms.

収録刊行物

参考文献 (17)*注記

もっと見る

キーワード

詳細情報 詳細情報について

問題の指摘

ページトップへ