package bluej.groupwork.git;

import bluej.groupwork.HistoryInfo;
import bluej.groupwork.LogHistoryListener;
import bluej.groupwork.TeamworkCommandError;
import bluej.groupwork.TeamworkCommandResult;
import bluej.utility.Debug;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.treewalk.TreeWalk;


| A Git history command. | | @author Fabio Heday | public class GitHistoryCommand extends GitCommand{ private final LogHistoryListener listener; public GitHistoryCommand(GitRepository repository, LogHistoryListener listener) { super(repository); this.listener = listener; } @Override public TeamworkCommandResult getResult() { try (Git repo = Git.open(this.getRepository().getProjectPath())) { Iterable<RevCommit> logs = repo.log().call(); logs.forEach((RevCommit rev) -> { ArrayList<String> files = new ArrayList<>(); try (TreeWalk treeWalk = new TreeWalk(repo.getRepository())){ treeWalk.addTree(rev.getTree()); boolean hasNext = treeWalk.next(); while (hasNext){ files.add(treeWalk.getPathString()); hasNext = treeWalk.next(); } } catch (IOException ex) { Debug.reportError(ex.getMessage()); } Date date = new Date(rev.getCommitTime() * 1000L); String dateString = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss").format(date); HistoryInfo info = new HistoryInfo(files.toArray(new String[files.size()]), "", dateString, rev.getAuthorIdent().getName(), rev.getFullMessage()); listener.logInfoAvailable(info); }); } catch (GitAPIException | IOException ex) { return new TeamworkCommandError(ex.getMessage(), ex.getLocalizedMessage()); } return new TeamworkCommandResult(); } }
top, use, map, class GitHistoryCommand

.   GitHistoryCommand
.   getResult




73 neLoCode + 2 LoComm