List of usage examples for org.eclipse.jgit.diff DiffEntry getScore
public int getScore()
From source file:MyDiffFormatter.java
License:Eclipse Distribution License
private void formatHeader(ByteArrayOutputStream o, DiffEntry ent) throws IOException { final ChangeType type = ent.getChangeType(); final String oldp = ent.getOldPath(); final String newp = ent.getNewPath(); final FileMode oldMode = ent.getOldMode(); final FileMode newMode = ent.getNewMode(); formatGitDiffFirstHeaderLine(o, type, oldp, newp); if ((type == MODIFY || type == COPY || type == RENAME) && !oldMode.equals(newMode)) { o.write(encodeASCII("old mode ")); //$NON-NLS-1$ oldMode.copyTo(o);//from w w w . ja v a 2 s.c o m o.write('\n'); o.write(encodeASCII("new mode ")); //$NON-NLS-1$ newMode.copyTo(o); o.write('\n'); } switch (type) { case ADD: o.write(encodeASCII("new file mode ")); //$NON-NLS-1$ newMode.copyTo(o); o.write('\n'); break; case DELETE: o.write(encodeASCII("deleted file mode ")); //$NON-NLS-1$ oldMode.copyTo(o); o.write('\n'); break; case RENAME: o.write(encodeASCII("similarity index " + ent.getScore() + "%")); //$NON-NLS-1$ //$NON-NLS-2$ o.write('\n'); o.write(encode("rename from " + quotePath(oldp))); //$NON-NLS-1$ o.write('\n'); o.write(encode("rename to " + quotePath(newp))); //$NON-NLS-1$ o.write('\n'); break; case COPY: o.write(encodeASCII("similarity index " + ent.getScore() + "%")); //$NON-NLS-1$ //$NON-NLS-2$ o.write('\n'); o.write(encode("copy from " + quotePath(oldp))); //$NON-NLS-1$ o.write('\n'); o.write(encode("copy to " + quotePath(newp))); //$NON-NLS-1$ o.write('\n'); break; case MODIFY: if (0 < ent.getScore()) { o.write(encodeASCII("dissimilarity index " //$NON-NLS-1$ + (100 - ent.getScore()) + "%")); //$NON-NLS-1$ o.write('\n'); } break; } if (ent.getOldId() != null && !ent.getOldId().equals(ent.getNewId())) { formatIndexLine(o, ent); } }
From source file:com.google.gitiles.CommitJsonData.java
License:Open Source License
private static List<Diff> toJsonData(DiffList dl) { if (dl.entries == null) { return ImmutableList.of(); }/* w w w. j ava2 s .c o m*/ List<Diff> result = Lists.newArrayListWithCapacity(dl.entries.size()); for (DiffEntry de : dl.entries) { Diff d = new Diff(); d.type = de.getChangeType().name().toLowerCase(); d.oldId = de.getOldId().name(); d.oldMode = de.getOldMode().getBits(); d.oldPath = de.getOldPath(); d.newId = de.getNewId().name(); d.newMode = de.getNewMode().getBits(); d.newPath = de.getNewPath(); switch (de.getChangeType()) { case COPY: case RENAME: d.score = de.getScore(); break; default: break; } result.add(d); } return result; }
From source file:com.madgag.agit.diff.LineContextDiffer.java
License:Open Source License
private void writeDiffHeader(OutputStream o, DiffEntry ent) throws IOException { String oldName = quotePath("a/" + ent.getOldPath()); String newName = quotePath("b/" + ent.getNewPath()); o.write(encode("diff --git " + oldName + " " + newName + "\n")); switch (ent.getChangeType()) { case ADD://from w w w . j a v a 2s . c o m o.write(encodeASCII("new file mode ")); ent.getNewMode().copyTo(o); o.write('\n'); break; case DELETE: o.write(encodeASCII("deleted file mode ")); ent.getOldMode().copyTo(o); o.write('\n'); break; case RENAME: o.write(encodeASCII("similarity index " + ent.getScore() + "%")); o.write('\n'); o.write(encode("rename from " + quotePath(ent.getOldPath()))); o.write('\n'); o.write(encode("rename to " + quotePath(ent.getNewPath()))); o.write('\n'); break; case COPY: o.write(encodeASCII("similarity index " + ent.getScore() + "%")); o.write('\n'); o.write(encode("copy from " + quotePath(ent.getOldPath()))); o.write('\n'); o.write(encode("copy to " + quotePath(ent.getNewPath()))); o.write('\n'); if (!ent.getOldMode().equals(ent.getNewMode())) { o.write(encodeASCII("new file mode ")); ent.getNewMode().copyTo(o); o.write('\n'); } break; case MODIFY: int score = ent.getScore(); if (0 < score && score <= 100) { o.write(encodeASCII("dissimilarity index " + (100 - score) + "%")); o.write('\n'); } break; } switch (ent.getChangeType()) { case RENAME: case MODIFY: if (!ent.getOldMode().equals(ent.getNewMode())) { o.write(encodeASCII("old mode ")); ent.getOldMode().copyTo(o); o.write('\n'); o.write(encodeASCII("new mode ")); ent.getNewMode().copyTo(o); o.write('\n'); } } o.write(encodeASCII("index " // + format(ent.getOldId()) // + ".." // + format(ent.getNewId()))); if (ent.getOldMode().equals(ent.getNewMode())) { o.write(' '); ent.getNewMode().copyTo(o); } o.write('\n'); o.write(encode("--- " + oldName + '\n')); o.write(encode("+++ " + newName + '\n')); }
From source file:jbenchmarker.trace.git.model.Entry.java
License:Open Source License
public Entry(DiffEntry e) { type = e.getChangeType(); newPath = e.getNewPath(); oldPath = e.getOldPath(); score = e.getScore(); }
From source file:org.eclipse.orion.server.git.servlets.Diff.java
License:Eclipse Distribution License
static void nameStatus(PrintWriter out, List<DiffEntry> files) { for (DiffEntry ent : files) { switch (ent.getChangeType()) { case ADD: out.println("A\t" + ent.getNewPath()); //$NON-NLS-1$ break; case DELETE: out.println("D\t" + ent.getOldPath()); //$NON-NLS-1$ break; case MODIFY: out.println("M\t" + ent.getNewPath()); //$NON-NLS-1$ break; case COPY: out.format("C%1$03d\t%2$s\t%3$s", ent.getScore(), //$NON-NLS-1$ ent.getOldPath(), ent.getNewPath()); out.println();//from ww w . ja va2s. c o m break; case RENAME: out.format("R%1$03d\t%2$s\t%3$s", ent.getScore(), //$NON-NLS-1$ ent.getOldPath(), ent.getNewPath()); out.println(); break; } } }
From source file:org.kuali.student.git.tools.GitExtractor.java
License:Educational Community License
public void extractDifference(String targetTagName, String copyFromTagName) throws MissingObjectException, IncorrectObjectTypeException, IOException { RevTree target = extractTag(targetTagName); RevTree copyFrom = extractTag(copyFromTagName); DiffFormatter formatter = new DiffFormatter(System.out); formatter.setRepository(repository); formatter.setDetectRenames(true);/* w w w . j a v a2 s.c o m*/ formatter.setDiffAlgorithm(DiffAlgorithm.getAlgorithm(SupportedAlgorithm.MYERS)); formatter.setDiffComparator(RawTextComparator.WS_IGNORE_ALL); List<DiffEntry> results = formatter.scan(target, copyFrom); for (DiffEntry entry : results) { if (entry.getChangeType().equals(ChangeType.COPY)) { AbbreviatedObjectId copyFromBlobId = entry.getOldId(); // Cscore:md5:target-path:copy-from-path log.info(String.format("C%d:%s:%s:%s", entry.getScore(), "md5", entry.getNewPath(), entry.getOldPath())); } else if (entry.getChangeType().equals(ChangeType.MODIFY)) { // Cscore:md5:target-path:copy-from-path log.info(String.format("M%d:%s:%s:%s", entry.getScore(), "md5", entry.getNewPath(), entry.getOldPath())); } } }
From source file:svnserver.repository.git.GitRepository.java
License:GNU General Public License
@NotNull private Map<String, String> collectRename(@NotNull GitFile oldTree, @NotNull GitFile newTree) throws IOException { if (!renameDetection) { return Collections.emptyMap(); }//from w w w . j a v a 2 s .c o m final GitObject<ObjectId> oldTreeId = oldTree.getObjectId(); final GitObject<ObjectId> newTreeId = newTree.getObjectId(); if (oldTreeId == null || newTreeId == null || !Objects.equals(oldTreeId.getRepo(), newTreeId.getRepo())) { return Collections.emptyMap(); } final TreeWalk tw = new TreeWalk(repository); tw.setRecursive(true); tw.addTree(oldTree.getObjectId().getObject()); tw.addTree(newTree.getObjectId().getObject()); final RenameDetector rd = new RenameDetector(repository); rd.addAll(DiffEntry.scan(tw)); final Map<String, String> result = new HashMap<>(); for (DiffEntry diff : rd.compute(tw.getObjectReader(), null)) { if (diff.getScore() >= rd.getRenameScore()) { result.put(StringHelper.normalize(diff.getNewPath()), StringHelper.normalize(diff.getOldPath())); } } return result; }
From source file:util.DifferenceComputer.java
License:Apache License
public static List<DiffEntry> getChangedFilesBetweenTwoCommits(String repoPath, ObjectId ancestor, ObjectId commit) {//from ww w.j a v a2s .c om List<DiffEntry> diffs = null; try { // The {tree} will return the underlying tree-id instead of the commit-id itself! // For a description of what the carets do see e.g. http://www.paulboxley.com/blog/2011/06/git-caret-and-tilde // This means we are selecting the parent of the parent of the parent of the parent of current HEAD and // take the tree-ish of it Git git = Git.open(new File(repoPath)); Repository repository = git.getRepository(); //ObjectId oldHead = repository.resolve(repository.findRef(branchToLookInto).getObjectId().getName()+"^^{tree}");//http://download.eclipse.org/jgit/site/4.2.0.201601211800-r/apidocs/org/eclipse/jgit/lib/Repository.html#resolve(java.lang.String) //ObjectId head = repository.resolve(repository.findRef(branchToLookInto).getObjectId().getName()+"^{tree}"); ObjectId oldHead = repository.resolve(ancestor.getName() + "^{tree}");//http://download.eclipse.org/jgit/site/4.2.0.201601211800-r/apidocs/org/eclipse/jgit/lib/Repository.html#resolve(java.lang.String) ObjectId head = repository.resolve(commit.getName() + "^{tree}"); System.out.println("Printing diff between tree: " + oldHead + "and" + head); // prepare the two iterators to compute the diff between ObjectReader reader = repository.newObjectReader(); CanonicalTreeParser oldTreeIter = new CanonicalTreeParser(); oldTreeIter.reset(reader, oldHead); CanonicalTreeParser newTreeIter = new CanonicalTreeParser(); newTreeIter.reset(reader, head); // finally get the list of changed files git = new Git(repository); diffs = git.diff().setNewTree(newTreeIter).setOldTree(oldTreeIter).call(); int changedFiles = 0; for (DiffEntry diff : diffs) { System.out.println("Entry: " + diff); System.out.println("getNewPath: " + diff.getNewPath()); System.out.println("getScore: " + diff.getScore()); System.out.println("getChangeType: " + diff.getChangeType()); System.out.println("getNewMode: " + diff.getNewMode()); System.out.println("getPath: " + diff.getPath(null)); changedFiles++; } System.out.println("Changed Files: " + changedFiles); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Done"); return diffs; }