merge all into single repo

This commit is contained in:
fixminer
2020-04-06 20:40:32 +02:00
parent 9dcdb6aafc
commit 3c91dd7ea3
524 changed files with 1272301 additions and 1531 deletions
+40 -46
View File
@@ -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 ![Build Status](https://travis-ci.org/GumTreeDiff/gumtree.svg?branch=master) [![Coverage Status](https://coveralls.io/repos/GumTreeDiff/gumtree/badge.svg?branch=master)](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)