|
|
|
@ -98,9 +98,11 @@ public class GitRepositoryService {
|
|
|
|
|
return branches;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<Commit> getCommits(String repositoryUrl, String branchName) throws GitAPIException, IOException {
|
|
|
|
|
public List<Commit> getCommits(String repositoryUrl, String branchName, int commitsFrom, int commitsTo, boolean needUpdate) throws GitAPIException, IOException {
|
|
|
|
|
LOG.debug("Get commits of {}. Branch {}", repositoryUrl, branchName);
|
|
|
|
|
cloneOrUpdateRepo(repositoryUrl, branchName);
|
|
|
|
|
if (needUpdate) {
|
|
|
|
|
cloneOrUpdateRepo(repositoryUrl, branchName);
|
|
|
|
|
}
|
|
|
|
|
Repository localRepo = new FileRepository(getProjectGitDirectory(repositoryUrl));
|
|
|
|
|
Git git = new Git(localRepo);
|
|
|
|
|
|
|
|
|
@ -110,9 +112,13 @@ public class GitRepositoryService {
|
|
|
|
|
List<Commit> list = new ArrayList<>();
|
|
|
|
|
RevCommit prevCommit = null;
|
|
|
|
|
LOG.debug("Start analyse {} commits", commits.size());
|
|
|
|
|
int counter = commits.size();
|
|
|
|
|
for (RevCommit revCommit : commits) {
|
|
|
|
|
LOG.debug(" {} of {} commits", counter--, commits.size());
|
|
|
|
|
commitsFrom = commitsFrom > commits.size() ? commits.size() - 1 : commitsFrom;
|
|
|
|
|
commitsFrom = Math.max(commitsFrom, 0);
|
|
|
|
|
commitsTo = commitsTo > commits.size() ? commits.size() - 1 : commitsTo;
|
|
|
|
|
commitsTo = Math.max(commitsTo, 0);
|
|
|
|
|
for (int i = commitsFrom; i < commitsTo; i++) {
|
|
|
|
|
RevCommit revCommit = commits.get(i);
|
|
|
|
|
LOG.debug(" {} to {} commits", i, commitsTo);
|
|
|
|
|
Commit commit = new Commit(
|
|
|
|
|
revCommit.getFullMessage(),
|
|
|
|
|
new Author(revCommit.getAuthorIdent().getName()),
|
|
|
|
@ -229,7 +235,7 @@ public class GitRepositoryService {
|
|
|
|
|
if (laterCommit == null || earlierCommit == null) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
String output = null;
|
|
|
|
|
String output;
|
|
|
|
|
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
|
|
|
|
|
DiffFormatter diffFormatter = new DiffFormatter(out);
|
|
|
|
|
diffFormatter.setRepository(localRepo);
|
|
|
|
@ -252,13 +258,8 @@ public class GitRepositoryService {
|
|
|
|
|
if (maybeFileName.isPresent()) {
|
|
|
|
|
fileChange = new FileChange();
|
|
|
|
|
fileChange.setFile(maybeFileName.get());
|
|
|
|
|
Future<Boolean> futureEntity = executorService.submit(() -> {
|
|
|
|
|
return structuralUnitService.containsEntity(getContent(repository, commit, maybeFileName.get()));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
Future<Boolean> futureBL = executorService.submit(() -> {
|
|
|
|
|
return structuralUnitService.containsBusinessLogic(getContent(repository, commit, maybeFileName.get()));
|
|
|
|
|
});
|
|
|
|
|
Future<Boolean> futureEntity = executorService.submit(() -> structuralUnitService.containsEntity(getContent(repository, commit, maybeFileName.get())));
|
|
|
|
|
Future<Boolean> futureBL = executorService.submit(() -> structuralUnitService.containsBusinessLogic(getContent(repository, commit, maybeFileName.get())));
|
|
|
|
|
try {
|
|
|
|
|
fileChange.setContainsBusinessLogic(futureBL.get());
|
|
|
|
|
fileChange.setContainsEntity(futureEntity.get());
|
|
|
|
|