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 classprotected static classprotected classstatic classprivate classstatic classstatic classprivate static class -
Field Summary
FieldsModifier and TypeFieldDescription(package private) java.io.Fileprotected java.util.Collection<java.io.File>private booleanprotected java.util.Collection<java.io.File>(package private) SVNWCContextprivate int(package private) java.lang.Stringprivate 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) booleanprotected SVNMergeRangeListprotected java.util.Collection<java.io.File>private boolean(package private) SvnNgMergeDriver.MergeSourceprivate int(package private) SvnMergeprivate intprivate 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) booleanprivate booleanprotected java.util.Collection<java.io.File>(package private) boolean(package private) java.io.Fileprivate booleanprotected java.util.Collection<java.io.File>boolean -
Constructor Summary
ConstructorsConstructorDescriptionSvnNgMergeDriver(SVNWCContext context, SvnMerge operation, SvnNgRepositoryAccess repositoryAccess, SVNDiffOptions diffOptions) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidadjustDeletedSubTreeRanges(SvnNgMergeDriver.MergePath child, SvnNgMergeDriver.MergePath parent, long revision1, long revision2, SVNURL primaryURL, SVNRepository repository) java.util.MapcalculateImplicitMergeInfo(SVNRepository repos, SVNURL url, long[] targetRev, long start, long end) private booleancalculateMergeInheritance(SVNMergeRangeList rangeList, java.io.File localAbsPath, boolean wcPathIsMergeTarget, boolean wcPathHasMissingChild, SVNDepth depth) 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) voidprivate voidcheckWcForObstruction(SvnNgMergeDriver.ObstructionState result, java.io.File localAbsPath, boolean noWcRootCheck) private java.util.List<SvnNgMergeDriver.MergeSource>combineRangeWithSegments(SVNMergeRange range, SVNLocationSegment[] segments, SVNURL sourceRootURL) 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) private SvnSingleRangeConflictReportdoFileMerge(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.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) private voiddriveMergeReportEditor(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 voidensureImplicitMergeinfo(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, boolean childInheritsParent, long revision1, long revision2, SVNRepository repository) protected SVNRepositoryensureRepository(SVNRepository repository, SVNURL url) protected static SVNURLensureSessionURL(SVNRepository repository, SVNURL url) voidensureWcIsSuitableForMerge(java.io.File targetAbsPath, boolean allowMixedRevs, boolean allowLocalMods, boolean allowSwitchedSubtrees) private voidfilterMergedRevisions(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, SVNRepository repository, java.lang.String mergeInfoPath, java.util.Map targetMergeInfo, long rev1, long rev2, boolean childInheritsImplicit) private SVNMergeRangeListfilterNaturalHistoryFromMergeInfo(java.lang.String srcPath, java.util.Map<java.lang.String, SVNMergeRangeList> implicitMergeInfo, SVNMergeRange requestedRange) 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) private voidfixDeletedSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private voidflagSubTreesNeedingMergeInfo(boolean operativeMerge, SVNMergeRange mergeRange, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, java.io.File mergeInfoPath, SVNDepth depth) private SvnNgMergeDriver.MergePathgetChildWithMergeinfo(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 longgetMostInclusiveEndRevision(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) private longgetMostInclusiveStartRevision(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.StringgetPathRelativeToRoot(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 voidinheritImplicitMergeinfoFromParent(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, long revision1, long revision2, SVNRepository repository) private voidinsertParentAndSiblingsOfAbsentDelSubtree(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SvnNgMergeDriver.MergePath child, SVNDepth depth) (package private) booleanisDryRunAddition(java.io.File path) (package private) booleanisDryRunDeletion(java.io.File path) protected booleanprivate static booleanisOperativeNotification(SVNEvent event) private booleanisPathSubtree(java.io.File localAbsPath, java.util.Collection<java.io.File> subtrees) booleanprivate booleanisSubtree(java.io.File path, java.util.Collection<java.io.File> paths) private booleanisSubtreeTouchedByMerge(java.io.File absPath) private SVNErrorMessagemakeMergeConflictError(java.io.File targetPath, SVNMergeRange range) static voidmergeCousinsAndSupplementMergeInfo(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 voidpopulateRemainingRanges(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 voidprocessChildrenWithNewMergeInfo(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private voidrecordMergeinfo(java.io.File localAbsPath, java.util.Map<java.lang.String, SVNMergeRangeList> mergeinfo, boolean notify) private voidrecordMergeInfoForAddedSubtrees(SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) 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) private voidrecordSkips(java.lang.String mergeInfoPath, SVNMergeRangeList childMergeRangelist, boolean isRollBack) private voidremoveAbsentChildren(java.io.File targetWCPath, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private voidremoveChildrenWithDeletedMergeInfo(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private voidremoveFirstRangeFromRemainingRanges(long endRevision, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private SVNMergeRangeListremoveNoOpMergeRanges(SVNRepository repository, SVNMergeRangeList ranges) private voidremoveNoOpSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, java.io.File targetAbsPath, SVNRepository repository, java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private voidremoveSourceGap(SVNMergeRange range, SVNMergeRangeList implicitSrcGap) private booleanresolveConflicts(java.util.Collection<java.io.File> conflictedPaths) singleFileMergeGetFile(SVNRepository repository, SVNURL url, long revision, java.io.File wcTarget) private voidsliceRemainingRanges(java.util.Map<java.io.File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack, long endRevision) private voidupdateWCMergeInfo(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
-