This repository groups a set of merge scenarios with known semantic conflicts, which were collected from related studies.
The scenarios are grouped by projects, which may have different merge scenarios. For each merge scenario, you can find:
- Two projects versions associated with each commit of the merge scenario;
- Original version: jar files generated using the original source code.
- Transformed version: jar files generated using transformed code; these transformations change the method and attribute visibility, and inclusion of empty constructor in the class and its dependencies, where the semantic conflict happen.
- The different versions of the class file, that holds the semantic conflict;
- A README file with guidelines to build each commit locally.
The file sample-semantic-conflicts.csv groups the merge scenarios that are part of our dataset. In this file, you can find:
- Sample: the original study that identified the semantic conflict
- Semantic conflict: a boolean value that indicates the occurrence of a semantic conflict
- Commit: merge commit associated with the merge scenario
- Project: original project, where the semantic conflict was found
- Class: class where the semantic conflict was found
- Build manager: assistant used to manage the project dependencies
- Original version: link for the jar files generated from the original project version
- Transformed version: link for the jar files generated from the transformed project version
Some build files are larger than 100 MB, not supported by Github, so they were separated using split, to union them, run the script located at the root with the following command:
./prepareDataset.sh
If you use Windows as your operating system, when you clone this project, you will probably receive an error message due to the size of a few file names. This problem will make it impossible for you to clone this repository.
To resolve this, you must install the Windows Linux Subsystem; just follow the steps outlined in this guide. At the end of the installation, just open the Linux terminal on your Windows and clone the project as usual.