You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: INSTALL.md
+58-26Lines changed: 58 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,18 @@
1
1
# Installation
2
2
## Installation Instructions
3
-
In the following, we describe how to build the Docker image and run the experiments in Docker containers.
3
+
In the following, we describe how to replicate the validation from our paper (Section 5) step-by-step.
4
+
The instructions explain how to build the Docker image and run the validation in a Docker container.
4
5
5
-
### Install Docker (if required)
6
+
### 1. Install Docker (if required)
6
7
How to install Docker depends on your operating system.
7
8
8
-
#### Windows or Mac
9
-
You can find download and installation instructions [here](https://www.docker.com/get-started).
10
-
11
-
#### Linux Distributions
12
-
How to install Docker on your system, depends on your distribution. However, the chances are high that Docker is part of your distributions package database.
9
+
- Windows or Mac: You can find download and installation instructions [here](https://www.docker.com/get-started).
10
+
- Linux Distributions: How to install Docker on your system, depends on your distribution. However, the chances are high that Docker is part of your distributions package database.
13
11
Docker's [documentation](https://docs.docker.com/engine/install/) contains instructions for common distributions.
Then, navigate to the root of your local clone of this repository.
35
+
```shell
36
+
cd DiffDetective
37
+
```
38
+
39
+
### 3. Build the Docker Container
40
+
To build the Docker container you can run the `build` script corresponding to your operating system:
32
41
```
33
42
# Windows:
34
43
.\build.bat
35
44
# Linux/Mac (bash):
36
45
./build.sh
37
46
```
38
47
39
-
## Verification & Expected Output
48
+
## 4. Verification & Replication
49
+
50
+
### Running the Replication or Verification
51
+
To execute the replication you can run the `execute` script corresponding to your operating system with `replication` as first argument.
52
+
53
+
#### Windows:
54
+
`.\execute.bat replication`
55
+
#### Linux/Mac (bash):
56
+
`./execute.sh replication`
57
+
58
+
> WARNING!
59
+
> The replication will at least require an hour and might require up to a day depending on your system.
60
+
> Therefore, we offer a short verification (5-10 minutes) which runs DiffDetective on only four of the datasets.
61
+
> You can run it by providing "verification" as argument instead of "replication" (i.e., `.\execute.bat verification`, `./execute.sh verification`).
62
+
> If you want to stop the execution, you can call the provided script for stopping the container in a separate terminal.
63
+
> When restarted, the replication will continue processing by restarting at the last unfinished repository.
64
+
> #### Windows:
65
+
> `.\stop-execution.bat`
66
+
> #### Linux/Mac (bash):
67
+
> `./stop-execution.sh`
40
68
41
-
### Running the Verification
42
-
To run the verification you can run the script corresponding to your OS with `verification` as first argument. The verification should take about 10-20 minutes depending on your hardware.
43
-
```
44
-
# Windows:
45
-
.\execute.bat verification
46
-
# Linux/Mac (bash):
47
-
./execute.sh verification
48
-
```
49
69
The results of the verification will be stored in the [results](results) directory.
50
70
51
71
### Expected Output of the Verification
52
-
The aggregated results of the verification can be found in the following files.
72
+
The aggregated results of the verification/replication can be found in the following files.
73
+
The example file content shown below should match your results when running the _verification_.
74
+
(Note that the links below only have a target _after_ running the replication or verification.)
53
75
54
-
- The [speed statistics](results/validation/speedstatistics.txt) contain information about the total runtime, median runtime, mean runtime, and more:
76
+
- The [speed statistics](results/validation/current/speedstatistics.txt) contain information about the total runtime, median runtime, mean runtime, and more:
55
77
```
56
78
#Commits: 14527
57
79
Total commit process time is: 12.427866666666667min
@@ -60,7 +82,7 @@ The aggregated results of the verification can be found in the following files.
60
82
Median commit process time is: 6dc71f6b2c7ff49adb504426b4cd206e4745e1e3___xorg-server___19ms
61
83
Average commit process time is: 51.330075032697735ms
62
84
```
63
-
- The [classification results](results/validation/ultimateresult.metadata.txt) contain information about how often each pattern was found, and more.
85
+
- The [classification results](results/validation/current/ultimateresult.metadata.txt) contain information about how often each pattern was matched, and more.
64
86
```
65
87
repository: <NONE>
66
88
total commits: 18046
@@ -95,9 +117,19 @@ The aggregated results of the verification can be found in the following files.
95
117
#Error[#else or #elif without #if]: 9
96
118
#Error[not all annotations closed]: 6
97
119
```
98
-
99
-
(Note that the above links only have a target after running the verification.)
100
-
The processing times might deviate.
120
+
121
+
Moreover, the results comprise the (LaTeX) tables that are part of our paper and appendix.
122
+
The processing times might deviate because performance depends on your hardware.
123
+
124
+
### (Optional) Running DiffDetective on Custom Datasets
125
+
You can also run DiffDetective on other datasets by providing the path to the dataset file as first argument to the execution script:
126
+
127
+
#### Windows:
128
+
`.\execute.bat path\to\custom\dataset.md`
129
+
#### Linux/Mac (bash):
130
+
`./execute.sh path/to/custom/dataset.md`
131
+
132
+
The input file must have the same format as the other dataset files (i.e., repositories are listed in a Markdown table). You can find [dataset files](docs/datasets.md) in the [docs](docs) folder.
101
133
102
134
## Troubleshooting
103
135
@@ -111,7 +143,7 @@ The processing times might deviate.
111
143
112
144
`Fix:` Follow the instructions described above in the section `Build the Docker Container`.
113
145
114
-
### No results after verification, or 'cannot create directory '../results/difftrees': Permission denied'
146
+
### No results after verification, or 'cannot create directory '../results/validation/current': Permission denied'
115
147
`Problem:` This problem can occur due to how permissions are managed inside the Docker container. More specifically, it will appear, if Docker is executed with elevated permissions (i.e., `sudo`) and if there is no [results](results) directory because it was deleted manually. In this case, Docker will create the directory with elevated permissions, and the Docker user has no permissions to access the directory.
116
148
117
149
`Fix:` If there is a _results_ directory delete it with elevated permission (e.g., `sudo rm -r results`).
Copy file name to clipboardExpand all lines: README.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ This replication package consists of four parts:
16
16
4.**Dataset Overview**: We provide an overview of the 44 inspected datasets with updated links to their repositories in the file [docs/datasets.md][dataset].
17
17
18
18
## 1. DiffDetective
19
-
_DiffDetective_ is a java library and command-line tool to parse and classify edits to variability in git histories of preprocessor-based software product lines by creating [variation tree diffs][difftree_class] and operating on them.
19
+
DiffDetective is a java library and command-line tool to parse and classify edits to variability in git histories of preprocessor-based software product lines by creating [variation tree diffs][difftree_class] and operating on them.
20
20
21
21
We offer a [Docker](https://www.docker.com/) setup to easily __replicate__ the validation performed in our paper.
22
22
In the following, we provide a quickstart guide for running the replication.
@@ -26,14 +26,14 @@ You can find detailed information on how to install Docker and build the contain
26
26
Start the docker deamon.
27
27
Clone this repository.
28
28
Open a terminal and navigate to the root directory of this repository.
29
-
To build the Docker container you can run the _build_ script corresponding to your OS.
29
+
To build the Docker container you can run the `build` script corresponding to your operating system.
30
30
#### Windows:
31
31
`.\build.bat`
32
32
#### Linux/Mac (bash):
33
33
`./build.sh`
34
34
35
35
### 1.2 Start the replication
36
-
To execute the replication you can run the _execute_ script corresponding to your OS with `replication` as first argument.
36
+
To execute the replication you can run the `execute` script corresponding to your operating system with `replication` as first argument.
37
37
38
38
#### Windows:
39
39
`.\execute.bat replication`
@@ -42,9 +42,9 @@ To execute the replication you can run the _execute_ script corresponding to you
42
42
43
43
> WARNING!
44
44
> The replication will at least require an hour and might require up to a day depending on your system.
45
-
> Therefore, we offer a short verification (5-10 minutes) which runs _DiffDetective_ on only four of the datasets.
45
+
> Therefore, we offer a short verification (5-10 minutes) which runs DiffDetective on only four of the datasets.
46
46
> You can run it by providing "verification" as argument instead of "replication" (i.e., `.\execute.bat verification`, `./execute.sh verification`).
47
-
> If you want to stop the replication, you can call the provided script for stopping the container in a separate terminal.
47
+
> If you want to stop the execution, you can call the provided script for stopping the container in a separate terminal.
48
48
> When restarted, the replication will continue processing by restarting at the last unfinished repository.
49
49
> #### Windows:
50
50
> `.\stop-execution.bat`
@@ -98,7 +98,7 @@ The forked repositories are listed in the [replication datasets](docs/replicatio
98
98
These repositories are used when running the replication as described under `1.2`.
99
99
100
100
## 5. Running DiffDetective on Custom Datasets
101
-
You can also run _DiffDetective_ on other datasets by providing the path to the dataset file as first argument to the execution script:
101
+
You can also run DiffDetective on other datasets by providing the path to the dataset file as first argument to the execution script:
0 commit comments