EVOL Lab logo EVOL Lab

EVOL Lab / Projects / RePatch

Active repository Java SCAM 2025

RePatch

RePatch is a refactoring-aware patch integration tool for structurally divergent Java forks. It automates bug-fix transfer across related codebases even when standard cherry-pick fails because of method moves, renames, or broader structural reorganization.

Project image for RePatch
Illustrative view of patch transfer across divergent Java variants, with structural alignment used to recover from cherry-pick failures.

Overview

{"RePatch begins from a familiar maintenance failure" => "a bug-fix commit exists in one variant but does not apply cleanly to another because the target has drifted structurally. Instead of giving up after a failed cherry-pick, RePatch detects refactorings, temporarily inverts them to restore alignment, applies the patch, and then replays the original transformations."}

The approach is designed for long-lived Java variants that continue evolving independently. The repository includes the core integration pipeline, data models for conflict and file analysis, a database layer for result tracking, and a reproducibility package with sample and full evaluation data.

What the project focuses on

  • Applying bug-fix patches across structurally divergent Java forks.
  • Detecting refactorings that block standard cherry-pick integration.
  • Reducing manual effort during cross-variant synchronization.
  • Supporting reproducible evaluation of merge-conflict reduction.

Key takeaways

  • Targets missed opportunity patches found between related Java variants.
  • Uses a two-phase alignment strategy built around inversion and replay of refactorings.
  • Ships with artifact support, Docker guidance, and analysis scripts for reproduction.

Why it matters

Variant forks create hidden maintenance cost whenever shared bugs are fixed twice or propagated manually. RePatch turns refactoring-aware transfer into a practical research artifact for reducing those costs.