public static ArrayMemory valueOf(DiffEntry value) { ArrayMemory memory = new ArrayMemory(); memory.refOfIndex("oldId").assign(value.getOldId() == null ? Memory.NULL : valueOf(value.getOldId().toObjectId())); memory.refOfIndex("oldPath").assign(value.getOldPath()); memory.refOfIndex("oldMode").assign(value.getOldMode() == null ? Memory.NULL : StringMemory.valueOf(value.getOldMode().toString())); memory.refOfIndex("newId").assign(value.getNewId() == null ? Memory.NULL : valueOf(value.getNewId().toObjectId())); memory.refOfIndex("newPath").assign(value.getNewPath()); memory.refOfIndex("newMode").assign(value.getNewMode() == null ? Memory.NULL : StringMemory.valueOf(value.getNewMode().toString())); memory.refOfIndex("score").assign(value.getScore()); memory.refOfIndex("changeType").assign(value.getChangeType().name()); return memory; }
/** * Get the mode associated with this file. * * @param side * which mode to obtain. * @return the mode. */ public FileMode getMode(Side side) { return side == Side.OLD ? getOldMode() : getNewMode(); }
/** * Format index line * * @param o * the stream the formatter will write line data to * @param ent * the DiffEntry to create the FileHeader for * @throws java.io.IOException * writing to the supplied stream failed. */ protected void formatIndexLine(OutputStream o, DiffEntry ent) throws IOException { o.write(encodeASCII("index " // //$NON-NLS-1$ + format(ent.getOldId()) // + ".." // //$NON-NLS-1$ + format(ent.getNewId()))); if (ent.getOldMode().equals(ent.getNewMode())) { o.write(' '); ent.getNewMode().copyTo(o); } o.write('\n'); }
if (sameType(entry.getOldMode(), entry.getNewMode())) { entries.add(entry); } else {
final String newp = ent.getNewPath(); final FileMode oldMode = ent.getOldMode(); final FileMode newMode = ent.getNewMode();
/** * Breaks apart a DiffEntry into two entries, one DELETE and one ADD. * * @param entry * the DiffEntry to break apart. * @return a list containing two entries. Calling {@link #getChangeType()} * on the first entry will return ChangeType.DELETE. Calling it on * the second entry will return ChangeType.ADD. */ static List<DiffEntry> breakModify(DiffEntry entry) { DiffEntry del = new DiffEntry(); del.oldId = entry.getOldId(); del.oldMode = entry.getOldMode(); del.oldPath = entry.getOldPath(); del.newId = A_ZERO; del.newMode = FileMode.MISSING; del.newPath = DiffEntry.DEV_NULL; del.changeType = ChangeType.DELETE; del.diffAttribute = entry.diffAttribute; DiffEntry add = new DiffEntry(); add.oldId = A_ZERO; add.oldMode = FileMode.MISSING; add.oldPath = DiffEntry.DEV_NULL; add.newId = entry.getNewId(); add.newMode = entry.getNewMode(); add.newPath = entry.getNewPath(); add.changeType = ChangeType.ADD; add.diffAttribute = entry.diffAttribute; return Arrays.asList(del, add); }
if (ent.getOldMode() == GITLINK || ent.getNewMode() == GITLINK) { aRaw = new RawText(writeGitLinkText(ent.getOldId())); bRaw = new RawText(writeGitLinkText(ent.getNewId()));
/** * Is this diff a submodule? * * @return true if submodule, false otherwise */ public boolean isSubmodule() { if (diffEntry == null) return false; return diffEntry.getOldMode() == FileMode.GITLINK || diffEntry.getNewMode() == FileMode.GITLINK; }
/** * Get the mode associated with this file. * * @param side * which mode to obtain. * @return the mode. */ public FileMode getMode(Side side) { return side == Side.OLD ? getOldMode() : getNewMode(); }
/** * Get the mode associated with this file. * * @param side * which mode to obtain. * @return the mode. */ public FileMode getMode(Side side) { return side == Side.OLD ? getOldMode() : getNewMode(); }
/** * @param o * the stream the formatter will write line data to * @param ent * the DiffEntry to create the FileHeader for * @throws IOException * writing to the supplied stream failed. */ protected void formatIndexLine(OutputStream o, DiffEntry ent) throws IOException { o.write(encodeASCII("index " // //$NON-NLS-1$ + format(ent.getOldId()) // + ".." // //$NON-NLS-1$ + format(ent.getNewId()))); if (ent.getOldMode().equals(ent.getNewMode())) { o.write(' '); ent.getNewMode().copyTo(o); } o.write('\n'); }
if (sameType(entry.getOldMode(), entry.getNewMode())) { entries.add(entry); } else {
/** * Format index line * * @param o * the stream the formatter will write line data to * @param ent * the DiffEntry to create the FileHeader for * @throws java.io.IOException * writing to the supplied stream failed. */ protected void formatIndexLine(OutputStream o, DiffEntry ent) throws IOException { o.write(encodeASCII("index " // //$NON-NLS-1$ + format(ent.getOldId()) // + ".." // //$NON-NLS-1$ + format(ent.getNewId()))); if (ent.getOldMode().equals(ent.getNewMode())) { o.write(' '); ent.getNewMode().copyTo(o); } o.write('\n'); }
/** * Is the given diff entry a file? * * @param diff * @return true if a regular or executable file, false otherwise */ protected boolean isFileDiff(DiffEntry diff) { switch (diff.getChangeType()) { case DELETE: return TYPE_FILE == (diff.getOldMode().getBits() & TYPE_MASK); case ADD: return TYPE_FILE == (diff.getNewMode().getBits() & TYPE_MASK); default: return TYPE_FILE == (diff.getOldMode().getBits() & TYPE_MASK) && TYPE_FILE == (diff.getNewMode().getBits() & TYPE_MASK); } }
public static BlobIdent getNewBlobIdent(DiffEntry diffEntry, String newRev) { BlobIdent blobIdent; if (diffEntry.getChangeType() != ChangeType.DELETE) { blobIdent = new BlobIdent(newRev, diffEntry.getNewPath(), diffEntry.getNewMode().getBits()); } else { blobIdent = new BlobIdent(newRev, null, null); } return blobIdent; }
protected DiffInfo createDiffInfo(DiffEntry diffEntry, String diff) { return new DiffInfo(diffEntry.getChangeType(), diffEntry.getNewPath(), toInt(diffEntry.getNewMode()), diffEntry.getOldPath(), toInt(diffEntry.getOldMode()), diff); }
/** * Breaks apart a DiffEntry into two entries, one DELETE and one ADD. * * @param entry * the DiffEntry to break apart. * @return a list containing two entries. Calling {@link #getChangeType()} * on the first entry will return ChangeType.DELETE. Calling it on * the second entry will return ChangeType.ADD. */ static List<DiffEntry> breakModify(DiffEntry entry) { DiffEntry del = new DiffEntry(); del.oldId = entry.getOldId(); del.oldMode = entry.getOldMode(); del.oldPath = entry.getOldPath(); del.newId = A_ZERO; del.newMode = FileMode.MISSING; del.newPath = DiffEntry.DEV_NULL; del.changeType = ChangeType.DELETE; DiffEntry add = new DiffEntry(); add.oldId = A_ZERO; add.oldMode = FileMode.MISSING; add.oldPath = DiffEntry.DEV_NULL; add.newId = entry.getNewId(); add.newMode = entry.getNewMode(); add.newPath = entry.getNewPath(); add.changeType = ChangeType.ADD; return Arrays.asList(del, add); }
/** * Breaks apart a DiffEntry into two entries, one DELETE and one ADD. * * @param entry * the DiffEntry to break apart. * @return a list containing two entries. Calling {@link #getChangeType()} * on the first entry will return ChangeType.DELETE. Calling it on * the second entry will return ChangeType.ADD. */ static List<DiffEntry> breakModify(DiffEntry entry) { DiffEntry del = new DiffEntry(); del.oldId = entry.getOldId(); del.oldMode = entry.getOldMode(); del.oldPath = entry.getOldPath(); del.newId = A_ZERO; del.newMode = FileMode.MISSING; del.newPath = DiffEntry.DEV_NULL; del.changeType = ChangeType.DELETE; del.diffAttribute = entry.diffAttribute; DiffEntry add = new DiffEntry(); add.oldId = A_ZERO; add.oldMode = FileMode.MISSING; add.oldPath = DiffEntry.DEV_NULL; add.newId = entry.getNewId(); add.newMode = entry.getNewMode(); add.newPath = entry.getNewPath(); add.changeType = ChangeType.ADD; add.diffAttribute = entry.diffAttribute; return Arrays.asList(del, add); }
@Override public boolean include(final RevCommit commit, final Collection<DiffEntry> diffs) { final DuplicateContainer dupes = new DuplicateContainer(commit); for (DiffEntry diff : diffs) { if (!isFileDiff(diff)) continue; switch (diff.getChangeType()) { case DELETE: continue; case COPY: case MODIFY: case RENAME: if (diff.getOldMode() != diff.getNewMode() && diff.getNewId().equals(diff.getOldId())) continue; default: dupes.include(diff.getNewId().toObjectId(), diff.getNewPath()); break; } } if (dupes.validate()) duplicates.put(commit, dupes); return true; }
|| !Objects.equal(entry.getOldMode(), entry.getNewMode()) || entry.getOldId()==null || !entry.getOldId().isComplete() || entry.getNewId()== null || !entry.getNewId().isComplete()