Show HN: Kinetic Merge – リファクタリングされたコードベースのマージを理智的に行う
リファクタリングによりコードが細かく移動・変更されたブランチと、新機能が追加されたブランチをマージするためのCLIツール。Gitの履歴を読み取り、遺伝的アルゴリズムを使わずに高精度なマージを実現。JRE 17以上が必要で、現在57回目のリリースを迎え安定稼働中。
背景メモ
- Kinetic Merge は、大規模リファクタリング後のコードを別ブランチの新機能変更とマージするための CLI ツール。作者が2010年代初頭に抱えた実務上の課題を、2023年から本格的に開発、現在57回目のリリースを迎えている。
- 従来の Git のマージはファイル単位の移動検出はできても、メソッドの抽出やクラス階層の変更、可視性による並べ替えといった「ファイル内部の細かいコード移動」を追跡できない。Kinetic Merge はそのギャップを埋める。
- 遺伝的アルゴリズムの採用を試みたが半年で断念。現在の実装がどのようなアルゴリズムに基づくかは公開情報からは不明(ツール自体は JRE 17+ で動作する MIT ライセンスの Java アプリケーション)。
- Git の履歴を読み、最終的に Git のマージコミットとして結果を書き出す設計。作者は自身の開発作業(本ツール自身の開発を含む)で実用しており、アルファ段階は脱したとしている。