org.eclipse.jgit.util.io.DisabledOutputStream Java Examples
The following examples show how to use
org.eclipse.jgit.util.io.DisabledOutputStream.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: GitServiceImpl.java From RefactoringMiner with MIT License | 6 votes |
@Override public Churn churn(Repository repository, RevCommit currentCommit) throws Exception { if (currentCommit.getParentCount() > 0) { ObjectId oldTree = currentCommit.getParent(0).getTree(); ObjectId newTree = currentCommit.getTree(); final TreeWalk tw = new TreeWalk(repository); tw.setRecursive(true); tw.addTree(oldTree); tw.addTree(newTree); List<DiffEntry> diffs = DiffEntry.scan(tw); DiffFormatter diffFormatter = new DiffFormatter(DisabledOutputStream.INSTANCE); diffFormatter.setRepository(repository); diffFormatter.setContext(0); int addedLines = 0; int deletedLines = 0; for (DiffEntry entry : diffs) { FileHeader header = diffFormatter.toFileHeader(entry); List<? extends HunkHeader> hunks = header.getHunks(); for (HunkHeader hunkHeader : hunks) { for (Edit edit : hunkHeader.toEditList()) { if (edit.getType() == Type.INSERT) { addedLines += edit.getLengthB(); } else if (edit.getType() == Type.DELETE) { deletedLines += edit.getLengthA(); } else if (edit.getType() == Type.REPLACE) { deletedLines += edit.getLengthA(); addedLines += edit.getLengthB(); } } } } diffFormatter.close(); return new Churn(addedLines, deletedLines); } return null; }
Example #2
Source File: CommitUtil.java From SZZUnleashed with MIT License | 5 votes |
/** * Extract a list containing all Edits that exists between two revisions. * * @param entry a diffentry which contains information about a diff between two revisions. * @return an EditList containing all Edits. */ public EditList getDiffEditList(DiffEntry entry) throws IOException, GitAPIException { DiffFormatter form = new DiffFormatter(DisabledOutputStream.INSTANCE); form.setRepository(this.git.getRepository()); FileHeader fh = form.toFileHeader(entry); return fh.toEditList(); }
Example #3
Source File: GitRepoMetaData.java From GitFx with Apache License 2.0 | 5 votes |
public ArrayList<String> getShortMessage() { for (RevCommit revision : walk) { shortMessage.add(revision.getShortMessage()); //[LOG] logger.debug(revision.getShortMessage()); DiffFormatter df = new DiffFormatter(DisabledOutputStream.INSTANCE); df.setRepository(repository); df.setDiffComparator(RawTextComparator.DEFAULT); df.setDetectRenames(true); RevCommit parent = null; if(revision.getParentCount()!=0) { try { parent = walk.parseCommit(revision.getParent(0).getId()); RevTree tree = revision.getTree(); List<DiffEntry> diffs = df.scan(parent.getTree(), revision.getTree()); for (DiffEntry diff : diffs) { String changeType = diff.getChangeType().name(); if(changeType.equals(ADD)|| changeType.equals(MODIFY)) { //[LOG] logger.debug(diff.getChangeType().name()); //[LOG] logger.debug(diff.getNewPath()); tempCommitHistory.add(diff.getNewPath()); } } }catch (IOException ex) { //[LOG] logger.debug("IOException", ex); } } commitSHA.add(commitCount,revision.name()); commitHistory.add(commitCount++,new ArrayList<String>(tempCommitHistory)); tempCommitHistory.clear(); } walk.reset(); return shortMessage; }
Example #4
Source File: GitSCM.java From repositoryminer with Apache License 2.0 | 5 votes |
private List<Change> getChangesForCommitedFiles(String hash) throws IOException { RevWalk revWalk = new RevWalk(git.getRepository()); RevCommit commit = revWalk.parseCommit(ObjectId.fromString(hash)); if (commit.getParentCount() > 1) { revWalk.close(); return new ArrayList<Change>(); } RevCommit parentCommit = commit.getParentCount() > 0 ? revWalk.parseCommit(ObjectId.fromString(commit.getParent(0).getName())) : null; DiffFormatter df = new DiffFormatter(DisabledOutputStream.INSTANCE); df.setBinaryFileThreshold(2048); df.setRepository(git.getRepository()); df.setDiffComparator(RawTextComparator.DEFAULT); df.setDetectRenames(true); List<DiffEntry> diffEntries = df.scan(parentCommit, commit); df.close(); revWalk.close(); List<Change> changes = new ArrayList<Change>(); for (DiffEntry entry : diffEntries) { Change change = new Change(entry.getNewPath(), entry.getOldPath(), 0, 0, ChangeType.valueOf(entry.getChangeType().name())); analyzeDiff(change, entry); changes.add(change); } return changes; }
Example #5
Source File: JGitHelper.java From go-plugins with Apache License 2.0 | 5 votes |
private Revision getRevisionObj(Repository repository, RevCommit commit) throws IOException { String commitSHA = commit.getName(); Date commitTime = commit.getAuthorIdent().getWhen(); String comment = commit.getFullMessage().trim(); String user = commit.getAuthorIdent().getName(); String emailId = commit.getAuthorIdent().getEmailAddress(); List<ModifiedFile> modifiedFiles = new ArrayList<ModifiedFile>(); if (commit.getParentCount() == 0) { TreeWalk treeWalk = new TreeWalk(repository); treeWalk.addTree(commit.getTree()); treeWalk.setRecursive(false); while (treeWalk.next()) { modifiedFiles.add(new ModifiedFile(treeWalk.getPathString(), "added")); } } else { RevWalk rw = new RevWalk(repository); RevCommit parent = rw.parseCommit(commit.getParent(0).getId()); DiffFormatter diffFormatter = new DiffFormatter(DisabledOutputStream.INSTANCE); diffFormatter.setRepository(repository); diffFormatter.setDiffComparator(RawTextComparator.DEFAULT); diffFormatter.setDetectRenames(true); List<DiffEntry> diffEntries = diffFormatter.scan(parent.getTree(), commit.getTree()); for (DiffEntry diffEntry : diffEntries) { modifiedFiles.add(new ModifiedFile(diffEntry.getNewPath(), getAction(diffEntry.getChangeType().name()))); } } return new Revision(commitSHA, commitTime, comment, user, emailId, modifiedFiles); }
Example #6
Source File: GitHistoryParser.java From proctor with Apache License 2.0 | 5 votes |
static GitHistoryParser fromRepository(final Repository repository, final String testDefinitionDirectory) { final RevWalk revWalk = new RevWalk(repository); final DiffFormatter df = new DiffFormatter(DisabledOutputStream.INSTANCE); df.setRepository(repository); df.setDiffComparator(RawTextComparator.DEFAULT); df.setDetectRenames(false); // to regard rename changes as add and remove return new GitHistoryParser(revWalk, df, testDefinitionDirectory); }
Example #7
Source File: GitHelper.java From repairnator with MIT License | 4 votes |
public void computePatchStats(JobStatus jobStatus, Git git, RevCommit headRev, RevCommit commit) { try { ObjectReader reader = git.getRepository().newObjectReader(); CanonicalTreeParser oldTreeIter = new CanonicalTreeParser(); oldTreeIter.reset(reader, headRev.getTree()); CanonicalTreeParser newTreeIter = new CanonicalTreeParser(); newTreeIter.reset(reader, commit.getTree()); DiffFormatter diffFormatter = new DiffFormatter(DisabledOutputStream.INSTANCE); diffFormatter.setRepository(git.getRepository()); diffFormatter.setContext(0); List<DiffEntry> entries = diffFormatter.scan(newTreeIter, oldTreeIter); int nbLineAdded = 0; int nbLineDeleted = 0; Set<String> changedFiles = new HashSet<>(); Set<String> addedFiles = new HashSet<>(); Set<String> deletedFiles = new HashSet<>(); for (DiffEntry entry : entries) { String path; if (entry.getChangeType() == DiffEntry.ChangeType.DELETE) { path = entry.getOldPath(); } else { path = entry.getNewPath(); } if (!jobStatus.isCreatedFileToPush(path) && path.endsWith(".java")) { if (entry.getChangeType() == DiffEntry.ChangeType.MODIFY || entry.getChangeType() == DiffEntry.ChangeType.RENAME) { changedFiles.add(path); } else if (entry.getChangeType() == DiffEntry.ChangeType.ADD || entry.getChangeType() == DiffEntry.ChangeType.COPY) { addedFiles.add(path); } else if (entry.getChangeType() == DiffEntry.ChangeType.DELETE) { deletedFiles.add(path); } FileHeader fileHeader = diffFormatter.toFileHeader(entry); List<? extends HunkHeader> hunks = fileHeader.getHunks(); for (HunkHeader hunk : hunks) { EditList edits = hunk.toEditList(); for (Edit edit : edits) { switch (edit.getType()) { case INSERT: nbLineAdded += edit.getLengthB(); break; case DELETE: nbLineDeleted += edit.getLengthA(); break; case REPLACE: int diff = edit.getLengthA() - edit.getLengthB(); if (diff > 0) { nbLineAdded += edit.getLengthA(); nbLineDeleted += edit.getLengthB(); } else { nbLineDeleted += edit.getLengthA(); nbLineAdded += edit.getLengthB(); } break; case EMPTY: break; } } } } } PatchDiff patchDiff = jobStatus.getProperties().getPatchDiff(); patchDiff.getFiles().setNumberAdded(addedFiles.size()); patchDiff.getFiles().setNumberChanged(changedFiles.size()); patchDiff.getFiles().setNumberDeleted(deletedFiles.size()); patchDiff.getLines().setNumberAdded(nbLineAdded); patchDiff.getLines().setNumberDeleted(nbLineDeleted); } catch (IOException e) { this.getLogger().error("Error while computing stat on the patch.", e); } }