private static MergeAlgorithm getMergeAlgorithm(Config config) { SupportedAlgorithm diffAlg = config.getEnum( CONFIG_DIFF_SECTION, null, CONFIG_KEY_ALGORITHM, HISTOGRAM); return new MergeAlgorithm(DiffAlgorithm.getAlgorithm(diffAlg)); }
return r; return (mergeAlgorithm.merge(RawTextComparator.DEFAULT, baseText, ourText, theirsText));
throws GeneratorException MergeAlgorithm mergeAlgorithm = new MergeAlgorithm(); MergeResult<RawText> mergeResult; try mergeResult = mergeAlgorithm.merge( RawTextComparator.DEFAULT, new RawText(base.getBytes(charsetName)),
int current = 0; // points to the next line (first line is 0) of base Edit oursEdit = nextEdit(baseToOurs); Edit theirsEdit = nextEdit(baseToTheirs); ConflictState.NO_CONFLICT); current = oursEdit.getEndA(); oursEdit = nextEdit(baseToOurs); } else if (theirsEdit.getEndA() < oursEdit.getBeginA()) { ConflictState.NO_CONFLICT); current = theirsEdit.getEndA(); theirsEdit = nextEdit(baseToTheirs); } else { Edit nextOursEdit = nextEdit(baseToOurs); Edit nextTheirsEdit = nextEdit(baseToTheirs); for (;;) { if (oursEdit.getEndA() >= nextTheirsEdit.getBeginA()) { theirsEdit = nextTheirsEdit; nextTheirsEdit = nextEdit(baseToTheirs); } else if (theirsEdit.getEndA() >= nextOursEdit.getBeginA()) { oursEdit = nextOursEdit; nextOursEdit = nextEdit(baseToOurs); } else { break;
int current = 0; // points to the next line (first line is 0) of base Edit oursEdit = nextEdit(baseToOurs); Edit theirsEdit = nextEdit(baseToTheirs); ConflictState.NO_CONFLICT); current = oursEdit.getEndA(); oursEdit = nextEdit(baseToOurs); } else if (theirsEdit.getEndA() < oursEdit.getBeginA()) { ConflictState.NO_CONFLICT); current = theirsEdit.getEndA(); theirsEdit = nextEdit(baseToTheirs); } else { Edit nextOursEdit = nextEdit(baseToOurs); Edit nextTheirsEdit = nextEdit(baseToTheirs); for (;;) { if (oursEdit.getEndA() >= nextTheirsEdit.getBeginA()) { theirsEdit = nextTheirsEdit; nextTheirsEdit = nextEdit(baseToTheirs); } else if (theirsEdit.getEndA() >= nextOursEdit.getBeginA()) { oursEdit = nextOursEdit; nextOursEdit = nextEdit(baseToOurs); } else { break;
private static MergeAlgorithm getMergeAlgorithm(Config config) { SupportedAlgorithm diffAlg = config.getEnum( CONFIG_DIFF_SECTION, null, CONFIG_KEY_ALGORITHM, HISTOGRAM); return new MergeAlgorithm(DiffAlgorithm.getAlgorithm(diffAlg)); }
/** * Does the content merge. The three texts base, ours and theirs are * specified with {@link CanonicalTreeParser}. If any of the parsers is * specified as <code>null</code> then an empty text will be used instead. * * @param base * @param ours * @param theirs * * @return the result of the content merge * @throws IOException */ private MergeResult<RawText> contentMerge(CanonicalTreeParser base, CanonicalTreeParser ours, CanonicalTreeParser theirs) throws IOException { RawText baseText = base == null ? RawText.EMPTY_TEXT : getRawText( base.getEntryObjectId(), reader); RawText ourText = ours == null ? RawText.EMPTY_TEXT : getRawText( ours.getEntryObjectId(), reader); RawText theirsText = theirs == null ? RawText.EMPTY_TEXT : getRawText( theirs.getEntryObjectId(), reader); return (mergeAlgorithm.merge(RawTextComparator.DEFAULT, baseText, ourText, theirsText)); }
int current = 0; // points to the next line (first line is 0) of base Edit oursEdit = nextEdit(baseToOurs); Edit theirsEdit = nextEdit(baseToTheirs); ConflictState.NO_CONFLICT); current = oursEdit.getEndA(); oursEdit = nextEdit(baseToOurs); } else if (theirsEdit.getEndA() < oursEdit.getBeginA()) { ConflictState.NO_CONFLICT); current = theirsEdit.getEndA(); theirsEdit = nextEdit(baseToTheirs); } else { Edit nextOursEdit = nextEdit(baseToOurs); Edit nextTheirsEdit = nextEdit(baseToTheirs); for (;;) { if (oursEdit.getEndA() >= nextTheirsEdit.getBeginA()) { theirsEdit = nextTheirsEdit; nextTheirsEdit = nextEdit(baseToTheirs); } else if (theirsEdit.getEndA() >= nextOursEdit.getBeginA()) { oursEdit = nextOursEdit; nextOursEdit = nextEdit(baseToOurs); } else { break;
/** * @param local * @param inCore */ protected ResolveMerger(Repository local, boolean inCore) { super(local); SupportedAlgorithm diffAlg = local.getConfig().getEnum( ConfigConstants.CONFIG_DIFF_SECTION, null, ConfigConstants.CONFIG_KEY_ALGORITHM, SupportedAlgorithm.HISTOGRAM); mergeAlgorithm = new MergeAlgorithm(DiffAlgorithm.getAlgorithm(diffAlg)); commitNames = new String[] { "BASE", "OURS", "THEIRS" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ this.inCore = inCore; if (inCore) { implicitDirCache = false; dircache = DirCache.newInCore(); } else { implicitDirCache = true; } }
return r; return (mergeAlgorithm.merge(RawTextComparator.DEFAULT, baseText, ourText, theirsText));