A sophisticated line mapping tool that tracks how lines of code evolve between different versions of files. Based on the LHDiff methodology, this implementation combines multiple similarity metrics to achieve accurate line tracking across various code change scenarios.
LHDiff is a research implementation of a line tracking algorithm designed for software engineering tasks such as:
- Version Comparison: Tracking how code changes between file versions
- Bug Localization: Identifying where bugs were introduced
- Code Review: Understanding code evolution patterns
- Refactoring Analysis: Tracking line movements during restructuring
- Change Impact Analysis: Measuring the extent of modifications
You need 3 JAR files in the lib/ folder. Click these links to download:
Place all 3 JARs in the lib/ folder.
VCS-project/
├── lib/
│ ├── commons-text-1.10.0.jar ✓ Downloaded
│ ├── commons-lang3-3.12.0.jar ✓ Downloaded
│ └── commons-collections4-4.4.jar ✓ Downloaded
├── Code/
│ └── CompleteLHDiff.java
└── Dataset/
├── prog1.java
├── prog1new.java
└── ...
Windows:
cd Code
javac -cp ".;../lib/*" CompleteLHDiff.javaLinux/Mac:
cd Code
javac -cp ".:../lib/*" CompleteLHDiff.javaWindows:
java -cp ".;../lib/*" CompleteLHDiff oldFile.java newFile.java output.txtLinux/Mac:
java -cp ".:../lib/*" CompleteLHDiff oldFile.java newFile.java output.txtExample:
java -cp ".;../lib/*" CompleteLHDiff ../Dataset/prog1.java ../Dataset/prog1new.java result.txt- Harmit
- Pramil
- Khalid
Course: COMP3110 - INTRO. TO SOFTWARE ENGINEERING Institution: University Of Windsor
Last Updated: December 2025
Version: 1.0.0
Status: ✅ Complete and Tested
Made with ❤️ by HKP labs!