Merge remote-tracking branch 'origin/master' into master
commit
ead70696ec
@ -0,0 +1,20 @@
|
|||||||
|
package ru.ulstu.extractor.model;
|
||||||
|
|
||||||
|
public class CommitEntityStatistic {
|
||||||
|
private Boolean entity;
|
||||||
|
private Long countCommit;
|
||||||
|
|
||||||
|
public CommitEntityStatistic(Boolean entity, Long countCommit) {
|
||||||
|
this.entity = entity;
|
||||||
|
this.countCommit = countCommit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getEntity() {
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getCountCommit() {
|
||||||
|
return countCommit;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,55 +0,0 @@
|
|||||||
package ru.ulstu.extractor.model;
|
|
||||||
|
|
||||||
import org.eclipse.jgit.diff.DiffEntry;
|
|
||||||
import org.eclipse.jgit.diff.DiffFormatter;
|
|
||||||
import org.eclipse.jgit.revwalk.RevCommit;
|
|
||||||
import org.eclipse.jgit.revwalk.RevWalk;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class NewClass {
|
|
||||||
|
|
||||||
private final RevWalk revWalk;
|
|
||||||
private final DiffFormatter diffFormatter;
|
|
||||||
|
|
||||||
private NewClass(RevWalk revWalk, DiffFormatter diffFormatter) {
|
|
||||||
this.revWalk = revWalk;
|
|
||||||
this.diffFormatter = diffFormatter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<String> getModified(final RevCommit commit) throws IOException {
|
|
||||||
final RevCommit[] parents = commit.getParents();
|
|
||||||
final Set<String> result = new HashSet<>();
|
|
||||||
if (parents.length == 1) { // merge commit if length > 1
|
|
||||||
final RevCommit parent = revWalk.parseCommit(parents[0].getId());
|
|
||||||
// get diff of this commit to its parent, as list of paths
|
|
||||||
final List<DiffEntry> diffs = getDiffEntries(commit, parent);
|
|
||||||
for (final DiffEntry diff : diffs) {
|
|
||||||
final String changePath = diff.getChangeType().equals(DiffEntry.ChangeType.DELETE) ? diff.getOldPath() : diff.getNewPath();
|
|
||||||
result.add(changePath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<DiffEntry> getDiffEntries(final RevCommit commit, final RevCommit parent) {
|
|
||||||
try {
|
|
||||||
return diffFormatter.scan(parent.getTree(), commit.getTree());
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Первая основная таблица: коммит, автор, дата
|
|
||||||
// Вторая таблица : коммит, имя файла, добавленные строки, удаленные строки
|
|
||||||
|
|
||||||
// Фильтрация коммитов по автору(только основная таблица)
|
|
||||||
// Фильтрация коммитов по дате
|
|
||||||
// Фильтрация коммитов по именни файла, или добавленные строки.
|
|
||||||
|
|
Loading…
Reference in New Issue