private boolean combineA(List<Edit> e, int i) { return e.get(i).getBeginA() - e.get(i - 1).getEndA() <= 2 * context; }
final Edit endEdit = edits.get(endIdx); int aCur = (int) Math.max(0, (long) curEdit.getBeginA() - context); int bCur = (int) Math.max(0, (long) curEdit.getBeginB() - context); final int aEnd = (int) Math.min(a.size(), (long) endEdit.getEndA() + context); if (aCur < curEdit.getBeginA() || endIdx + 1 < curIdx) { writeContextLine(a, aCur); if (isEndOfLineMissing(a, aCur))
if (oursEdit.getEndA() < theirsEdit.getBeginA()) { if (current != oursEdit.getBeginA()) { result.add(0, current, oursEdit.getBeginA(), ConflictState.NO_CONFLICT); current = oursEdit.getEndA(); oursEdit = nextEdit(baseToOurs); } else if (theirsEdit.getEndA() < oursEdit.getBeginA()) { if (current != theirsEdit.getBeginA()) { result.add(0, current, theirsEdit.getBeginA(), ConflictState.NO_CONFLICT); if (oursEdit.getBeginA() != current && theirsEdit.getBeginA() != current) { result.add(0, current, Math.min(oursEdit.getBeginA(), theirsEdit.getBeginA()), ConflictState.NO_CONFLICT); if (oursEdit.getBeginA() < theirsEdit.getBeginA()) { theirsBeginB -= theirsEdit.getBeginA() - oursEdit.getBeginA(); } else { oursBeginB -= oursEdit.getBeginA() - theirsEdit.getBeginA(); Edit nextTheirsEdit = nextEdit(baseToTheirs); for (;;) { if (oursEdit.getEndA() >= nextTheirsEdit.getBeginA()) { theirsEdit = nextTheirsEdit;
private boolean combineA(final List<Edit> e, final int i) { return e.get(i).getBeginA() - e.get(i - 1).getEndA() <= 2 * context; }
private boolean combineA(List<Edit> e, int i) { return e.get(i).getBeginA() - e.get(i - 1).getEndA() <= 2 * context; }
/** Sets the next edit with differences to be used. */ private void nextEdit() { if (baseLineNo >= baseEndLineNo && patchLineNo >= patchEndLineNo) { index++; if (index >= edits.size()) { currentEdit = null; } else { currentEdit = edits.get(index); baseLineNo = Math.max(0, currentEdit.getBeginA()); patchLineNo = Math.max(0, currentEdit.getBeginB()); baseEndLineNo = Math.min(baseFileRaw.size(), currentEdit.getEndA()); patchEndLineNo = Math.min(patchFileRaw.size(), currentEdit.getEndB()); } } } }
int linesAdded = 0; int linesDeleted = 0; int filesChanged = 0; try { repo = new FileRepository(new File("repo/.git")); RevWalk rw = new RevWalk(repo); RevCommit commit = rw.parseCommit(repo.resolve("486817d67b")); // Any ref will work here (HEAD, a sha1, tag, branch) RevCommit parent = rw.parseCommit(commit.getParent(0).getId()); DiffFormatter df = new DiffFormatter(DisabledOutputStream.INSTANCE); df.setRepository(repo); df.setDiffComparator(RawTextComparator.DEFAULT); df.setDetectRenames(true); List<DiffEntry> diffs; diffs = df.scan(parent.getTree(), commit.getTree()); filesChanged = diffs.size(); for (DiffEntry diff : diffs) { for (Edit edit : df.toFileHeader(diff).toEditList()) { linesDeleted += edit.getEndA() - edit.getBeginA(); linesAdded += edit.getEndB() - edit.getBeginB(); } } } catch (IOException e1) { throw new RuntimeException(e1); }
final Edit endEdit = edits.get(endIdx); int aCur = (int) Math.max(0, (long) curEdit.getBeginA() - context); int bCur = (int) Math.max(0, (long) curEdit.getBeginB() - context); final int aEnd = (int) Math.min(a.size(), (long) endEdit.getEndA() + context); if (aCur < curEdit.getBeginA() || endIdx + 1 < curIdx) { writeContextLine(a, aCur); if (isEndOfLineMissing(a, aCur))
final Edit endEdit = edits.get(endIdx); int aCur = (int) Math.max(0, (long) curEdit.getBeginA() - context); int bCur = (int) Math.max(0, (long) curEdit.getBeginB() - context); final int aEnd = (int) Math.min(a.size(), (long) endEdit.getEndA() + context); if (aCur < curEdit.getBeginA() || endIdx + 1 < curIdx) { writeContextLine(a, aCur); if (isEndOfLineMissing(a, aCur))
if (oursEdit.getEndA() < theirsEdit.getBeginA()) { if (current != oursEdit.getBeginA()) { result.add(0, current, oursEdit.getBeginA(), ConflictState.NO_CONFLICT); current = oursEdit.getEndA(); oursEdit = nextEdit(baseToOurs); } else if (theirsEdit.getEndA() < oursEdit.getBeginA()) { if (current != theirsEdit.getBeginA()) { result.add(0, current, theirsEdit.getBeginA(), ConflictState.NO_CONFLICT); if (oursEdit.getBeginA() != current && theirsEdit.getBeginA() != current) { result.add(0, current, Math.min(oursEdit.getBeginA(), theirsEdit.getBeginA()), ConflictState.NO_CONFLICT); if (oursEdit.getBeginA() < theirsEdit.getBeginA()) { theirsBeginB -= theirsEdit.getBeginA() - oursEdit.getBeginA(); } else { oursBeginB -= oursEdit.getBeginA() - theirsEdit.getBeginA(); Edit nextTheirsEdit = nextEdit(baseToTheirs); for (;;) { if (oursEdit.getEndA() >= nextTheirsEdit.getBeginA()) { theirsEdit = nextTheirsEdit;
if (oursEdit.getEndA() < theirsEdit.getBeginA()) { if (current != oursEdit.getBeginA()) { result.add(0, current, oursEdit.getBeginA(), ConflictState.NO_CONFLICT); current = oursEdit.getEndA(); oursEdit = nextEdit(baseToOurs); } else if (theirsEdit.getEndA() < oursEdit.getBeginA()) { if (current != theirsEdit.getBeginA()) { result.add(0, current, theirsEdit.getBeginA(), ConflictState.NO_CONFLICT); if (oursEdit.getBeginA() != current && theirsEdit.getBeginA() != current) { result.add(0, current, Math.min(oursEdit.getBeginA(), theirsEdit.getBeginA()), ConflictState.NO_CONFLICT); if (oursEdit.getBeginA() < theirsEdit.getBeginA()) { theirsBeginB -= theirsEdit.getBeginA() - oursEdit.getBeginA(); } else { oursBeginB -= oursEdit.getBeginA() - theirsEdit.getBeginA(); Edit nextTheirsEdit = nextEdit(baseToTheirs); for (;;) { if (oursEdit.getEndA() >= nextTheirsEdit.getBeginA()) { theirsEdit = nextTheirsEdit;
try { final String changeType = header.getChangeType().toString(); final int startA = edit.getBeginA(); final int endA = edit.getEndA(); final int startB = edit.getBeginB();