Class SvnNgMergeDriver
java.lang.Object
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgMergeDriver
-
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) File
protected Collection<File>
private boolean
protected Collection<File>
(package private) SVNWCContext
private int
(package private) String
private boolean
(package private) SVNDiffOptions
(package private) boolean
(package private) Collection<File>
(package private) Collection<File>
(package private) boolean
(package private) boolean
protected SVNMergeRangeList
protected Collection<File>
private boolean
(package private) SvnNgMergeDriver.MergeSource
private int
(package private) SvnMerge
private int
private static final Comparator<? super File>
(package private) Collection<File>
(package private) Collection<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 Collection<File>
(package private) boolean
(package private) File
private boolean
protected Collection<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) calculateImplicitMergeInfo
(SVNRepository repos, SVNURL url, long[] targetRev, long start, long end) private boolean
calculateMergeInheritance
(SVNMergeRangeList rangeList, 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, Map targetMergeInfo, SVNMergeRangeList implicitSrcGap, boolean isSubtree, boolean childInheritsImplicit, SVNRepository repository) void
private void
checkWcForObstruction
(SvnNgMergeDriver.ObstructionState result, File localAbsPath, boolean noWcRootCheck) private List<SvnNgMergeDriver.MergeSource>
combineRangeWithSegments
(SVNMergeRange range, SVNLocationSegment[] segments, SVNURL sourceRootURL) protected SvnSingleRangeConflictReport
doDirectoryMerge
(Map<File, Map<String, SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, File targetAbsPath, SVNURL sourceRootUrl, ISvnDiffCallback2 processor, SVNDepth depth, boolean squelchMergeinfoNotifications) private SvnSingleRangeConflictReport
doFileMerge
(File targetAbsPath, Map<File, Map<String, SVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, ISvnDiffCallback2 mergeProcessor, boolean sourcesRelated, boolean squelcheMergeInfoNotifications) 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) private void
driveMergeReportEditor
(File targetAbsPath, SvnNgMergeDriver.MergeSource source, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, ISvnDiffCallback2 processor, SVNDepth depth) driveMergeReportEditor
(File targetWCPath, SVNURL url1, long revision1, SVNURL url2, long revision2, Map<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
(File targetAbsPath, boolean allowMixedRevs, boolean allowLocalMods, boolean allowSwitchedSubtrees) private void
filterMergedRevisions
(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, SVNRepository repository, String mergeInfoPath, Map targetMergeInfo, long rev1, long rev2, boolean childInheritsImplicit) private SVNMergeRangeList
filterNaturalHistoryFromMergeInfo
(String srcPath, Map<String, SVNMergeRangeList> implicitMergeInfo, SVNMergeRange requestedRange) protected void
findGapsInMergeSourceHistory
(long[] gap, String mergeSrcCanonPath, SVNURL url1, long rev1, SVNURL url2, long rev2, SVNRepository repos) protected static int
findNearestAncestor
(Object[] childrenWithMergeInfoArray, boolean pathIsOwnAncestor, File path) protected static SvnNgMergeDriver.MergePath
findNearestAncestor
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsAncestor, File localAbsPath) static SvnNgMergeDriver.MergePath
findNearestAncestorWithIntersectingRanges
(long[] revisions, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsOwnAncestor, File localAbsPath) private void
fixDeletedSubtreeRanges
(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
flagSubTreesNeedingMergeInfo
(boolean operativeMerge, SVNMergeRange mergeRange, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, File mergeInfoPath, SVNDepth depth) private SvnNgMergeDriver.MergePath
getChildWithMergeinfo
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, File path) protected Map<String,
SVNMergeRangeList>[] getFullMergeInfo
(boolean getRecorded, boolean getImplicit, boolean[] inherited, SVNMergeInfoInheritance inherit, SVNRepository repos, File target, long start, long end) getInoperativeImmediateChildrent
(String mergeSourceReposAbsPath, long oldestRev, long youngestRev, File targetAbsPath, SVNRepository repos, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private Map<File,
SvnNgMergeDriver.MergePath> getMergeInfoPaths
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, File targetAbsPath, SVNDepth depth, boolean dryRun, boolean sameRepos) private long
getMostInclusiveEndRevision
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) private long
getMostInclusiveStartRevision
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) getOperativeImmediateChildren
(File mergeSourceFsPath, long oldestRevision, long youngestRevision, File mergeTargetAbsPath, SVNDepth depth, SVNRepository repository) protected String
getPathRelativeToRoot
(SVNURL url, SVNURL reposRootURL, SVNRepository repos) private TreeMap<File,
Map<String, SVNMergeRangeList>> getWcExplicitMergeInfoCatalog
(File targetAbsPath, SVNDepth depth) private void
inheritImplicitMergeinfoFromParent
(SvnNgMergeDriver.MergePath parent, SvnNgMergeDriver.MergePath child, long revision1, long revision2, SVNRepository repository) private void
insertParentAndSiblingsOfAbsentDelSubtree
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SvnNgMergeDriver.MergePath child, SVNDepth depth) (package private) boolean
isDryRunAddition
(File path) (package private) boolean
isDryRunDeletion
(File path) protected boolean
private static boolean
isOperativeNotification
(SVNEvent event) private boolean
isPathSubtree
(File localAbsPath, Collection<File> subtrees) boolean
private boolean
isSubtree
(File path, Collection<File> paths) private boolean
isSubtreeTouchedByMerge
(File absPath) private SVNErrorMessage
makeMergeConflictError
(File targetPath, SVNMergeRange range) static void
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) normalizeMergeSources
(SvnTarget source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, Collection<SVNRevisionRange> rangesToMerge, SVNRepository repository) performObstructionCheck
(File localAbsPath, SVNNodeKind expectedKind) private void
populateRemainingRanges
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, boolean honorMergeInfo, SVNRepository repository, String parentMergeSrcCanonPath) private void
processChildrenWithNewMergeInfo
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
recordMergeinfo
(File localAbsPath, Map<String, SVNMergeRangeList> mergeinfo, boolean notify) private void
recordMergeInfoForAddedSubtrees
(SVNMergeRange range, String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) protected void
recordMergeInfoForDirectoryMerge
(Map<File, Map<String, SVNMergeRangeList>> resultCatalog, SVNMergeRange mergeRange, String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
recordSkips
(String mergeInfoPath, SVNMergeRangeList childMergeRangelist, boolean isRollBack) private void
removeAbsentChildren
(File targetWCPath, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
removeChildrenWithDeletedMergeInfo
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
removeFirstRangeFromRemainingRanges
(long endRevision, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private SVNMergeRangeList
removeNoOpMergeRanges
(SVNRepository repository, SVNMergeRangeList ranges) private void
removeNoOpSubtreeRanges
(SVNURL url1, long revision1, SVNURL url2, long revision2, File targetAbsPath, SVNRepository repository, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) private void
removeSourceGap
(SVNMergeRange range, SVNMergeRangeList implicitSrcGap) private boolean
resolveConflicts
(Collection<File> conflictedPaths) singleFileMergeGetFile
(SVNRepository repository, SVNURL url, long revision, File wcTarget) private void
sliceRemainingRanges
(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack, long endRevision) private void
updateWCMergeInfo
(Map<File, Map<String, SVNMergeRangeList>> resultCatalog, File targetAbsPath, String reposRelPath, Map<File, SVNMergeRangeList> merges, boolean isRollBack)
-
Field Details
-
PATH_COMPARATOR
-
diff3Cmd
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
File targetAbsPath -
addedPath
File addedPath -
reposRootUrl
SVNURL reposRootUrl -
mergeSource
SvnNgMergeDriver.MergeSource mergeSource -
implicitSrcGap
-
context
SVNWCContext context -
addNecessiatedMerge
private boolean addNecessiatedMerge -
dryRunDeletions
Collection<File> dryRunDeletions -
dryRunAdded
Collection<File> dryRunAdded -
operativeNotifications
private int operativeNotifications -
notifications
private int notifications -
addedPaths
-
mergedPaths
-
skippedPaths
-
treeConflictedPaths
-
conflictedPaths
-
pathsWithNewMergeInfo
Collection<File> pathsWithNewMergeInfo -
pathsWithDeletedMergeInfo
Collection<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, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsOwnAncestor, File localAbsPath) -
makeMergeConflictError
- Throws:
SVNException
-
ensureWcIsSuitableForMerge
public void ensureWcIsSuitableForMerge(File targetAbsPath, boolean allowMixedRevs, boolean allowLocalMods, boolean allowSwitchedSubtrees) throws SVNException - Throws:
SVNException
-
mergeCousinsAndSupplementMergeInfo
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 - Throws:
SVNException
-
normalizeMergeSources
public List<SvnNgMergeDriver.MergeSource> normalizeMergeSources(SvnTarget source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, Collection<SVNRevisionRange> rangesToMerge, SVNRepository repository) throws SVNException - Throws:
SVNException
-
combineRangeWithSegments
private List<SvnNgMergeDriver.MergeSource> combineRangeWithSegments(SVNMergeRange range, SVNLocationSegment[] segments, SVNURL sourceRootURL) throws SVNException - Throws:
SVNException
-
doMerge
protected SvnNgMergeDriver.MergeData doMerge(Map<File, Map<String, throws SVNExceptionSVNMergeRangeList>> 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
-
doMergeInfoAwareDirectoryMerge
protected SvnSingleRangeConflictReport doMergeInfoAwareDirectoryMerge(Map<File, Map<String, throws SVNExceptionSVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, File targetPath, SVNURL sourceRootUrl, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth, boolean squelchMergeinfoNotifications, ISvnDiffCallback2 processor) - Throws:
SVNException
-
doMergeInfoUnawareDirectoryMerge
protected SvnSingleRangeConflictReport doMergeInfoUnawareDirectoryMerge(SvnNgMergeDriver.MergeSource source, File targetPath, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNDepth depth) throws SVNException- Throws:
SVNException
-
doFileMerge
private SvnSingleRangeConflictReport doFileMerge(File targetAbsPath, Map<File, Map<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, File wcTarget) throws SVNException - Throws:
SVNException
-
doDirectoryMerge
protected SvnSingleRangeConflictReport doDirectoryMerge(Map<File, Map<String, throws SVNExceptionSVNMergeRangeList>> resultCatalog, SvnNgMergeDriver.MergeSource source, File targetAbsPath, SVNURL sourceRootUrl, ISvnDiffCallback2 processor, SVNDepth depth, boolean squelchMergeinfoNotifications) - Throws:
SVNException
-
removeNoOpSubtreeRanges
private void removeNoOpSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, File targetAbsPath, SVNRepository repository, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
driveMergeReportEditor
private void driveMergeReportEditor(File targetAbsPath, SvnNgMergeDriver.MergeSource source, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, ISvnDiffCallback2 processor, SVNDepth depth) throws SVNException- Throws:
SVNException
-
driveMergeReportEditor
public SvnNgRemoteMergeEditor driveMergeReportEditor(File targetWCPath, SVNURL url1, long revision1, SVNURL url2, long revision2, Map<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(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean pathIsAncestor, File localAbsPath) -
findNearestAncestor
-
getWcExplicitMergeInfoCatalog
private TreeMap<File,Map<String, getWcExplicitMergeInfoCatalogSVNMergeRangeList>> (File targetAbsPath, SVNDepth depth) throws SVNException - Throws:
SVNException
-
getMergeInfoPaths
private Map<File,SvnNgMergeDriver.MergePath> getMergeInfoPaths(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, File targetAbsPath, SVNDepth depth, boolean dryRun, boolean sameRepos) throws SVNException- Throws:
SVNException
-
insertParentAndSiblingsOfAbsentDelSubtree
private void insertParentAndSiblingsOfAbsentDelSubtree(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SvnNgMergeDriver.MergePath child, SVNDepth depth) throws SVNException- Throws:
SVNException
-
getChildWithMergeinfo
private SvnNgMergeDriver.MergePath getChildWithMergeinfo(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, File path) -
populateRemainingRanges
private void populateRemainingRanges(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, boolean honorMergeInfo, SVNRepository repository, String parentMergeSrcCanonPath) throws SVNException- Throws:
SVNException
-
getFullMergeInfo
protected Map<String,SVNMergeRangeList>[] getFullMergeInfo(boolean getRecorded, boolean getImplicit, boolean[] inherited, SVNMergeInfoInheritance inherit, SVNRepository repos, File target, long start, long end) throws SVNException - Throws:
SVNException
-
calculateImplicitMergeInfo
public 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, 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, 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, String mergeInfoPath, Map targetMergeInfo, long rev1, long rev2, boolean childInheritsImplicit) throws SVNException - Throws:
SVNException
-
getPathRelativeToRoot
protected String getPathRelativeToRoot(SVNURL url, SVNURL reposRootURL, SVNRepository repos) throws SVNException - Throws:
SVNException
-
sliceRemainingRanges
private void sliceRemainingRanges(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack, long endRevision) -
getMostInclusiveEndRevision
private long getMostInclusiveEndRevision(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) -
getMostInclusiveStartRevision
private long getMostInclusiveStartRevision(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, boolean isRollBack) -
processChildrenWithNewMergeInfo
private void processChildrenWithNewMergeInfo(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
removeChildrenWithDeletedMergeInfo
private void removeChildrenWithDeletedMergeInfo(Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) -
removeFirstRangeFromRemainingRanges
private void removeFirstRangeFromRemainingRanges(long endRevision, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) -
makeMergeConflictError
-
removeAbsentChildren
private void removeAbsentChildren(File targetWCPath, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) -
recordMergeInfoForDirectoryMerge
protected void recordMergeInfoForDirectoryMerge(Map<File, Map<String, throws SVNExceptionSVNMergeRangeList>> resultCatalog, SVNMergeRange mergeRange, String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) - Throws:
SVNException
-
removeSourceGap
-
flagSubTreesNeedingMergeInfo
private void flagSubTreesNeedingMergeInfo(boolean operativeMerge, SVNMergeRange mergeRange, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo, File mergeInfoPath, SVNDepth depth) throws SVNException- Throws:
SVNException
-
isPathSubtree
-
getOperativeImmediateChildren
private Map<File,String> getOperativeImmediateChildren(File mergeSourceFsPath, long oldestRevision, long youngestRevision, File mergeTargetAbsPath, SVNDepth depth, SVNRepository repository) throws SVNException - Throws:
SVNException
-
calculateMergeInheritance
private boolean calculateMergeInheritance(SVNMergeRangeList rangeList, File localAbsPath, boolean wcPathIsMergeTarget, boolean wcPathHasMissingChild, SVNDepth depth) throws SVNException - Throws:
SVNException
-
recordSkips
private void recordSkips(String mergeInfoPath, SVNMergeRangeList childMergeRangelist, boolean isRollBack) throws SVNException - Throws:
SVNException
-
updateWCMergeInfo
private void updateWCMergeInfo(Map<File, Map<String, throws SVNExceptionSVNMergeRangeList>> resultCatalog, File targetAbsPath, String reposRelPath, Map<File, SVNMergeRangeList> merges, boolean isRollBack) - Throws:
SVNException
-
recordMergeinfo
private void recordMergeinfo(File localAbsPath, Map<String, SVNMergeRangeList> mergeinfo, boolean notify) throws SVNException- Throws:
SVNException
-
isSubtreeTouchedByMerge
-
isSubtree
-
filterNaturalHistoryFromMergeInfo
private SVNMergeRangeList filterNaturalHistoryFromMergeInfo(String srcPath, Map<String, SVNMergeRangeList> implicitMergeInfo, SVNMergeRange requestedRange) -
getInoperativeImmediateChildrent
private Map<File,String> getInoperativeImmediateChildrent(String mergeSourceReposAbsPath, long oldestRev, long youngestRev, File targetAbsPath, SVNRepository repos, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
recordMergeInfoForAddedSubtrees
private void recordMergeInfoForAddedSubtrees(SVNMergeRange range, String mergeInfoPath, SVNDepth depth, boolean squelchMergeinfoNotifications, Map<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, Map<File, SvnNgMergeDriver.MergePath> childrenWithMergeInfo) throws SVNException- Throws:
SVNException
-
checkCancelled
- Throws:
SVNCancelException
-
isOperativeNotification
-
ensureRepository
- Throws:
SVNException
-
performObstructionCheck
public SvnNgMergeDriver.ObstructionState performObstructionCheck(File localAbsPath, SVNNodeKind expectedKind) throws SVNException - Throws:
SVNException
-
isDryRunAddition
-
isDryRunDeletion
-
checkWcForObstruction
private void checkWcForObstruction(SvnNgMergeDriver.ObstructionState result, File localAbsPath, boolean noWcRootCheck) throws SVNException - Throws:
SVNException
-
resolveConflicts
- Throws:
SVNException
-