merge all into single repo
This commit is contained in:
@@ -1,46 +1,40 @@
|
||||
# Code of FixMiner
|
||||
|
||||
Reference: [FixMiner: Mining Relevant Fix Patterns for Automated Program Repair](http://arxiv.org/pdf/1810.01791) (Empirical Software Engineering, [doi:10.1007/s10664-019-09780-z](https://doi.org/10.1007/s10664-019-09780-z))
|
||||
|
||||
## Prerequisites
|
||||
|
||||
redis should be installed on the machine.
|
||||
|
||||
## Build
|
||||
|
||||
Clone and install `edu.lu.uni:simple-utils`.
|
||||
|
||||
```
|
||||
git clone https://github.com/SerVal-DTF/simple-utils
|
||||
cd simple-utils
|
||||
mvn install
|
||||
```
|
||||
|
||||
Clone and install the modified version of Gumtree.
|
||||
|
||||
```
|
||||
git clone https://github.com/SerVal-DTF/gumtree
|
||||
cd gumtree
|
||||
mvn install
|
||||
```
|
||||
|
||||
Clone and install fixminer.
|
||||
|
||||
```
|
||||
git clone https://github.com/SerVal-DTF/fixminer_source
|
||||
cd fixminer_source
|
||||
mvn install
|
||||
```
|
||||
|
||||
## Main classes
|
||||
|
||||
* `src/main/java/edu/lu/uni/serval/fixminer/Launcher.java` computes the edit scripts from local file pairs and pushes them to a Redis database:
|
||||
* first run `redis-server`
|
||||
* edit `app.properties` in particular `portInner`, `portDumps`, `inputPath`
|
||||
* `mvn exec:java -Dexec.mainClass=edu.lu.uni.serval.fixminer.Launcher -Dexec.args="../fixminer-core/python/data/app.properties RICHEDITSCRIPT dummy"`
|
||||
* `src/main/java/edu/lu/uni/serval/utils/ClusterToPattern.java` extracts the Rich Edit Script from the Gumtree output from the database
|
||||
* `src/main/java/edu/lu/uni/serval/utils/CallShell.java`
|
||||
* `src/main/java/edu/lu/uni/serval/fixminer/TestTreeLoader.java`
|
||||
* `src/main/java/edu/lu/uni/serval/fixminer/jobs/PatternExtractor.java`
|
||||
* `src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java`
|
||||
|
||||
# GumTree  [](https://coveralls.io/r/GumTreeDiff/gumtree?branch=master)
|
||||
|
||||
GumTree is a complete framework to deal with source code as trees and compute differences between them. It includes possibilities such as:
|
||||
* converting a source file into a language-agnostic tree format
|
||||
* export the produced trees in various formats
|
||||
* compute the differences between the trees
|
||||
* export these differences in various formats
|
||||
* visualize these differences graphically
|
||||
|
||||
Compared to classical code differencing tools, it has two important particularities:
|
||||
* it works on a tree structure rather than a text structure,
|
||||
* it can detect moved or renamed elements in addition of deleted and inserted elements.
|
||||
|
||||
We already deal with a wide range of languages: Java, C, JavaScript and Ruby. More languages are coming soon, if you want to help contact [me](www.labri.fr/perso/falleri).
|
||||
|
||||
## Citing GumTree
|
||||
|
||||
We are researchers, therefore if you use GumTree in an academic work we would be really glad if you cite our seminal paper using the following bibtex:
|
||||
|
||||
```
|
||||
@inproceedings{DBLP:conf/kbse/FalleriMBMM14,
|
||||
author = {Jean{-}R{\'{e}}my Falleri and
|
||||
Flor{\'{e}}al Morandat and
|
||||
Xavier Blanc and
|
||||
Matias Martinez and
|
||||
Martin Monperrus},
|
||||
title = {Fine-grained and accurate source code differencing},
|
||||
booktitle = {{ACM/IEEE} International Conference on Automated Software Engineering,
|
||||
{ASE} '14, Vasteras, Sweden - September 15 - 19, 2014},
|
||||
pages = {313--324},
|
||||
year = {2014},
|
||||
url = {http://doi.acm.org/10.1145/2642937.2642982},
|
||||
doi = {10.1145/2642937.2642982}
|
||||
}
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
Please consult our [wiki](https://github.com/GumTreeDiff/gumtree/wiki)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user