public class SvnNgMergeDriver extends Object
Modifier and Type | Class and Description |
---|---|
protected static class |
SvnNgMergeDriver.MergeData |
protected class |
SvnNgMergeDriver.MergePath |
static class |
SvnNgMergeDriver.MergeSource |
static class |
SvnNgMergeDriver.NotifyBeginState |
static class |
SvnNgMergeDriver.ObstructionState |
Modifier and Type | Field and Description |
---|---|
protected Collection<File> |
addedPaths |
protected Collection<File> |
conflictedPaths |
protected SVNMergeRangeList |
implicitSrcGap |
protected Collection<File> |
mergedPaths |
SvnNgMergeDriver.NotifyBeginState |
notifyBegin |
protected Collection<File> |
skippedPaths |
protected Collection<File> |
treeConflictedPaths |
boolean |
useSleep |
Constructor and Description |
---|
SvnNgMergeDriver(SVNWCContext context,
SvnMerge operation,
SvnNgRepositoryAccess repositoryAccess,
SVNDiffOptions diffOptions) |
Modifier and Type | Method and Description |
---|---|
Map |
calculateImplicitMergeInfo(SVNRepository repos,
SVNURL url,
long[] targetRev,
long start,
long end) |
void |
calculateRemainingRanges(SvnNgMergeDriver.MergePath parent,
SvnNgMergeDriver.MergePath child,
SVNURL sourceRootURL,
SVNURL url1,
long revision1,
SVNURL url2,
long revision2,
Map targetMergeInfo,
SVNMergeRangeList implicitSrcGap,
boolean isSubtree,
boolean childInheritsImplicit,
SVNRepository repository) |
void |
checkCancelled() |
protected SvnSingleRangeConflictReport |
doDirectoryMerge(Map<File,Map<String,SVNMergeRangeList>> resultCatalog,
SvnNgMergeDriver.MergeSource source,
File targetAbsPath,
SVNURL sourceRootUrl,
ISvnDiffCallback2 processor,
SVNDepth depth,
boolean squelchMergeinfoNotifications) |
protected SvnNgMergeDriver.MergeData |
doMerge(Map<File,Map<String,SVNMergeRangeList>> resultCatalog,
List<SvnNgMergeDriver.MergeSource> mergeSources,
File targetAbsPath,
SVNRepository sourceRepository,
boolean sourcesRelated,
boolean sameRepository,
boolean ignoreMergeInfo,
boolean diffIgnoreAncestry,
boolean forceDelete,
boolean dryRun,
boolean recordOnly,
Collection<File> recordOnlyPaths,
boolean reintegrateMerge,
boolean squelcheMergeInfoNotifications,
SVNDepth depth,
SVNDiffOptions diffOptions) |
protected SvnSingleRangeConflictReport |
doMergeInfoAwareDirectoryMerge(Map<File,Map<String,SVNMergeRangeList>> resultCatalog,
SvnNgMergeDriver.MergeSource source,
File targetPath,
SVNURL sourceRootUrl,
Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo,
SVNDepth depth,
boolean squelchMergeinfoNotifications,
ISvnDiffCallback2 processor) |
protected SvnSingleRangeConflictReport |
doMergeInfoUnawareDirectoryMerge(SvnNgMergeDriver.MergeSource source,
File targetPath,
Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo,
SVNDepth depth) |
SvnNgRemoteMergeEditor |
driveMergeReportEditor(File targetWCPath,
SVNURL url1,
long revision1,
SVNURL url2,
long revision2,
Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo,
SVNDepth depth,
ISvnDiffCallback2 mergeCallback) |
protected SVNRepository |
ensureRepository(SVNRepository repository,
SVNURL url) |
protected static SVNURL |
ensureSessionURL(SVNRepository repository,
SVNURL url) |
void |
ensureWcIsSuitableForMerge(File targetAbsPath,
boolean allowMixedRevs,
boolean allowLocalMods,
boolean allowSwitchedSubtrees) |
protected void |
findGapsInMergeSourceHistory(long[] gap,
String mergeSrcCanonPath,
SVNURL url1,
long rev1,
SVNURL url2,
long rev2,
SVNRepository repos) |
protected static SvnNgMergeDriver.MergePath |
findNearestAncestor(Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo,
boolean pathIsAncestor,
File localAbsPath) |
protected static int |
findNearestAncestor(Object[] childrenWithMergeInfoArray,
boolean pathIsOwnAncestor,
File path) |
static SvnNgMergeDriver.MergePath |
findNearestAncestorWithIntersectingRanges(long[] revisions,
Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo,
boolean pathIsOwnAncestor,
File localAbsPath) |
protected Map<String,SVNMergeRangeList>[] |
getFullMergeInfo(boolean getRecorded,
boolean getImplicit,
boolean[] inherited,
SVNMergeInfoInheritance inherit,
SVNRepository repos,
File target,
long start,
long end) |
protected String |
getPathRelativeToRoot(SVNURL url,
SVNURL reposRootURL,
SVNRepository repos) |
protected boolean |
isHonorMergeInfo() |
boolean |
isRecordMergeInfo() |
static void |
makeMergeConflictError(SvnConflictReport report) |
SvnNgMergeDriver.MergeData |
mergeCousinsAndSupplementMergeInfo(File targetWCPath,
SVNRepository repository1,
SVNRepository repository2,
SVNURL url1,
long rev1,
SVNURL url2,
long rev2,
long youngestCommonRev,
SVNURL sourceReposRoot,
SVNURL wcReposRoot,
SVNDepth depth,
boolean ignoreMergeInfo,
boolean ignoreAncestry,
boolean forceDelete,
boolean recordOnly,
boolean dryRun) |
List<SvnNgMergeDriver.MergeSource> |
normalizeMergeSources(SvnTarget source,
SVNURL sourceURL,
SVNURL sourceRootURL,
SVNRevision pegRevision,
Collection<SVNRevisionRange> rangesToMerge,
SVNRepository repository) |
SvnNgMergeDriver.ObstructionState |
performObstructionCheck(File localAbsPath,
SVNNodeKind expectedKind) |
protected void |
recordMergeInfoForDirectoryMerge(Map<File,Map<String,SVNMergeRangeList>> resultCatalog,
SVNMergeRange mergeRange,
String mergeInfoPath,
SVNDepth depth,
boolean squelchMergeinfoNotifications,
Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo) |
public boolean useSleep
protected SVNMergeRangeList implicitSrcGap
protected Collection<File> addedPaths
protected Collection<File> mergedPaths
protected Collection<File> skippedPaths
protected Collection<File> treeConflictedPaths
protected Collection<File> conflictedPaths
public SvnNgMergeDriver.NotifyBeginState notifyBegin
public SvnNgMergeDriver(SVNWCContext context, SvnMerge operation, SvnNgRepositoryAccess repositoryAccess, SVNDiffOptions diffOptions)
public static SvnNgMergeDriver.MergePath findNearestAncestorWithIntersectingRanges(long[] revisions, Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsOwnAncestor, File localAbsPath)
public static void makeMergeConflictError(SvnConflictReport report) throws SVNException
SVNException
public void ensureWcIsSuitableForMerge(File targetAbsPath, boolean allowMixedRevs, boolean allowLocalMods, boolean allowSwitchedSubtrees) throws SVNException
SVNException
public SvnNgMergeDriver.MergeData mergeCousinsAndSupplementMergeInfo(File targetWCPath, SVNRepository repository1, SVNRepository repository2, SVNURL url1, long rev1, SVNURL url2, long rev2, long youngestCommonRev, SVNURL sourceReposRoot, SVNURL wcReposRoot, SVNDepth depth, boolean ignoreMergeInfo, boolean ignoreAncestry, boolean forceDelete, boolean recordOnly, boolean dryRun) throws SVNException
SVNException
public List<SvnNgMergeDriver.MergeSource> normalizeMergeSources(SvnTarget source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, Collection<SVNRevisionRange> rangesToMerge, SVNRepository repository) throws SVNException
SVNException
protected SvnNgMergeDriver.MergeData doMerge(Map<File,Map<String,SVNMergeRangeList>> resultCatalog, List<SvnNgMergeDriver.MergeSource> mergeSources, File targetAbsPath, SVNRepository sourceRepository, boolean sourcesRelated, boolean sameRepository, boolean ignoreMergeInfo, boolean diffIgnoreAncestry, boolean forceDelete, boolean dryRun, boolean recordOnly, Collection<File> recordOnlyPaths, boolean reintegrateMerge, boolean squelcheMergeInfoNotifications, SVNDepth depth, SVNDiffOptions diffOptions) throws SVNException
SVNException
protected SvnSingleRangeConflictReport doMergeInfoAwareDirectoryMerge(Map<File,Map<String,SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, File targetPath, SVNURL sourceRootUrl, Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth, boolean squelchMergeinfoNotifications, ISvnDiffCallback2 processor) throws SVNException
SVNException
protected SvnSingleRangeConflictReport doMergeInfoUnawareDirectoryMerge(SvnNgMergeDriver.MergeSource source, File targetPath, Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth) throws SVNException
SVNException
protected SvnSingleRangeConflictReport doDirectoryMerge(Map<File,Map<String,SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, File targetAbsPath, SVNURL sourceRootUrl, ISvnDiffCallback2 processor, SVNDepth depth, boolean squelchMergeinfoNotifications) throws SVNException
SVNException
public SvnNgRemoteMergeEditor driveMergeReportEditor(File targetWCPath, SVNURL url1, long revision1, SVNURL url2, long revision2, Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth, ISvnDiffCallback2 mergeCallback) throws SVNException
SVNException
protected boolean isHonorMergeInfo()
public boolean isRecordMergeInfo()
protected static SVNURL ensureSessionURL(SVNRepository repository, SVNURL url) throws SVNException
SVNException
protected static SvnNgMergeDriver.MergePath findNearestAncestor(Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsAncestor, File localAbsPath)
protected static int findNearestAncestor(Object[] childrenWithMergeInfoArray, boolean pathIsOwnAncestor, File path)
protected Map<String,SVNMergeRangeList>[] getFullMergeInfo(boolean getRecorded, boolean getImplicit, boolean[] inherited, SVNMergeInfoInheritance inherit, SVNRepository repos, File target, long start, long end) throws SVNException
SVNException
public Map calculateImplicitMergeInfo(SVNRepository repos, SVNURL url, long[] targetRev, long start, long end) throws SVNException
SVNException
protected void findGapsInMergeSourceHistory(long[] gap, String mergeSrcCanonPath, SVNURL url1, long rev1, SVNURL url2, long rev2, SVNRepository repos) throws SVNException
SVNException
public void calculateRemainingRanges(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, Map targetMergeInfo, SVNMergeRangeList implicitSrcGap, boolean isSubtree, boolean childInheritsImplicit, SVNRepository repository) throws SVNException
SVNException
protected String getPathRelativeToRoot(SVNURL url, SVNURL reposRootURL, SVNRepository repos) throws SVNException
SVNException
protected void recordMergeInfoForDirectoryMerge(Map<File,Map<String,SVNMergeRangeList>> resultCatalog, SVNMergeRange mergeRange, String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, Map<File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException
SVNException
public void checkCancelled() throws SVNCancelException
SVNCancelException
protected SVNRepository ensureRepository(SVNRepository repository, SVNURL url) throws SVNException
SVNException
public SvnNgMergeDriver.ObstructionState performObstructionCheck(File localAbsPath, SVNNodeKind expectedKind) throws SVNException
SVNException
Copyright © 2023. All rights reserved.