Class SvnNgMergeDriver
java.lang.Object
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgMergeDriver
public class SvnNgMergeDriver
extends java.lang.Object
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
protected static class
protected class
static class
private class
static class
static class
private static class
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) java.io.File
protected java.util.Collection<java.io.File>
private boolean
protected java.util.Collection<java.io.File>
(package private) SVNWCContext
private int
(package private) java.lang.String
private boolean
(package private) SVNDiffOptions
(package private) boolean
(package private) java.util.Collection<java.io.File>
(package private) java.util.Collection<java.io.File>
(package private) boolean
(package private) boolean
protected SVNMergeRangeList
protected java.util.Collection<java.io.File>
private boolean
(package private) SvnNgMergeDriver.MergeSource
private int
(package private) SvnMerge
private int
private static final java.util.Comparator<? super java.io.File>
(package private) java.util.Collection<java.io.File>
(package private) java.util.Collection<java.io.File>
(package private) boolean
(package private) boolean
(package private) SVNRepository
(package private) SVNRepository
(package private) SvnNgRepositoryAccess
(package private) SVNURL
(package private) boolean
private boolean
protected java.util.Collection<java.io.File>
(package private) boolean
(package private) java.io.File
private boolean
protected java.util.Collection<java.io.File>
boolean
-
Constructor Summary
ConstructorsConstructorDescriptionSvnNgMergeDriver
(SVNWCContext context, SvnMerge operation, SvnNgRepositoryAccess repositoryAccess, SVNDiffOptions diffOptions) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
adjustDeletedSubTreeRanges
(SvnNgMergeDriver.MergePath child, SvnNgMergeDriver.MergePath parent, long revision1, long revision2, SVNURL primaryURL, SVNRepository repository) java.util.Map
calculateImplicitMergeInfo
(SVNRepository repos, SVNURL url, long[] targetRev, long start, long end) private boolean
calculateMergeInheritance
(SVNMergeRangeList rangeList, java.io.File localAbsPath, boolean wcPathIsMergeTarget, boolean wcPathHasMissingChild, SVNDepth depth) 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
private void
checkWcForObstruction
(SvnNgMergeDriver.ObstructionState result, java.io.File localAbsPath, boolean noWcRootCheck) private java.util.List<SvnNgMergeDriver.MergeSource>
combineRangeWithSegments
(SVNMergeRange range, SVNLocationSegment[] segments, SVNURL sourceRootURL) 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) private SvnSingleRangeConflictReport
doFileMerge
(java.io.File targetAbsPath, java.util.Map<java.io.File, java.util.Map<java.lang.String, SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, ISvnDiffCallback2 mergeProcessor, boolean sourcesRelated, boolean squelcheMergeInfoNotifications) 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) private void
driveMergeReportEditor
(java.io.File targetAbsPath, SvnNgMergeDriver.MergeSource source, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, ISvnDiffCallback2 processor, SVNDepth depth) 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) private void
ensureImplicitMergeinfo
(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, boolean childInheritsParent, long revision1, long revision2, SVNRepository repository) 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) private void
filterMergedRevisions
(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, SVNRepository repository, java.lang.String mergeInfoPath, java.util.Map targetMergeInfo, long rev1, long rev2, boolean childInheritsImplicit) private SVNMergeRangeList
filterNaturalHistoryFromMergeInfo
(java.lang.String srcPath, java.util.Map<java.lang.String, SVNMergeRangeList> implicitMergeInfo, SVNMergeRange requestedRange) 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) private void
fixDeletedSubtreeRanges
(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
flagSubTreesNeedingMergeInfo
(boolean operativeMerge, SVNMergeRange mergeRange, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, java.io.File mergeInfoPath, SVNDepth depth) private SvnNgMergeDriver.MergePath
getChildWithMergeinfo
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, java.io.File path) 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) private java.util.Map<java.io.File,
java.lang.String> getInoperativeImmediateChildrent
(java.lang.String mergeSourceReposAbsPath, long oldestRev, long youngestRev, java.io.File targetAbsPath, SVNRepository repos, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private java.util.Map<java.io.File,
SvnNgMergeDriver.MergePath> getMergeInfoPaths
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, java.io.File targetAbsPath, SVNDepth depth, boolean dryRun, boolean sameRepos) private long
getMostInclusiveEndRevision
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) private long
getMostInclusiveStartRevision
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) private java.util.Map<java.io.File,
java.lang.String> getOperativeImmediateChildren
(java.io.File mergeSourceFsPath, long oldestRevision, long youngestRevision, java.io.File mergeTargetAbsPath, SVNDepth depth, SVNRepository repository) protected java.lang.String
getPathRelativeToRoot
(SVNURL url, SVNURL reposRootURL, SVNRepository repos) private java.util.TreeMap<java.io.File,
java.util.Map<java.lang.String, SVNMergeRangeList>> getWcExplicitMergeInfoCatalog
(java.io.File targetAbsPath, SVNDepth depth) private void
inheritImplicitMergeinfoFromParent
(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, long revision1, long revision2, SVNRepository repository) private void
insertParentAndSiblingsOfAbsentDelSubtree
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SvnNgMergeDriver.MergePath child, SVNDepth depth) (package private) boolean
isDryRunAddition
(java.io.File path) (package private) boolean
isDryRunDeletion
(java.io.File path) protected boolean
private static boolean
isOperativeNotification
(SVNEvent event) private boolean
isPathSubtree
(java.io.File localAbsPath, java.util.Collection<java.io.File> subtrees) boolean
private boolean
isSubtree
(java.io.File path, java.util.Collection<java.io.File> paths) private boolean
isSubtreeTouchedByMerge
(java.io.File absPath) private SVNErrorMessage
makeMergeConflictError
(java.io.File targetPath, SVNMergeRange range) static void
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) performObstructionCheck
(java.io.File localAbsPath, SVNNodeKind expectedKind) private void
populateRemainingRanges
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, boolean honorMergeInfo, SVNRepository repository, java.lang.String parentMergeSrcCanonPath) private void
processChildrenWithNewMergeInfo
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
recordMergeinfo
(java.io.File localAbsPath, java.util.Map<java.lang.String, SVNMergeRangeList> mergeinfo, boolean notify) private void
recordMergeInfoForAddedSubtrees
(SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) 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) private void
recordSkips
(java.lang.String mergeInfoPath, SVNMergeRangeList childMergeRangelist, boolean isRollBack) private void
removeAbsentChildren
(java.io.File targetWCPath, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
removeChildrenWithDeletedMergeInfo
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
removeFirstRangeFromRemainingRanges
(long endRevision, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private SVNMergeRangeList
removeNoOpMergeRanges
(SVNRepository repository, SVNMergeRangeList ranges) private void
removeNoOpSubtreeRanges
(SVNURL url1, long revision1, SVNURL url2, long revision2, java.io.File targetAbsPath, SVNRepository repository, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
removeSourceGap
(SVNMergeRange range, SVNMergeRangeList implicitSrcGap) private boolean
resolveConflicts
(java.util.Collection<java.io.File> conflictedPaths) singleFileMergeGetFile
(SVNRepository repository, SVNURL url, long revision, java.io.File wcTarget) private void
sliceRemainingRanges
(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack, long endRevision) private void
updateWCMergeInfo
(java.util.Map<java.io.File, java.util.Map<java.lang.String, SVNMergeRangeList>> resultCatalog, java.io.File targetAbsPath, java.lang.String reposRelPath, java.util.Map<java.io.File, SVNMergeRangeList> merges, boolean isRollBack) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
PATH_COMPARATOR
private static final java.util.Comparator<? super java.io.File> PATH_COMPARATOR -
diff3Cmd
java.lang.String diff3Cmd -
forceDelete
boolean forceDelete -
useSleep
public boolean useSleep -
dryRun
boolean dryRun -
recordOnly
boolean recordOnly -
sourcesAncestral
boolean sourcesAncestral -
sameRepos
boolean sameRepos -
ignoreMergeInfo
boolean ignoreMergeInfo -
mergeinfoCapable
private boolean mergeinfoCapable -
diffIgnoreAncestry
private boolean diffIgnoreAncestry -
targetMissingChild
private boolean targetMissingChild -
reintegrateMerge
boolean reintegrateMerge -
targetAbsPath
java.io.File targetAbsPath -
addedPath
java.io.File addedPath -
reposRootUrl
SVNURL reposRootUrl -
mergeSource
SvnNgMergeDriver.MergeSource mergeSource -
implicitSrcGap
-
context
SVNWCContext context -
addNecessiatedMerge
private boolean addNecessiatedMerge -
dryRunDeletions
java.util.Collection<java.io.File> dryRunDeletions -
dryRunAdded
java.util.Collection<java.io.File> dryRunAdded -
operativeNotifications
private int operativeNotifications -
notifications
private int notifications -
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 -
pathsWithNewMergeInfo
java.util.Collection<java.io.File> pathsWithNewMergeInfo -
pathsWithDeletedMergeInfo
java.util.Collection<java.io.File> pathsWithDeletedMergeInfo -
diffOptions
SVNDiffOptions diffOptions -
repos1
SVNRepository repos1 -
repos2
SVNRepository repos2 -
operation
SvnMerge operation -
repositoryAccess
SvnNgRepositoryAccess repositoryAccess -
currentAncestorIndex
private int currentAncestorIndex -
singleFileMerge
private boolean singleFileMerge -
notifyBegin
-
-
Constructor Details
-
SvnNgMergeDriver
public SvnNgMergeDriver(SVNWCContext context, SvnMerge operation, SvnNgRepositoryAccess repositoryAccess, SVNDiffOptions diffOptions)
-
-
Method Details
-
findNearestAncestorWithIntersectingRanges
public static SvnNgMergeDriver.MergePath findNearestAncestorWithIntersectingRanges(long[] revisions, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsOwnAncestor, java.io.File localAbsPath) -
makeMergeConflictError
- 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
-
combineRangeWithSegments
private java.util.List<SvnNgMergeDriver.MergeSource> combineRangeWithSegments(SVNMergeRange range, SVNLocationSegment[] segments, SVNURL sourceRootURL) throws SVNException - Throws:
SVNException
-
doMerge
protected SvnNgMergeDriver.MergeData doMerge(java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNMergeRangeList>> 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
-
doMergeInfoAwareDirectoryMerge
protected SvnSingleRangeConflictReport doMergeInfoAwareDirectoryMerge(java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNMergeRangeList>> 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
-
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
-
doFileMerge
private SvnSingleRangeConflictReport doFileMerge(java.io.File targetAbsPath, java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, ISvnDiffCallback2 mergeProcessor, boolean sourcesRelated, boolean squelcheMergeInfoNotifications) - Throws:
SVNException
-
singleFileMergeGetFile
private SvnNgMergeDriver.SingleFileMergeData singleFileMergeGetFile(SVNRepository repository, SVNURL url, long revision, java.io.File wcTarget) throws SVNException - Throws:
SVNException
-
doDirectoryMerge
protected SvnSingleRangeConflictReport doDirectoryMerge(java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, java.io.File targetAbsPath, SVNURL sourceRootUrl, ISvnDiffCallback2 processor, SVNDepth depth, boolean squelchMergeinfoNotifications) - Throws:
SVNException
-
removeNoOpSubtreeRanges
private void removeNoOpSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, java.io.File targetAbsPath, SVNRepository repository, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
driveMergeReportEditor
private void driveMergeReportEditor(java.io.File targetAbsPath, SvnNgMergeDriver.MergeSource source, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, ISvnDiffCallback2 processor, SVNDepth depth) 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
- 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) -
getWcExplicitMergeInfoCatalog
private java.util.TreeMap<java.io.File,java.util.Map<java.lang.String, getWcExplicitMergeInfoCatalogSVNMergeRangeList>> (java.io.File targetAbsPath, SVNDepth depth) throws SVNException - Throws:
SVNException
-
getMergeInfoPaths
private java.util.Map<java.io.File,SvnNgMergeDriver.MergePath> getMergeInfoPaths(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, java.io.File targetAbsPath, SVNDepth depth, boolean dryRun, boolean sameRepos) throws SVNException- Throws:
SVNException
-
insertParentAndSiblingsOfAbsentDelSubtree
private void insertParentAndSiblingsOfAbsentDelSubtree(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SvnNgMergeDriver.MergePath child, SVNDepth depth) throws SVNException- Throws:
SVNException
-
getChildWithMergeinfo
private SvnNgMergeDriver.MergePath getChildWithMergeinfo(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, java.io.File path) -
populateRemainingRanges
private void populateRemainingRanges(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, boolean honorMergeInfo, SVNRepository repository, java.lang.String parentMergeSrcCanonPath) throws SVNException- Throws:
SVNException
-
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
-
inheritImplicitMergeinfoFromParent
private void inheritImplicitMergeinfoFromParent(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, long revision1, long revision2, SVNRepository repository) throws SVNException - Throws:
SVNException
-
ensureImplicitMergeinfo
private void ensureImplicitMergeinfo(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, boolean childInheritsParent, long revision1, long revision2, SVNRepository repository) 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
-
adjustDeletedSubTreeRanges
private void adjustDeletedSubTreeRanges(SvnNgMergeDriver.MergePath child, SvnNgMergeDriver.MergePath parent, long revision1, long revision2, SVNURL primaryURL, SVNRepository repository) throws SVNException - Throws:
SVNException
-
filterMergedRevisions
private void filterMergedRevisions(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, SVNRepository repository, java.lang.String mergeInfoPath, java.util.Map targetMergeInfo, long rev1, long rev2, boolean childInheritsImplicit) throws SVNException - Throws:
SVNException
-
getPathRelativeToRoot
protected java.lang.String getPathRelativeToRoot(SVNURL url, SVNURL reposRootURL, SVNRepository repos) throws SVNException - Throws:
SVNException
-
sliceRemainingRanges
private void sliceRemainingRanges(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack, long endRevision) -
getMostInclusiveEndRevision
private long getMostInclusiveEndRevision(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) -
getMostInclusiveStartRevision
private long getMostInclusiveStartRevision(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) -
processChildrenWithNewMergeInfo
private void processChildrenWithNewMergeInfo(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
removeChildrenWithDeletedMergeInfo
private void removeChildrenWithDeletedMergeInfo(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) -
removeFirstRangeFromRemainingRanges
private void removeFirstRangeFromRemainingRanges(long endRevision, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) -
makeMergeConflictError
-
removeAbsentChildren
private void removeAbsentChildren(java.io.File targetWCPath, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) -
recordMergeInfoForDirectoryMerge
protected void recordMergeInfoForDirectoryMerge(java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNMergeRangeList>> resultCatalog, SVNMergeRange mergeRange, java.lang.String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) - Throws:
SVNException
-
removeSourceGap
-
flagSubTreesNeedingMergeInfo
private void flagSubTreesNeedingMergeInfo(boolean operativeMerge, SVNMergeRange mergeRange, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, java.io.File mergeInfoPath, SVNDepth depth) throws SVNException- Throws:
SVNException
-
isPathSubtree
private boolean isPathSubtree(java.io.File localAbsPath, java.util.Collection<java.io.File> subtrees) -
getOperativeImmediateChildren
private java.util.Map<java.io.File,java.lang.String> getOperativeImmediateChildren(java.io.File mergeSourceFsPath, long oldestRevision, long youngestRevision, java.io.File mergeTargetAbsPath, SVNDepth depth, SVNRepository repository) throws SVNException - Throws:
SVNException
-
calculateMergeInheritance
private boolean calculateMergeInheritance(SVNMergeRangeList rangeList, java.io.File localAbsPath, boolean wcPathIsMergeTarget, boolean wcPathHasMissingChild, SVNDepth depth) throws SVNException - Throws:
SVNException
-
recordSkips
private void recordSkips(java.lang.String mergeInfoPath, SVNMergeRangeList childMergeRangelist, boolean isRollBack) throws SVNException - Throws:
SVNException
-
updateWCMergeInfo
private void updateWCMergeInfo(java.util.Map<java.io.File, java.util.Map<java.lang.String, throws SVNExceptionSVNMergeRangeList>> resultCatalog, java.io.File targetAbsPath, java.lang.String reposRelPath, java.util.Map<java.io.File, SVNMergeRangeList> merges, boolean isRollBack) - Throws:
SVNException
-
recordMergeinfo
private void recordMergeinfo(java.io.File localAbsPath, java.util.Map<java.lang.String, SVNMergeRangeList> mergeinfo, boolean notify) throws SVNException- Throws:
SVNException
-
isSubtreeTouchedByMerge
private boolean isSubtreeTouchedByMerge(java.io.File absPath) -
isSubtree
private boolean isSubtree(java.io.File path, java.util.Collection<java.io.File> paths) -
filterNaturalHistoryFromMergeInfo
private SVNMergeRangeList filterNaturalHistoryFromMergeInfo(java.lang.String srcPath, java.util.Map<java.lang.String, SVNMergeRangeList> implicitMergeInfo, SVNMergeRange requestedRange) -
getInoperativeImmediateChildrent
private java.util.Map<java.io.File,java.lang.String> getInoperativeImmediateChildrent(java.lang.String mergeSourceReposAbsPath, long oldestRev, long youngestRev, java.io.File targetAbsPath, SVNRepository repos, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
recordMergeInfoForAddedSubtrees
private void recordMergeInfoForAddedSubtrees(SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
removeNoOpMergeRanges
private SVNMergeRangeList removeNoOpMergeRanges(SVNRepository repository, SVNMergeRangeList ranges) throws SVNException - Throws:
SVNException
-
fixDeletedSubtreeRanges
private void fixDeletedSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
checkCancelled
- Throws:
SVNCancelException
-
isOperativeNotification
-
ensureRepository
- Throws:
SVNException
-
performObstructionCheck
public SvnNgMergeDriver.ObstructionState performObstructionCheck(java.io.File localAbsPath, SVNNodeKind expectedKind) throws SVNException - Throws:
SVNException
-
isDryRunAddition
boolean isDryRunAddition(java.io.File path) -
isDryRunDeletion
boolean isDryRunDeletion(java.io.File path) -
checkWcForObstruction
private void checkWcForObstruction(SvnNgMergeDriver.ObstructionState result, java.io.File localAbsPath, boolean noWcRootCheck) throws SVNException - Throws:
SVNException
-
resolveConflicts
private boolean resolveConflicts(java.util.Collection<java.io.File> conflictedPaths) throws SVNException - Throws:
SVNException
-