ReExtractor is an independently developed software refactoring detection tool by the bit-se lab, capable of detecting refactoring behaviors based on commit histories in local Git repositories.
1. Select the Git repository for refactoring detection. (Note: The repository must be cloned locally in advance.)
2. Choose the refactoring detection method. ReExtractor currently supports 5 detection modes.
Using the following commit history as an example, the differences between the 5 detection modes are explained:
(1)Specific Commit: Detects refactoring operations in a specific commit. If commit C2 is selected, it analyzes changes between C1 and C2.
(2)Commit-to-Commit:Detects refactoring between two selected commits. If C1 and C3 are chosen, it analyzes all refactoring operations from C1 to C3.
(3)Commit Range:Detects refactoring across all consecutive commits between two selected commits. If C1 and C3 are chosen, it separately analyzes C1→C2 and C2→C3.
(4)Tag-to-Tag:Similar to Commit-to-Commit, but operates at the release level (tag-to-tag comparison).
(5)Tag Range:Similar to Commit Range, but operates at the release level (analyzing consecutive tags).
3.After selecting the detection mode and commits, the software will display commit messages and diffs.

4.Click the "Detect" button to generate a refactoring summary list. You can explore files of interest and refactoring types using the file tree and pie chart.

5.Click the "Location" button to navigate to the refactored code in the source files.

Java 17 or newer







