package org.tmatesoft.svn.core.wc2; import java.io.File; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNNodeKind; import org.tmatesoft.svn.core.SVNProperties; import org.tmatesoft.svn.core.internal.wc.SVNConflictVersion; import org.tmatesoft.svn.core.internal.wc.SVNDiffConflictChoiceStyle; import org.tmatesoft.svn.core.wc.ISVNConflictHandler; import org.tmatesoft.svn.core.wc.ISVNMerger; import org.tmatesoft.svn.core.wc.ISVNMergerFactory; import org.tmatesoft.svn.core.wc.SVNDiffOptions; /** * Merge driver interface used by <code>SVNKit</code> in merging operations. * * <p> * Merge drivers are created by a merger factory implementing the * {@link ISVNMergerFactory} interface. * * @author TMate Software Ltd. * @version 1.7 * @see org.tmatesoft.svn.core.internal.wc17.DefaultSvnMerger */ public interface ISvnMerger extends ISVNMerger { /** * Performs a text merge. * * @param baseMerger * @param resultFile * @param targetAbspath working copy absolute path of the target * @param detranslatedTargetAbspath * @param leftAbspath * @param rightAbspath * @param targetLabel * @param leftLabel * @param rightLabel * @param options merge options to take into account * @param style * @return result of merging * @throws SVNException */ public SvnMergeResult mergeText( ISvnMerger baseMerger, File resultFile, File targetAbspath, File detranslatedTargetAbspath, File leftAbspath, File rightAbspath, String targetLabel, String leftLabel, String rightLabel, SVNDiffOptions options, SVNDiffConflictChoiceStyle style) throws SVNException; /** * Merges the property changes <code>propChanges</code> based on <code>serverBaseProperties</code> * into the working copy <code>localAbsPath</code> * * @param baseMerger * @param localAbsPath working copy absolute path * @param kind node kind * @param leftVersion * @param rightVersion * @param serverBaseProperties properties that come from the server * @param pristineProperties pristine properties * @param actualProperties actual (working) properties * @param propChanges property changes that come from the repository * @param baseMerge if <code>false</code>, then changes only working properties; otherwise, changes both the base and working properties * @param dryRun if <code>true</code>, merge is simulated only, no real changes are done * @param conflictResolver * @return result of merging * @throws SVNException */ public SvnMergeResult mergeProperties( ISvnMerger baseMerger, File localAbsPath, SVNNodeKind kind, SVNConflictVersion leftVersion, SVNConflictVersion rightVersion, SVNProperties serverBaseProperties, SVNProperties pristineProperties, SVNProperties actualProperties, SVNProperties propChanges, boolean baseMerge, boolean dryRun, ISVNConflictHandler conflictResolver) throws SVNException; }