Class SvnNgMergeDriver
- java.lang.Object
-
- org.tmatesoft.svn.core.internal.wc2.ng.SvnNgMergeDriver
-
public class SvnNgMergeDriver extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classSvnNgMergeDriver.MergeDataprotected classSvnNgMergeDriver.MergePathstatic classSvnNgMergeDriver.MergeSourcestatic classSvnNgMergeDriver.NotifyBeginStatestatic classSvnNgMergeDriver.ObstructionState
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Collection<java.io.File>addedPathsprotected java.util.Collection<java.io.File>conflictedPathsprotected SVNMergeRangeListimplicitSrcGapprotected java.util.Collection<java.io.File>mergedPathsSvnNgMergeDriver.NotifyBeginStatenotifyBeginprotected java.util.Collection<java.io.File>skippedPathsprotected java.util.Collection<java.io.File>treeConflictedPathsbooleanuseSleep
-
Constructor Summary
Constructors Constructor Description SvnNgMergeDriver(SVNWCContext context, SvnMerge operation, SvnNgRepositoryAccess repositoryAccess, SVNDiffOptions diffOptions)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.MapcalculateImplicitMergeInfo(SVNRepository repos, SVNURL url, long[] targetRev, long start, long end)voidcalculateRemainingRanges(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, java.util.Map targetMergeInfo, SVNMergeRangeList implicitSrcGap, boolean isSubtree, boolean childInheritsImplicit, SVNRepository repository)voidcheckCancelled()protected SvnSingleRangeConflictReportdoDirectoryMerge(java.util.Map<java.io.File,java.util.Map<java.lang.String,SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, java.io.File targetAbsPath, SVNURL sourceRootUrl, ISvnDiffCallback2 processor, SVNDepth depth, boolean squelchMergeinfoNotifications)protected SvnNgMergeDriver.MergeDatadoMerge(java.util.Map<java.io.File,java.util.Map<java.lang.String,SVNMergeRangeList>> resultCatalog, java.util.List<SvnNgMergeDriver.MergeSource> mergeSources, java.io.File targetAbsPath, SVNRepository sourceRepository, boolean sourcesRelated, boolean sameRepository, boolean ignoreMergeInfo, boolean diffIgnoreAncestry, boolean forceDelete, boolean dryRun, boolean recordOnly, java.util.Collection<java.io.File> recordOnlyPaths, boolean reintegrateMerge, boolean squelcheMergeInfoNotifications, SVNDepth depth, SVNDiffOptions diffOptions)protected SvnSingleRangeConflictReportdoMergeInfoAwareDirectoryMerge(java.util.Map<java.io.File,java.util.Map<java.lang.String,SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, java.io.File targetPath, SVNURL sourceRootUrl, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth, boolean squelchMergeinfoNotifications, ISvnDiffCallback2 processor)protected SvnSingleRangeConflictReportdoMergeInfoUnawareDirectoryMerge(SvnNgMergeDriver.MergeSource source, java.io.File targetPath, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth)SvnNgRemoteMergeEditordriveMergeReportEditor(java.io.File targetWCPath, SVNURL url1, long revision1, SVNURL url2, long revision2, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth, ISvnDiffCallback2 mergeCallback)protected SVNRepositoryensureRepository(SVNRepository repository, SVNURL url)protected static SVNURLensureSessionURL(SVNRepository repository, SVNURL url)voidensureWcIsSuitableForMerge(java.io.File targetAbsPath, boolean allowMixedRevs, boolean allowLocalMods, boolean allowSwitchedSubtrees)protected voidfindGapsInMergeSourceHistory(long[] gap, java.lang.String mergeSrcCanonPath, SVNURL url1, long rev1, SVNURL url2, long rev2, SVNRepository repos)protected static intfindNearestAncestor(java.lang.Object[] childrenWithMergeInfoArray, boolean pathIsOwnAncestor, java.io.File path)protected static SvnNgMergeDriver.MergePathfindNearestAncestor(java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsAncestor, java.io.File localAbsPath)static SvnNgMergeDriver.MergePathfindNearestAncestorWithIntersectingRanges(long[] revisions, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsOwnAncestor, java.io.File localAbsPath)protected java.util.Map<java.lang.String,SVNMergeRangeList>[]getFullMergeInfo(boolean getRecorded, boolean getImplicit, boolean[] inherited, SVNMergeInfoInheritance inherit, SVNRepository repos, java.io.File target, long start, long end)protected java.lang.StringgetPathRelativeToRoot(SVNURL url, SVNURL reposRootURL, SVNRepository repos)protected booleanisHonorMergeInfo()booleanisRecordMergeInfo()static voidmakeMergeConflictError(SvnConflictReport report)SvnNgMergeDriver.MergeDatamergeCousinsAndSupplementMergeInfo(java.io.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)java.util.List<SvnNgMergeDriver.MergeSource>normalizeMergeSources(SvnTarget source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, java.util.Collection<SVNRevisionRange> rangesToMerge, SVNRepository repository)SvnNgMergeDriver.ObstructionStateperformObstructionCheck(java.io.File localAbsPath, SVNNodeKind expectedKind)protected voidrecordMergeInfoForDirectoryMerge(java.util.Map<java.io.File,java.util.Map<java.lang.String,SVNMergeRangeList>> resultCatalog, SVNMergeRange mergeRange, java.lang.String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo)
-
-
-
Field Detail
-
useSleep
public boolean useSleep
-
implicitSrcGap
protected SVNMergeRangeList implicitSrcGap
-
addedPaths
protected java.util.Collection<java.io.File> addedPaths
-
mergedPaths
protected java.util.Collection<java.io.File> mergedPaths
-
skippedPaths
protected java.util.Collection<java.io.File> skippedPaths
-
treeConflictedPaths
protected java.util.Collection<java.io.File> treeConflictedPaths
-
conflictedPaths
protected java.util.Collection<java.io.File> conflictedPaths
-
notifyBegin
public SvnNgMergeDriver.NotifyBeginState notifyBegin
-
-
Constructor Detail
-
SvnNgMergeDriver
public SvnNgMergeDriver(SVNWCContext context, SvnMerge operation, SvnNgRepositoryAccess repositoryAccess, SVNDiffOptions diffOptions)
-
-
Method Detail
-
findNearestAncestorWithIntersectingRanges
public static SvnNgMergeDriver.MergePath findNearestAncestorWithIntersectingRanges(long[] revisions, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsOwnAncestor, java.io.File localAbsPath)
-
makeMergeConflictError
public static void makeMergeConflictError(SvnConflictReport report) throws SVNException
- Throws:
SVNException
-
ensureWcIsSuitableForMerge
public void ensureWcIsSuitableForMerge(java.io.File targetAbsPath, boolean allowMixedRevs, boolean allowLocalMods, boolean allowSwitchedSubtrees) throws SVNException- Throws:
SVNException
-
mergeCousinsAndSupplementMergeInfo
public SvnNgMergeDriver.MergeData mergeCousinsAndSupplementMergeInfo(java.io.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
- Throws:
SVNException
-
normalizeMergeSources
public java.util.List<SvnNgMergeDriver.MergeSource> normalizeMergeSources(SvnTarget source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, java.util.Collection<SVNRevisionRange> rangesToMerge, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
doMerge
protected SvnNgMergeDriver.MergeData doMerge(java.util.Map<java.io.File,java.util.Map<java.lang.String,SVNMergeRangeList>> resultCatalog, java.util.List<SvnNgMergeDriver.MergeSource> mergeSources, java.io.File targetAbsPath, SVNRepository sourceRepository, boolean sourcesRelated, boolean sameRepository, boolean ignoreMergeInfo, boolean diffIgnoreAncestry, boolean forceDelete, boolean dryRun, boolean recordOnly, java.util.Collection<java.io.File> recordOnlyPaths, boolean reintegrateMerge, boolean squelcheMergeInfoNotifications, SVNDepth depth, SVNDiffOptions diffOptions) throws SVNException
- Throws:
SVNException
-
doMergeInfoAwareDirectoryMerge
protected SvnSingleRangeConflictReport doMergeInfoAwareDirectoryMerge(java.util.Map<java.io.File,java.util.Map<java.lang.String,SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, java.io.File targetPath, SVNURL sourceRootUrl, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth, boolean squelchMergeinfoNotifications, ISvnDiffCallback2 processor) throws SVNException
- Throws:
SVNException
-
doMergeInfoUnawareDirectoryMerge
protected SvnSingleRangeConflictReport doMergeInfoUnawareDirectoryMerge(SvnNgMergeDriver.MergeSource source, java.io.File targetPath, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth) throws SVNException
- Throws:
SVNException
-
doDirectoryMerge
protected SvnSingleRangeConflictReport doDirectoryMerge(java.util.Map<java.io.File,java.util.Map<java.lang.String,SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, java.io.File targetAbsPath, SVNURL sourceRootUrl, ISvnDiffCallback2 processor, SVNDepth depth, boolean squelchMergeinfoNotifications) throws SVNException
- Throws:
SVNException
-
driveMergeReportEditor
public SvnNgRemoteMergeEditor driveMergeReportEditor(java.io.File targetWCPath, SVNURL url1, long revision1, SVNURL url2, long revision2, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth, ISvnDiffCallback2 mergeCallback) throws SVNException
- Throws:
SVNException
-
isHonorMergeInfo
protected boolean isHonorMergeInfo()
-
isRecordMergeInfo
public boolean isRecordMergeInfo()
-
ensureSessionURL
protected static SVNURL ensureSessionURL(SVNRepository repository, SVNURL url) throws SVNException
- Throws:
SVNException
-
findNearestAncestor
protected static SvnNgMergeDriver.MergePath findNearestAncestor(java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsAncestor, java.io.File localAbsPath)
-
findNearestAncestor
protected static int findNearestAncestor(java.lang.Object[] childrenWithMergeInfoArray, boolean pathIsOwnAncestor, java.io.File path)
-
getFullMergeInfo
protected java.util.Map<java.lang.String,SVNMergeRangeList>[] getFullMergeInfo(boolean getRecorded, boolean getImplicit, boolean[] inherited, SVNMergeInfoInheritance inherit, SVNRepository repos, java.io.File target, long start, long end) throws SVNException
- Throws:
SVNException
-
calculateImplicitMergeInfo
public java.util.Map calculateImplicitMergeInfo(SVNRepository repos, SVNURL url, long[] targetRev, long start, long end) throws SVNException
- Throws:
SVNException
-
findGapsInMergeSourceHistory
protected void findGapsInMergeSourceHistory(long[] gap, java.lang.String mergeSrcCanonPath, SVNURL url1, long rev1, SVNURL url2, long rev2, SVNRepository repos) throws SVNException- Throws:
SVNException
-
calculateRemainingRanges
public void calculateRemainingRanges(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, java.util.Map targetMergeInfo, SVNMergeRangeList implicitSrcGap, boolean isSubtree, boolean childInheritsImplicit, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
getPathRelativeToRoot
protected java.lang.String getPathRelativeToRoot(SVNURL url, SVNURL reposRootURL, SVNRepository repos) throws SVNException
- Throws:
SVNException
-
recordMergeInfoForDirectoryMerge
protected void recordMergeInfoForDirectoryMerge(java.util.Map<java.io.File,java.util.Map<java.lang.String,SVNMergeRangeList>> resultCatalog, SVNMergeRange mergeRange, java.lang.String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException
- Throws:
SVNException
-
checkCancelled
public void checkCancelled() throws SVNCancelException- Throws:
SVNCancelException
-
ensureRepository
protected SVNRepository ensureRepository(SVNRepository repository, SVNURL url) throws SVNException
- Throws:
SVNException
-
performObstructionCheck
public SvnNgMergeDriver.ObstructionState performObstructionCheck(java.io.File localAbsPath, SVNNodeKind expectedKind) throws SVNException
- Throws:
SVNException
-
-