Class SVNMergeDriver
- java.lang.Object
-
- org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate
-
- org.tmatesoft.svn.core.internal.wc.SVNMergeDriver
-
- All Implemented Interfaces:
ISVNMergeStrategy
,ISVNCanceller
,ISVNEventHandler
- Direct Known Subclasses:
SVNDiffClient16
public abstract class SVNMergeDriver extends SVNBasicDelegate implements ISVNMergeStrategy
- Version:
- 1.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
SVNMergeDriver.CopyFromReceiver
private class
SVNMergeDriver.LogHandlerFilter
protected static class
SVNMergeDriver.MergeAction
protected class
SVNMergeDriver.MergeInfoFetcher
protected class
SVNMergeDriver.MergePath
protected class
SVNMergeDriver.MergeSource
private class
SVNMergeDriver.NoopLogHandler
protected class
SVNMergeDriver.SubTreeMergeInfoHandler
-
Nested classes/interfaces inherited from class org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate
SVNBasicDelegate.RepositoryReference, SVNBasicDelegate.SVNRepositoryLocation
-
-
Field Summary
-
Fields inherited from interface org.tmatesoft.svn.core.ISVNCanceller
NULL
-
Fields inherited from interface org.tmatesoft.svn.core.wc.ISVNEventHandler
UNKNOWN
-
-
Constructor Summary
Constructors Modifier Constructor Description SVNMergeDriver(ISVNAuthenticationManager authManager, ISVNOptions options)
protected
SVNMergeDriver(ISVNRepositoryPool repositoryPool, ISVNOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
addPathWithDeletedMergeInfo(java.io.File path)
protected void
addPathWithNewMergeInfo(java.io.File path)
private void
adjustDeletedSubTreeRanges(SVNMergeDriver.MergePath child, SVNMergeDriver.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 java.util.Map
calculateLeftHandSide(SVNURL[] leftURL, long[] leftRev, java.lang.String targetReposRelPath, java.util.Collection subTreesWithMergeInfo, long targetRev, java.lang.String sourceReposRelPath, SVNURL sourceReposRoot, long sourceRev, SVNRepository sourceRepository, SVNRepository targetRepository)
private void
calculateMergeInheritance(SVNMergeRangeList rangeList, SVNEntry entry, boolean wcPathIsMergeTarget, boolean wcPathHasMissingChild, SVNDepth depth)
java.lang.Object[]
calculateRemainingRangeList(java.io.File targetFile, SVNEntry entry, SVNURL sourceRoot, boolean[] indirect, SVNURL url1, long revision1, SVNURL url2, long revision2, SVNMergeRange range)
void
calculateRemainingRanges(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, java.util.Map targetMergeInfo, SVNMergeRangeList implicitSrcGap, boolean isSubtree, boolean childInheritsImplicit, SVNEntry entry, SVNRepository repository)
void
checkCancelled()
Redirects this call to the registered event handler (if any).private java.util.List
combineRangeWithSegments(SVNMergeRange range, SVNLocationSegment[] segments, SVNURL sourceRootURL)
private static SVNProperties
computePropsDiff(SVNProperties props1, SVNProperties props2)
protected void
doDirectoryMerge(java.util.Map resultCatalog, SVNURL url1, long revision1, SVNURL url2, long revision2, SVNEntry parentEntry, SVNAdminArea adminArea, SVNDepth depth)
protected void
doDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNEntry parentEntry, SVNAdminArea adminArea, SVNDepth depth)
Deprecated.protected void
doFileMerge(java.util.Map resultCatalog, SVNURL url1, long revision1, SVNURL url2, long revision2, java.io.File targetWCPath, SVNAdminArea adminArea, boolean sourcesRelated)
protected void
doFileMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, java.io.File targetWCPath, SVNAdminArea adminArea, boolean sourcesRelated)
Deprecated.protected void
doMerge(java.util.Map resultCatalog, java.util.List mergeSources, java.io.File target, SVNEntry targetEntry, SVNAdminArea adminArea, boolean sourcesAncestral, boolean sourcesRelated, boolean sameRepository, boolean ignoreAncestry, boolean force, boolean dryRun, boolean recordOnly, boolean reintegrateMerge, SVNDepth depth)
protected void
doMergeInfoUnawareDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNAdminArea adminArea, SVNDepth depth)
ISVNReusableEditor
driveMergeReportEditor(java.io.File targetWCPath, SVNURL url1, long revision1, SVNURL url2, long revision2, java.util.List childrenWithMergeInfo, boolean isRollBack, SVNDepth depth, SVNAdminArea adminArea, SVNMergeCallback mergeCallback, ISVNReusableEditor editor)
private void
ensureAllMissingRangesArePhantoms(SVNRepository repository, java.util.Map unmergedHistory)
private void
ensureImplicitMergeinfo(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, boolean childInheritsParent, SVNEntry entry, long revision1, long revision2, SVNRepository repository)
protected SVNRepository
ensureRepository(SVNRepository repository, SVNURL url)
private void
ensureWCReflectsRepositorySubTree(java.io.File targetWCPath)
private void
filterMergedRevisions(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, SVNEntry entry, 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 implicitMergeInfo, SVNMergeRange requestedRange)
static SVNProperties
filterProperties(SVNProperties props1, boolean leftRegular, boolean leftEntry, boolean leftWC)
static SVNProperties
filterProperties(SVNProperties props1, boolean leftRegular, boolean leftEntry, boolean leftWC, boolean leftKeywords)
protected SVNProperties
filterSelfReferentialMergeInfo(SVNProperties props, java.io.File path)
protected void
findGapsInMergeSourceHistory(long[] gap, java.lang.String mergeSrcCanonPath, SVNURL url1, long rev1, SVNURL url2, long rev2, SVNRepository repos)
private int
findNearestAncestor(java.lang.Object[] childrenWithMergeInfoArray, boolean pathIsOwnAncestor, java.io.File path)
private java.util.Map
findUnmergedMergeInfo(boolean[] neverSynched, long[] youngestMergedRev, long[] ycAncestorRev, java.util.Map srcCatalog, java.util.Map targetSegments, java.lang.String sourceReposPath, java.lang.String targetReposPath, long targetRev, long srcRev, SVNRepository sourceRepository, SVNRepository targetRepository)
private void
fixDeletedSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository)
protected SVNLocationEntry
getCopySource(java.io.File path, SVNURL url, SVNRevision revision)
protected SVNMergeDriver.MergeSource
getCurrentMergeSource()
protected java.util.Map[]
getFullMergeInfo(SVNEntry entry, boolean getRecorded, boolean getImplicit, boolean[] indirect, SVNMergeInfoInheritance inherit, SVNRepository repos, java.io.File target, long start, long end)
java.util.Map
getHistoryAsMergeInfo(SVNURL url, java.io.File path, SVNRevision pegRevision, long rangeYoungest, long rangeOldest, SVNRepository repos, SVNWCAccess access)
protected SVNLogClient16
getLogClient()
void
getLogEligibleMergeInfo(java.io.File path, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
void
getLogEligibleMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
void
getLogEligibleMergeInfo(SVNURL url, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
void
getLogEligibleMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
void
getLogMergedMergeInfo(java.io.File path, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
void
getLogMergedMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
void
getLogMergedMergeInfo(SVNURL url, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
void
getLogMergedMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler)
protected void
getLogsForMergeInfoRangeList(SVNURL reposRootURL, java.lang.String[] paths, SVNMergeRangeList rangeList, boolean discoverChangedPaths, java.lang.String[] revProps, ISVNLogEntryHandler handler)
private SVNMergeCallback
getMergeCallback(SVNAdminArea adminArea)
java.util.Map
getMergedMergeInfo(java.io.File path, SVNRevision pegRevision)
Deprecated.java.util.Map
getMergedMergeInfo(SVNURL url, SVNRevision pegRevision)
Deprecated.protected java.util.Map
getMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL[] repositoryRoot)
protected java.util.Map
getMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL[] repositoryRoot)
ISVNEntryHandler
getMergeInfoEntryHandler(java.lang.String mergeSrcPath, SVNURL sourceRootURL, long revision1, long revision2, SVNRepository repository, SVNDepth depth, java.util.List childrenWithMergeInfo)
static java.util.Map<java.lang.String,SVNMergeRangeList>
getMergeInfoFromSegments(java.util.Collection segments)
private java.util.List
getMergeInfoPaths(java.util.List children, java.lang.String mergeSrcPath, SVNEntry entry, SVNURL sourceRootURL, long revision1, long revision2, boolean honorMergeInfo, SVNRepository repository, SVNDepth depth)
abstract SVNDiffOptions
getMergeOptions()
ISVNReusableEditor
getMergeReportEditor(long defaultStart, long revision, SVNAdminArea adminArea, SVNDepth depth, AbstractDiffCallback mergeCallback, ISVNReusableEditor editor)
private long
getMostInclusiveEndRevision(java.util.List childrenWithMergeInfo, boolean isRollBack)
private long
getMostInclusiveStartRevision(java.util.List childrenWithMergeInfo, boolean isRollBack)
private SVNLocationEntry
getYoungestCommonAncestor(java.io.File path1, SVNURL url1, long revision1, java.io.File path2, SVNURL url2, long revision2)
void
handleEvent(SVNEvent event, double progress)
Dispatches events to the registered event handler (if any).private void
inheritImplicitMergeinfoFromParent(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, long revision1, long revision2, SVNRepository repository)
protected boolean
isHonorMergeInfo()
private boolean
isOperativeNotification(SVNEvent event)
boolean
isRecordMergeInfo()
boolean
isSameRepository()
private java.io.File
loadFile(SVNRepository repository, long revision, SVNProperties properties, SVNAdminArea adminArea)
private SVNErrorMessage
makeMergeConflictError(java.io.File targetPath, SVNMergeRange range)
protected SVNTreeConflictDescription
makeTreeConflict(java.io.File victim, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason)
private void
mergeCousinsAndSupplementMergeInfo(java.io.File targetWCPath, SVNEntry entry, SVNAdminArea adminArea, SVNRepository repository1, SVNRepository repository2, SVNURL url1, long rev1, SVNURL url2, long rev2, long youngestCommonRev, SVNURL sourceReposRoot, SVNURL wcReposRoot, SVNDepth depth, boolean ignoreAncestry, boolean force, boolean recordOnly, boolean dryRun)
private boolean
mergeRangeContainsRevision(SVNMergeRange range, long rev)
private java.util.List
normalizeMergeSources(java.io.File source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, java.util.Collection rangesToMerge, SVNRepository repository)
private boolean
notifySingleFileMerge(java.io.File targetWCPath, SVNEventAction action, SVNStatusType cstate, SVNStatusType pstate, SVNEvent headerEvent, boolean isHeaderSent)
private void
populateRemainingRanges(java.util.List childrenWithMergeInfo, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, boolean honorMergeInfo, SVNRepository repository, java.lang.String parentMergeSrcCanonPath)
private void
processChildrenWithDeletedMergeInfo()
private void
processChildrenWithNewMergeInfo()
protected void
recordMergeInfoForAddedSubtrees(SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth)
protected void
recordMergeInfoForDirectoryMerge(java.util.Map resultCatalog, SVNEntry targetEntry, SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth)
private void
recordSkips(java.lang.String mergeInfoPath, SVNEntry targetEntry, boolean isRollback)
protected void
recordTreeConflict(java.io.File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason)
protected void
recordTreeConflictOnAdd(java.io.File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason)
private void
removeAbsentChildren(java.io.File targetWCPath, java.util.List childrenWithMergeInfo)
private void
removeFirstRangeFromRemainingRanges(long endRevision, java.util.List childrenWithMergeInfo)
private SVNMergeRangeList
removeNoOpMergeRanges(SVNRepository repository, SVNMergeRangeList ranges)
private void
removeNoOpSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository)
protected void
runMerge(SVNURL url1, SVNRevision revision1, SVNURL url2, SVNRevision revision2, java.io.File targetWCPath, SVNDepth depth, boolean dryRun, boolean force, boolean ignoreAncestry, boolean recordOnly)
protected void
runMergeReintegrate(SVNURL srcURL, java.io.File srcPath, SVNRevision pegRevision, java.io.File targetWCPath, boolean dryRun)
protected void
runPeggedMerge(SVNURL srcURL, java.io.File srcPath, java.util.Collection rangesToMerge, SVNRevision pegRevision, java.io.File targetWCPath, SVNDepth depth, boolean dryRun, boolean force, boolean ignoreAncestry, boolean recordOnly)
private void
sliceRemainingRanges(java.util.List childrenWithMergeInfo, boolean isRollBack, long endRevision)
private java.util.Map
splitMergeInfoOnRevision(java.util.Map[] mergeInfo, long revision)
java.util.Collection
suggestMergeSources(java.io.File path, SVNRevision pegRevision)
java.util.Collection
suggestMergeSources(SVNURL url, SVNRevision pegRevision)
Deprecated.private void
updateWCMergeInfo(java.util.Map resultCatalog, java.io.File targetPath, java.lang.String parentReposPath, SVNEntry entry, java.util.Map merges, boolean isRollBack)
-
Methods inherited from class org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate
createRepository, createRepository, createRepository, createWCAccess, createWCAccess, deriveLocation, dispatchEvent, dispatchEvent, elideMergeInfo, ensureSessionURL, getDebugLog, getEntryLocation, getEventDispatcher, getLevelsToLockFromDepth, getLocations, getOptions, getPathLastChangeRevision, getPathRelativeToRoot, getPathRelativeToSession, getRepositoryPool, getReposMergeInfo, getReposRoot, getRevisionNumber, getRevisionNumber, getURL, getWCMergeInfo, getWCOrRepositoryMergeInfo, handlePathListItem, isIgnoreExternals, isLeaveConflictsUnresolved, resolveRevisions, setCommitItemAccess, setCommitItemFlags, setCommitItemProperty, setDebugLog, setEventHandler, setEventPathPrefix, setIgnoreExternals, setLeaveConflictsUnresolved, setOptions, setPathListHandler, sleepForTimeStamp
-
-
-
-
Field Detail
-
myAreSourcesAncestral
protected boolean myAreSourcesAncestral
-
myIsSameRepository
protected boolean myIsSameRepository
-
myIsDryRun
protected boolean myIsDryRun
-
myIsRecordOnly
protected boolean myIsRecordOnly
-
myIsForce
protected boolean myIsForce
-
myIsTargetMissingChild
protected boolean myIsTargetMissingChild
-
myHasExistingMergeInfo
protected boolean myHasExistingMergeInfo
-
myIsIgnoreAncestry
protected boolean myIsIgnoreAncestry
-
myIsSingleFileMerge
protected boolean myIsSingleFileMerge
-
myIsMergeInfoCapable
protected boolean myIsMergeInfoCapable
-
myIsReIntegrateMerge
protected boolean myIsReIntegrateMerge
-
myIsAddNecessitatedMerge
protected boolean myIsAddNecessitatedMerge
-
myOperativeNotificationsNumber
protected int myOperativeNotificationsNumber
-
myNotificationsNumber
protected int myNotificationsNumber
-
myCurrentAncestorIndex
protected int myCurrentAncestorIndex
-
myConflictedPaths
protected java.util.Map myConflictedPaths
-
myDryRunDeletions
protected java.util.Map myDryRunDeletions
-
myURL
protected SVNURL myURL
-
myTarget
protected java.io.File myTarget
-
myMergedPaths
private java.util.List myMergedPaths
-
mySkippedPaths
private java.util.List mySkippedPaths
-
myChildrenWithMergeInfo
private java.util.List myChildrenWithMergeInfo
-
myAddedPaths
private java.util.List myAddedPaths
-
myWCAccess
protected SVNWCAccess myWCAccess
-
myRepository1
protected SVNRepository myRepository1
-
myRepository2
protected SVNRepository myRepository2
-
myLogClient
private SVNLogClient16 myLogClient
-
myPathsWithNewMergeInfo
private java.util.List myPathsWithNewMergeInfo
-
myPathsWithDeletedMergeInfo
private java.util.LinkedList myPathsWithDeletedMergeInfo
-
myCurrentMergeSource
private SVNMergeDriver.MergeSource myCurrentMergeSource
-
myImplicitSrcGap
private SVNMergeRangeList myImplicitSrcGap
-
-
Constructor Detail
-
SVNMergeDriver
public SVNMergeDriver(ISVNAuthenticationManager authManager, ISVNOptions options)
-
SVNMergeDriver
protected SVNMergeDriver(ISVNRepositoryPool repositoryPool, ISVNOptions options)
-
-
Method Detail
-
getMergeOptions
public abstract SVNDiffOptions getMergeOptions()
-
getLogMergedMergeInfo
public void getLogMergedMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
Deprecated.- Parameters:
path
-pegRevision
-mergeSrcURL
-srcPegRevision
-discoverChangedPaths
-revisionProperties
-handler
-- Throws:
SVNException
-
getLogMergedMergeInfo
public void getLogMergedMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
Deprecated.- Parameters:
url
-pegRevision
-mergeSrcURL
-srcPegRevision
-discoverChangedPaths
-revisionProperties
-handler
-- Throws:
SVNException
-
getLogMergedMergeInfo
public void getLogMergedMergeInfo(java.io.File path, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
Deprecated.- Parameters:
path
-pegRevision
-mergeSrcPath
-srcPegRevision
-discoverChangedPaths
-revisionProperties
-handler
-- Throws:
SVNException
-
getLogMergedMergeInfo
public void getLogMergedMergeInfo(SVNURL url, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
Deprecated.- Parameters:
url
-pegRevision
-mergeSrcPath
-srcPegRevision
-discoverChangedPaths
-revisionProperties
-handler
-- Throws:
SVNException
-
getLogEligibleMergeInfo
public void getLogEligibleMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
Deprecated.- Parameters:
path
-pegRevision
-mergeSrcURL
-srcPegRevision
-discoverChangedPaths
-revisionProperties
-handler
-- Throws:
SVNException
-
getLogEligibleMergeInfo
public void getLogEligibleMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
Deprecated.- Parameters:
url
-pegRevision
-mergeSrcURL
-srcPegRevision
-discoverChangedPaths
-revisionProperties
-handler
-- Throws:
SVNException
-
getLogEligibleMergeInfo
public void getLogEligibleMergeInfo(java.io.File path, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
Deprecated.- Parameters:
path
-pegRevision
-mergeSrcPath
-srcPegRevision
-discoverChangedPaths
-revisionProperties
-handler
-- Throws:
SVNException
-
getLogEligibleMergeInfo
public void getLogEligibleMergeInfo(SVNURL url, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
Deprecated.- Parameters:
url
-pegRevision
-mergeSrcPath
-srcPegRevision
-discoverChangedPaths
-revisionProperties
-handler
-- Throws:
SVNException
-
getMergedMergeInfo
public java.util.Map getMergedMergeInfo(java.io.File path, SVNRevision pegRevision) throws SVNException
Deprecated.- Parameters:
path
-pegRevision
-- Returns:
- mergeinfo
- Throws:
SVNException
-
getMergedMergeInfo
public java.util.Map getMergedMergeInfo(SVNURL url, SVNRevision pegRevision) throws SVNException
Deprecated.- Parameters:
url
-pegRevision
-- Returns:
- mergeinfo
- Throws:
SVNException
-
suggestMergeSources
public java.util.Collection suggestMergeSources(java.io.File path, SVNRevision pegRevision) throws SVNException
- Parameters:
path
-pegRevision
-- Returns:
- mergeinfo
- Throws:
SVNException
-
suggestMergeSources
public java.util.Collection suggestMergeSources(SVNURL url, SVNRevision pegRevision) throws SVNException
Deprecated.- Parameters:
url
-pegRevision
-- Returns:
- mergeinfo
- Throws:
SVNException
-
handleEvent
public void handleEvent(SVNEvent event, double progress) throws SVNException
Description copied from class:SVNBasicDelegate
Dispatches events to the registered event handler (if any).- Specified by:
handleEvent
in interfaceISVNEventHandler
- Overrides:
handleEvent
in classSVNBasicDelegate
- Parameters:
event
- the current eventprogress
- progress state (from 0 to 1)- Throws:
SVNException
-
checkCancelled
public void checkCancelled() throws SVNCancelException
Description copied from class:SVNBasicDelegate
Redirects this call to the registered event handler (if any).- Specified by:
checkCancelled
in interfaceISVNCanceller
- Overrides:
checkCancelled
in classSVNBasicDelegate
- Throws:
SVNCancelException
- if the current operation was cancelled
-
getCopySource
protected SVNLocationEntry getCopySource(java.io.File path, SVNURL url, SVNRevision revision) throws SVNException
- Throws:
SVNException
-
getLogsForMergeInfoRangeList
protected void getLogsForMergeInfoRangeList(SVNURL reposRootURL, java.lang.String[] paths, SVNMergeRangeList rangeList, boolean discoverChangedPaths, java.lang.String[] revProps, ISVNLogEntryHandler handler) throws SVNException
- Throws:
SVNException
-
getMergeInfo
protected java.util.Map getMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL[] repositoryRoot) throws SVNException
- Throws:
SVNException
-
getMergeInfo
protected java.util.Map getMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL[] repositoryRoot) throws SVNException
- Throws:
SVNException
-
runPeggedMerge
protected void runPeggedMerge(SVNURL srcURL, java.io.File srcPath, java.util.Collection rangesToMerge, SVNRevision pegRevision, java.io.File targetWCPath, SVNDepth depth, boolean dryRun, boolean force, boolean ignoreAncestry, boolean recordOnly) throws SVNException
- Throws:
SVNException
-
runMerge
protected void runMerge(SVNURL url1, SVNRevision revision1, SVNURL url2, SVNRevision revision2, java.io.File targetWCPath, SVNDepth depth, boolean dryRun, boolean force, boolean ignoreAncestry, boolean recordOnly) throws SVNException
- Throws:
SVNException
-
runMergeReintegrate
protected void runMergeReintegrate(SVNURL srcURL, java.io.File srcPath, SVNRevision pegRevision, java.io.File targetWCPath, boolean dryRun) throws SVNException
- Throws:
SVNException
-
doMerge
protected void doMerge(java.util.Map resultCatalog, java.util.List mergeSources, java.io.File target, SVNEntry targetEntry, SVNAdminArea adminArea, boolean sourcesAncestral, boolean sourcesRelated, boolean sameRepository, boolean ignoreAncestry, boolean force, boolean dryRun, boolean recordOnly, boolean reintegrateMerge, SVNDepth depth) throws SVNException
- Throws:
SVNException
-
addPathWithNewMergeInfo
protected void addPathWithNewMergeInfo(java.io.File path)
-
addPathWithDeletedMergeInfo
protected void addPathWithDeletedMergeInfo(java.io.File path)
-
ensureRepository
protected SVNRepository ensureRepository(SVNRepository repository, SVNURL url) throws SVNException
- Throws:
SVNException
-
calculateRemainingRangeList
public java.lang.Object[] calculateRemainingRangeList(java.io.File targetFile, SVNEntry entry, SVNURL sourceRoot, boolean[] indirect, SVNURL url1, long revision1, SVNURL url2, long revision2, SVNMergeRange range) throws SVNException
- Specified by:
calculateRemainingRangeList
in interfaceISVNMergeStrategy
- 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
-
doFileMerge
protected void doFileMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, java.io.File targetWCPath, SVNAdminArea adminArea, boolean sourcesRelated) throws SVNException
Deprecated.- Throws:
SVNException
-
doFileMerge
protected void doFileMerge(java.util.Map resultCatalog, SVNURL url1, long revision1, SVNURL url2, long revision2, java.io.File targetWCPath, SVNAdminArea adminArea, boolean sourcesRelated) throws SVNException
- Throws:
SVNException
-
doMergeInfoUnawareDirectoryMerge
protected void doMergeInfoUnawareDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNAdminArea adminArea, SVNDepth depth) throws SVNException
- Throws:
SVNException
-
recordMergeInfoForDirectoryMerge
protected void recordMergeInfoForDirectoryMerge(java.util.Map resultCatalog, SVNEntry targetEntry, SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth) throws SVNException
- Throws:
SVNException
-
recordMergeInfoForAddedSubtrees
protected void recordMergeInfoForAddedSubtrees(SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth) throws SVNException
- Throws:
SVNException
-
doDirectoryMerge
protected void doDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNEntry parentEntry, SVNAdminArea adminArea, SVNDepth depth) throws SVNException
Deprecated.- Throws:
SVNException
-
doDirectoryMerge
protected void doDirectoryMerge(java.util.Map resultCatalog, SVNURL url1, long revision1, SVNURL url2, long revision2, SVNEntry parentEntry, SVNAdminArea adminArea, SVNDepth depth) throws SVNException
- Throws:
SVNException
-
filterSelfReferentialMergeInfo
protected SVNProperties filterSelfReferentialMergeInfo(SVNProperties props, java.io.File path) throws SVNException
- Throws:
SVNException
-
getLogClient
protected SVNLogClient16 getLogClient()
-
recordTreeConflict
protected void recordTreeConflict(java.io.File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException
- Throws:
SVNException
-
recordTreeConflictOnAdd
protected void recordTreeConflictOnAdd(java.io.File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException
- Throws:
SVNException
-
makeTreeConflict
protected SVNTreeConflictDescription makeTreeConflict(java.io.File victim, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException
- Throws:
SVNException
-
getMergeCallback
private SVNMergeCallback getMergeCallback(SVNAdminArea adminArea)
-
processChildrenWithNewMergeInfo
private void processChildrenWithNewMergeInfo() throws SVNException
- Throws:
SVNException
-
processChildrenWithDeletedMergeInfo
private void processChildrenWithDeletedMergeInfo()
-
splitMergeInfoOnRevision
private java.util.Map splitMergeInfoOnRevision(java.util.Map[] mergeInfo, long revision)
-
ensureWCReflectsRepositorySubTree
private void ensureWCReflectsRepositorySubTree(java.io.File targetWCPath) throws SVNException
- Throws:
SVNException
-
ensureAllMissingRangesArePhantoms
private void ensureAllMissingRangesArePhantoms(SVNRepository repository, java.util.Map unmergedHistory) throws SVNException
- Throws:
SVNException
-
findUnmergedMergeInfo
private java.util.Map findUnmergedMergeInfo(boolean[] neverSynched, long[] youngestMergedRev, long[] ycAncestorRev, java.util.Map srcCatalog, java.util.Map targetSegments, java.lang.String sourceReposPath, java.lang.String targetReposPath, long targetRev, long srcRev, SVNRepository sourceRepository, SVNRepository targetRepository) throws SVNException
- Throws:
SVNException
-
calculateLeftHandSide
private java.util.Map calculateLeftHandSide(SVNURL[] leftURL, long[] leftRev, java.lang.String targetReposRelPath, java.util.Collection subTreesWithMergeInfo, long targetRev, java.lang.String sourceReposRelPath, SVNURL sourceReposRoot, long sourceRev, SVNRepository sourceRepository, SVNRepository targetRepository) throws SVNException
- Throws:
SVNException
-
mergeRangeContainsRevision
private boolean mergeRangeContainsRevision(SVNMergeRange range, long rev) throws SVNException
- Throws:
SVNException
-
mergeCousinsAndSupplementMergeInfo
private void mergeCousinsAndSupplementMergeInfo(java.io.File targetWCPath, SVNEntry entry, SVNAdminArea adminArea, SVNRepository repository1, SVNRepository repository2, SVNURL url1, long rev1, SVNURL url2, long rev2, long youngestCommonRev, SVNURL sourceReposRoot, SVNURL wcReposRoot, SVNDepth depth, boolean ignoreAncestry, boolean force, boolean recordOnly, boolean dryRun) throws SVNException
- Throws:
SVNException
-
isSameRepository
public boolean isSameRepository()
-
isHonorMergeInfo
protected boolean isHonorMergeInfo()
-
isRecordMergeInfo
public boolean isRecordMergeInfo()
- Specified by:
isRecordMergeInfo
in interfaceISVNMergeStrategy
-
getCurrentMergeSource
protected SVNMergeDriver.MergeSource getCurrentMergeSource()
-
normalizeMergeSources
private java.util.List normalizeMergeSources(java.io.File source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, java.util.Collection rangesToMerge, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
combineRangeWithSegments
private java.util.List combineRangeWithSegments(SVNMergeRange range, SVNLocationSegment[] segments, SVNURL sourceRootURL) throws SVNException
- Throws:
SVNException
-
getYoungestCommonAncestor
private SVNLocationEntry getYoungestCommonAncestor(java.io.File path1, SVNURL url1, long revision1, java.io.File path2, SVNURL url2, long revision2) throws SVNException
- Throws:
SVNException
-
getFullMergeInfo
protected java.util.Map[] getFullMergeInfo(SVNEntry entry, boolean getRecorded, boolean getImplicit, boolean[] indirect, 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
- Specified by:
calculateImplicitMergeInfo
in interfaceISVNMergeStrategy
- Throws:
SVNException
-
findNearestAncestor
private int findNearestAncestor(java.lang.Object[] childrenWithMergeInfoArray, boolean pathIsOwnAncestor, java.io.File path)
-
getHistoryAsMergeInfo
public java.util.Map getHistoryAsMergeInfo(SVNURL url, java.io.File path, SVNRevision pegRevision, long rangeYoungest, long rangeOldest, SVNRepository repos, SVNWCAccess access) throws SVNException
- Throws:
SVNException
-
getMergeInfoFromSegments
public static java.util.Map<java.lang.String,SVNMergeRangeList> getMergeInfoFromSegments(java.util.Collection segments)
-
removeAbsentChildren
private void removeAbsentChildren(java.io.File targetWCPath, java.util.List childrenWithMergeInfo)
-
removeFirstRangeFromRemainingRanges
private void removeFirstRangeFromRemainingRanges(long endRevision, java.util.List childrenWithMergeInfo)
-
removeNoOpMergeRanges
private SVNMergeRangeList removeNoOpMergeRanges(SVNRepository repository, SVNMergeRangeList ranges) throws SVNException
- Throws:
SVNException
-
filterNaturalHistoryFromMergeInfo
private SVNMergeRangeList filterNaturalHistoryFromMergeInfo(java.lang.String srcPath, java.util.Map implicitMergeInfo, SVNMergeRange requestedRange)
-
sliceRemainingRanges
private void sliceRemainingRanges(java.util.List childrenWithMergeInfo, boolean isRollBack, long endRevision)
-
getMostInclusiveEndRevision
private long getMostInclusiveEndRevision(java.util.List childrenWithMergeInfo, boolean isRollBack)
-
inheritImplicitMergeinfoFromParent
private void inheritImplicitMergeinfoFromParent(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, long revision1, long revision2, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
ensureImplicitMergeinfo
private void ensureImplicitMergeinfo(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, boolean childInheritsParent, SVNEntry entry, long revision1, long revision2, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
getMostInclusiveStartRevision
private long getMostInclusiveStartRevision(java.util.List childrenWithMergeInfo, boolean isRollBack)
-
populateRemainingRanges
private void populateRemainingRanges(java.util.List childrenWithMergeInfo, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, boolean honorMergeInfo, SVNRepository repository, java.lang.String parentMergeSrcCanonPath) throws SVNException
- Throws:
SVNException
-
removeNoOpSubtreeRanges
private void removeNoOpSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
driveMergeReportEditor
public ISVNReusableEditor driveMergeReportEditor(java.io.File targetWCPath, SVNURL url1, long revision1, SVNURL url2, long revision2, java.util.List childrenWithMergeInfo, boolean isRollBack, SVNDepth depth, SVNAdminArea adminArea, SVNMergeCallback mergeCallback, ISVNReusableEditor editor) throws SVNException
- Specified by:
driveMergeReportEditor
in interfaceISVNMergeStrategy
- Throws:
SVNException
-
getMergeReportEditor
public ISVNReusableEditor getMergeReportEditor(long defaultStart, long revision, SVNAdminArea adminArea, SVNDepth depth, AbstractDiffCallback mergeCallback, ISVNReusableEditor editor) throws SVNException
- Specified by:
getMergeReportEditor
in interfaceISVNMergeStrategy
- Throws:
SVNException
-
makeMergeConflictError
private SVNErrorMessage makeMergeConflictError(java.io.File targetPath, SVNMergeRange range)
-
getMergeInfoPaths
private java.util.List getMergeInfoPaths(java.util.List children, java.lang.String mergeSrcPath, SVNEntry entry, SVNURL sourceRootURL, long revision1, long revision2, boolean honorMergeInfo, SVNRepository repository, SVNDepth depth) throws SVNException
- Throws:
SVNException
-
getMergeInfoEntryHandler
public ISVNEntryHandler getMergeInfoEntryHandler(java.lang.String mergeSrcPath, SVNURL sourceRootURL, long revision1, long revision2, SVNRepository repository, SVNDepth depth, java.util.List childrenWithMergeInfo)
- Specified by:
getMergeInfoEntryHandler
in interfaceISVNMergeStrategy
-
notifySingleFileMerge
private boolean notifySingleFileMerge(java.io.File targetWCPath, SVNEventAction action, SVNStatusType cstate, SVNStatusType pstate, SVNEvent headerEvent, boolean isHeaderSent) throws SVNException
- Throws:
SVNException
-
isOperativeNotification
private boolean isOperativeNotification(SVNEvent event)
-
calculateMergeInheritance
private void calculateMergeInheritance(SVNMergeRangeList rangeList, SVNEntry entry, boolean wcPathIsMergeTarget, boolean wcPathHasMissingChild, SVNDepth depth)
-
recordSkips
private void recordSkips(java.lang.String mergeInfoPath, SVNEntry targetEntry, boolean isRollback) throws SVNException
- Throws:
SVNException
-
updateWCMergeInfo
private void updateWCMergeInfo(java.util.Map resultCatalog, java.io.File targetPath, java.lang.String parentReposPath, SVNEntry entry, java.util.Map merges, boolean isRollBack) throws SVNException
- Throws:
SVNException
-
calculateRemainingRanges
public void calculateRemainingRanges(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, SVNURL sourceRootURL, SVNURL url1, long revision1, SVNURL url2, long revision2, java.util.Map targetMergeInfo, SVNMergeRangeList implicitSrcGap, boolean isSubtree, boolean childInheritsImplicit, SVNEntry entry, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
adjustDeletedSubTreeRanges
private void adjustDeletedSubTreeRanges(SVNMergeDriver.MergePath child, SVNMergeDriver.MergePath parent, long revision1, long revision2, SVNURL primaryURL, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
filterMergedRevisions
private void filterMergedRevisions(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, SVNEntry entry, SVNRepository repository, java.lang.String mergeInfoPath, java.util.Map targetMergeInfo, long rev1, long rev2, boolean childInheritsImplicit) throws SVNException
- Throws:
SVNException
-
loadFile
private java.io.File loadFile(SVNRepository repository, long revision, SVNProperties properties, SVNAdminArea adminArea) throws SVNException
- Throws:
SVNException
-
computePropsDiff
private static SVNProperties computePropsDiff(SVNProperties props1, SVNProperties props2)
-
filterProperties
public static SVNProperties filterProperties(SVNProperties props1, boolean leftRegular, boolean leftEntry, boolean leftWC)
-
filterProperties
public static SVNProperties filterProperties(SVNProperties props1, boolean leftRegular, boolean leftEntry, boolean leftWC, boolean leftKeywords)
-
fixDeletedSubtreeRanges
private void fixDeletedSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository) throws SVNException
- Throws:
SVNException
-
-