Domestic Journal Peer-reviewed

Historinc: 細粒度履歴追跡のための増分的なリポジトリ変換ツール

Historinc: A Repository Transformation Tool for Fine-Grained History Tracking

柴 駿太, 林 晋平

Shunta Shiba, Shinpei Hayashi

コンピュータソフトウェア, vol. 39, no. 4, pp. 75–85, November 2022.

ここに掲載した著作物の利用に関する注意 本著作物の著作権は日本ソフトウェア科学会に帰属します.本著作物は著作権者である日本ソフトウェア科学会の許可のもとに掲載するものです.ご利用に当たっては「著作権法」に従うことをお願いいたします.

Notice for the use of this material: The copyright of this material is retained by the Japan Society for Software Science and Technology (JSSST). This material is published on this web site with the agreement of the JSSST. Please comply with Copyright Law of Japan if any users wish to reproduce, make derivative work, distribute or make available to the public any part or whole thereof.

Abstract

背景:ソースコードに記述されたプログラム要素の履歴追跡は,プログラムの理解や修正の支援に有用である.リポジトリ変換に基づく履歴追跡手法Historageは,開発者が慣れ親しんだ履歴管理インタフェースにより細粒度の履歴追跡を行えるという特徴を持つ.課題:既存のリポジトリ変換ツールは,変換時にオブジェクトデータベースからのファイルの展開と格納を繰り返すコストが大きい,増分的な変換を行わないため変換元リポジトリからの更新を伴う開発での利用に適さない,という点で変換時間に課題がある.手法:本論文では,変換時間の削減を実現した細粒度履歴追跡向けリポジトリ変換ツールHistorincの設計と実装について述べる.本ツールでは,オブジェクト変換の対応関係の記録に基づくリポジトリ変換フレームワークgit-steinを利用することにより,展開と格納を抑制する.また,更新前の変換時に記録した対応関係を更新後に持ち越し,それを用いて不要な書換えを抑制することにより増分的な変換を可能とする.予備評価:既存の変換ツールと実行時間の比較を行った.また,持ち越す対応関係の種類を比較した.既存のツールと比較して4倍以上の速度性能向上を達成したこと,対応関係の持ち越しが有効であることを確認した.

Abstract (English)

Background: Tracking program elements in source code is useful for program comprehension, supporting code edit, and so on. Historage, a history tracking approach based on repository transformation, enables developers to use a familiar interface to track a finer-grained history. Problem: Existing repository transformation tools have performance issues: (1) their transformation steps include the expansion and archiving of snapshots from the object database, and (2) they cannot transform repositories incrementally, which are unsuitable when using them for supporting software development activities. Method: In this paper, we describe the design and implementation of a transformation tool, Historinc, that reduces the transformation time. We use git-stein, a repository transformation framework based on the recording of the mapping between objects, to suppress unnecessary expansion and archiving of files. In addition, we store the mapping and use it later to support incremental transformation. Preliminary Evaluation: We compared the transformation time of our tool with an existing one. Furthermore, we compared performance when using different kinds of mappings to be stored. As a result, we found that our tool is more than four times faster than the existing tool and that storing object mapping is effective.

BibTeX

@article{shiba-jssst202211,
    author = {柴 駿太 and 林 晋平},
    title = {{Historinc}: 細粒度履歴追跡のための増分的なリポジトリ変換ツール},
    journal = {コンピュータソフトウェア},
    volume = 39,
    number = 4,
    pages = {75--85},
    doi = {10.11309/jssst.39.4_75},
    year = 2022,
}
Type
Domestic Journal
Published
November 2022
Volume / Pages
vol. 39, no. 4, pp. 75–85
DOI
10.11309/jssst.39.4_75