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 class
SvnNgMergeDriver.MergeData
protected class
SvnNgMergeDriver.MergePath
static class
SvnNgMergeDriver.MergeSource
static class
SvnNgMergeDriver.NotifyBeginState
static class
SvnNgMergeDriver.ObstructionState
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Collection<java.io.File>
addedPaths
protected java.util.Collection<java.io.File>
conflictedPaths
protected SVNMergeRangeList
implicitSrcGap
protected java.util.Collection<java.io.File>
mergedPaths
SvnNgMergeDriver.NotifyBeginState
notifyBegin
protected java.util.Collection<java.io.File>
skippedPaths
protected java.util.Collection<java.io.File>
treeConflictedPaths
boolean
useSleep
-
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.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, java.util.Map targetMergeInfo, SVNMergeRangeList implicitSrcGap, boolean isSubtree, boolean childInheritsImplicit, SVNRepository repository)
void
checkCancelled()
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)
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)
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)
protected SvnSingleRangeConflictReport
doMergeInfoUnawareDirectoryMerge(SvnNgMergeDriver.MergeSource source, java.io.File targetPath, java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth)
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)
protected SVNRepository
ensureRepository(SVNRepository repository, SVNURL url)
protected static SVNURL
ensureSessionURL(SVNRepository repository, SVNURL url)
void
ensureWcIsSuitableForMerge(java.io.File targetAbsPath, boolean allowMixedRevs, boolean allowLocalMods, boolean allowSwitchedSubtrees)
protected void
findGapsInMergeSourceHistory(long[] gap, java.lang.String mergeSrcCanonPath, SVNURL url1, long rev1, SVNURL url2, long rev2, SVNRepository repos)
protected static int
findNearestAncestor(java.lang.Object[] childrenWithMergeInfoArray, boolean pathIsOwnAncestor, java.io.File path)
protected static SvnNgMergeDriver.MergePath
findNearestAncestor(java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsAncestor, java.io.File localAbsPath)
static SvnNgMergeDriver.MergePath
findNearestAncestorWithIntersectingRanges(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.String
getPathRelativeToRoot(SVNURL url, SVNURL reposRootURL, SVNRepository repos)
protected boolean
isHonorMergeInfo()
boolean
isRecordMergeInfo()
static void
makeMergeConflictError(SvnConflictReport report)
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)
java.util.List<SvnNgMergeDriver.MergeSource>
normalizeMergeSources(SvnTarget source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, java.util.Collection<SVNRevisionRange> rangesToMerge, SVNRepository repository)
SvnNgMergeDriver.ObstructionState
performObstructionCheck(java.io.File localAbsPath, SVNNodeKind expectedKind)
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)
-
-
-
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
-
-