public abstract class SVNMergeDriver extends SVNBasicDelegate implements ISVNMergeStrategy
Modifier and Type | Class and 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 |
SVNBasicDelegate.RepositoryReference, SVNBasicDelegate.SVNRepositoryLocation
UNKNOWN
NULL
Modifier | Constructor and Description |
---|---|
|
SVNMergeDriver(ISVNAuthenticationManager authManager,
ISVNOptions options) |
protected |
SVNMergeDriver(ISVNRepositoryPool repositoryPool,
ISVNOptions options) |
Modifier and Type | Method and 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) |
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
protected boolean myAreSourcesAncestral
protected boolean myIsSameRepository
protected boolean myIsDryRun
protected boolean myIsRecordOnly
protected boolean myIsForce
protected boolean myIsTargetMissingChild
protected boolean myHasExistingMergeInfo
protected boolean myIsIgnoreAncestry
protected boolean myIsSingleFileMerge
protected boolean myIsMergeInfoCapable
protected boolean myIsReIntegrateMerge
protected boolean myIsAddNecessitatedMerge
protected int myOperativeNotificationsNumber
protected int myNotificationsNumber
protected int myCurrentAncestorIndex
protected java.util.Map myConflictedPaths
protected java.util.Map myDryRunDeletions
protected SVNURL myURL
protected java.io.File myTarget
private java.util.List myMergedPaths
private java.util.List mySkippedPaths
private java.util.List myChildrenWithMergeInfo
private java.util.List myAddedPaths
protected SVNWCAccess myWCAccess
protected SVNRepository myRepository1
protected SVNRepository myRepository2
private SVNLogClient16 myLogClient
private java.util.List myPathsWithNewMergeInfo
private java.util.LinkedList myPathsWithDeletedMergeInfo
private SVNMergeDriver.MergeSource myCurrentMergeSource
private SVNMergeRangeList myImplicitSrcGap
public SVNMergeDriver(ISVNAuthenticationManager authManager, ISVNOptions options)
protected SVNMergeDriver(ISVNRepositoryPool repositoryPool, ISVNOptions options)
public abstract SVNDiffOptions getMergeOptions()
public void getLogMergedMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
SVNDiffClient.doGetLogMergedMergeInfo(File, SVNRevision, SVNURL, SVNRevision, boolean, String[], ISVNLogEntryHandler)
insteadpath
- pegRevision
- mergeSrcURL
- srcPegRevision
- discoverChangedPaths
- revisionProperties
- handler
- SVNException
public void getLogMergedMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
SVNDiffClient.doGetLogMergedMergeInfo(SVNURL, SVNRevision, SVNURL, SVNRevision, boolean, String[], ISVNLogEntryHandler)
insteadurl
- pegRevision
- mergeSrcURL
- srcPegRevision
- discoverChangedPaths
- revisionProperties
- handler
- SVNException
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
SVNDiffClient.doGetLogMergedMergeInfo(File, SVNRevision, File, SVNRevision, boolean, String[], ISVNLogEntryHandler)
insteadpath
- pegRevision
- mergeSrcPath
- srcPegRevision
- discoverChangedPaths
- revisionProperties
- handler
- SVNException
public void getLogMergedMergeInfo(SVNURL url, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
SVNDiffClient.doGetLogMergedMergeInfo(SVNURL, SVNRevision, File, SVNRevision, boolean, String[], ISVNLogEntryHandler)
insteadurl
- pegRevision
- mergeSrcPath
- srcPegRevision
- discoverChangedPaths
- revisionProperties
- handler
- SVNException
public void getLogEligibleMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
SVNDiffClient.doGetLogEligibleMergeInfo(File, SVNRevision, SVNURL, SVNRevision, boolean, String[], ISVNLogEntryHandler)
insteadpath
- pegRevision
- mergeSrcURL
- srcPegRevision
- discoverChangedPaths
- revisionProperties
- handler
- SVNException
public void getLogEligibleMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL mergeSrcURL, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
SVNDiffClient.doGetLogEligibleMergeInfo(SVNURL, SVNRevision, SVNURL, SVNRevision, boolean, String[], ISVNLogEntryHandler)
insteadurl
- pegRevision
- mergeSrcURL
- srcPegRevision
- discoverChangedPaths
- revisionProperties
- handler
- SVNException
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
SVNDiffClient.doGetLogEligibleMergeInfo(File, SVNRevision, File, SVNRevision, boolean, String[], ISVNLogEntryHandler)
insteadpath
- pegRevision
- mergeSrcPath
- srcPegRevision
- discoverChangedPaths
- revisionProperties
- handler
- SVNException
public void getLogEligibleMergeInfo(SVNURL url, SVNRevision pegRevision, java.io.File mergeSrcPath, SVNRevision srcPegRevision, boolean discoverChangedPaths, java.lang.String[] revisionProperties, ISVNLogEntryHandler handler) throws SVNException
SVNDiffClient.doGetLogEligibleMergeInfo(SVNURL, SVNRevision, File, SVNRevision, boolean, String[], ISVNLogEntryHandler)
insteadurl
- pegRevision
- mergeSrcPath
- srcPegRevision
- discoverChangedPaths
- revisionProperties
- handler
- SVNException
public java.util.Map getMergedMergeInfo(java.io.File path, SVNRevision pegRevision) throws SVNException
SVNDiffClient.doGetMergedMergeInfo(File, SVNRevision)
insteadpath
- pegRevision
- SVNException
public java.util.Map getMergedMergeInfo(SVNURL url, SVNRevision pegRevision) throws SVNException
SVNDiffClient.doGetMergedMergeInfo(SVNURL, SVNRevision)
insteadurl
- pegRevision
- SVNException
public java.util.Collection suggestMergeSources(java.io.File path, SVNRevision pegRevision) throws SVNException
path
- pegRevision
- SVNException
public java.util.Collection suggestMergeSources(SVNURL url, SVNRevision pegRevision) throws SVNException
SVNDiffClient.doSuggestMergeSources(SVNURL, SVNRevision)
insteadurl
- pegRevision
- SVNException
public void handleEvent(SVNEvent event, double progress) throws SVNException
SVNBasicDelegate
handleEvent
in interface ISVNEventHandler
handleEvent
in class SVNBasicDelegate
event
- the current eventprogress
- progress state (from 0 to 1)SVNException
public void checkCancelled() throws SVNCancelException
SVNBasicDelegate
checkCancelled
in interface ISVNCanceller
checkCancelled
in class SVNBasicDelegate
SVNCancelException
- if the current operation was cancelledprotected SVNLocationEntry getCopySource(java.io.File path, SVNURL url, SVNRevision revision) throws SVNException
SVNException
protected void getLogsForMergeInfoRangeList(SVNURL reposRootURL, java.lang.String[] paths, SVNMergeRangeList rangeList, boolean discoverChangedPaths, java.lang.String[] revProps, ISVNLogEntryHandler handler) throws SVNException
SVNException
protected java.util.Map getMergeInfo(java.io.File path, SVNRevision pegRevision, SVNURL[] repositoryRoot) throws SVNException
SVNException
protected java.util.Map getMergeInfo(SVNURL url, SVNRevision pegRevision, SVNURL[] repositoryRoot) throws SVNException
SVNException
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
SVNException
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
SVNException
protected void runMergeReintegrate(SVNURL srcURL, java.io.File srcPath, SVNRevision pegRevision, java.io.File targetWCPath, boolean dryRun) throws SVNException
SVNException
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
SVNException
protected void addPathWithNewMergeInfo(java.io.File path)
protected void addPathWithDeletedMergeInfo(java.io.File path)
protected SVNRepository ensureRepository(SVNRepository repository, SVNURL url) throws SVNException
SVNException
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
calculateRemainingRangeList
in interface ISVNMergeStrategy
SVNException
protected void findGapsInMergeSourceHistory(long[] gap, java.lang.String mergeSrcCanonPath, SVNURL url1, long rev1, SVNURL url2, long rev2, SVNRepository repos) throws SVNException
SVNException
protected void doFileMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, java.io.File targetWCPath, SVNAdminArea adminArea, boolean sourcesRelated) throws SVNException
SVNException
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
SVNException
protected void doMergeInfoUnawareDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNAdminArea adminArea, SVNDepth depth) throws SVNException
SVNException
protected void recordMergeInfoForDirectoryMerge(java.util.Map resultCatalog, SVNEntry targetEntry, SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth) throws SVNException
SVNException
protected void recordMergeInfoForAddedSubtrees(SVNMergeRange range, java.lang.String mergeInfoPath, SVNDepth depth) throws SVNException
SVNException
protected void doDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNEntry parentEntry, SVNAdminArea adminArea, SVNDepth depth) throws SVNException
SVNException
protected void doDirectoryMerge(java.util.Map resultCatalog, SVNURL url1, long revision1, SVNURL url2, long revision2, SVNEntry parentEntry, SVNAdminArea adminArea, SVNDepth depth) throws SVNException
SVNException
protected SVNProperties filterSelfReferentialMergeInfo(SVNProperties props, java.io.File path) throws SVNException
SVNException
protected SVNLogClient16 getLogClient()
protected void recordTreeConflict(java.io.File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException
SVNException
protected void recordTreeConflictOnAdd(java.io.File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException
SVNException
protected SVNTreeConflictDescription makeTreeConflict(java.io.File victim, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException
SVNException
private SVNMergeCallback getMergeCallback(SVNAdminArea adminArea)
private void processChildrenWithNewMergeInfo() throws SVNException
SVNException
private void processChildrenWithDeletedMergeInfo()
private java.util.Map splitMergeInfoOnRevision(java.util.Map[] mergeInfo, long revision)
private void ensureWCReflectsRepositorySubTree(java.io.File targetWCPath) throws SVNException
SVNException
private void ensureAllMissingRangesArePhantoms(SVNRepository repository, java.util.Map unmergedHistory) throws SVNException
SVNException
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
SVNException
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
SVNException
private boolean mergeRangeContainsRevision(SVNMergeRange range, long rev) throws SVNException
SVNException
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
SVNException
public boolean isSameRepository()
protected boolean isHonorMergeInfo()
public boolean isRecordMergeInfo()
isRecordMergeInfo
in interface ISVNMergeStrategy
protected SVNMergeDriver.MergeSource getCurrentMergeSource()
private java.util.List normalizeMergeSources(java.io.File source, SVNURL sourceURL, SVNURL sourceRootURL, SVNRevision pegRevision, java.util.Collection rangesToMerge, SVNRepository repository) throws SVNException
SVNException
private java.util.List combineRangeWithSegments(SVNMergeRange range, SVNLocationSegment[] segments, SVNURL sourceRootURL) throws SVNException
SVNException
private SVNLocationEntry getYoungestCommonAncestor(java.io.File path1, SVNURL url1, long revision1, java.io.File path2, SVNURL url2, long revision2) throws SVNException
SVNException
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
SVNException
public java.util.Map calculateImplicitMergeInfo(SVNRepository repos, SVNURL url, long[] targetRev, long start, long end) throws SVNException
calculateImplicitMergeInfo
in interface ISVNMergeStrategy
SVNException
private int findNearestAncestor(java.lang.Object[] childrenWithMergeInfoArray, boolean pathIsOwnAncestor, java.io.File path)
public java.util.Map getHistoryAsMergeInfo(SVNURL url, java.io.File path, SVNRevision pegRevision, long rangeYoungest, long rangeOldest, SVNRepository repos, SVNWCAccess access) throws SVNException
SVNException
public static java.util.Map<java.lang.String,SVNMergeRangeList> getMergeInfoFromSegments(java.util.Collection segments)
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) throws SVNException
SVNException
private SVNMergeRangeList filterNaturalHistoryFromMergeInfo(java.lang.String srcPath, java.util.Map implicitMergeInfo, SVNMergeRange requestedRange)
private void sliceRemainingRanges(java.util.List childrenWithMergeInfo, boolean isRollBack, long endRevision)
private long getMostInclusiveEndRevision(java.util.List childrenWithMergeInfo, boolean isRollBack)
private void inheritImplicitMergeinfoFromParent(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, long revision1, long revision2, SVNRepository repository) throws SVNException
SVNException
private void ensureImplicitMergeinfo(SVNMergeDriver.MergePath parent, SVNMergeDriver.MergePath child, boolean childInheritsParent, SVNEntry entry, long revision1, long revision2, SVNRepository repository) throws SVNException
SVNException
private long getMostInclusiveStartRevision(java.util.List childrenWithMergeInfo, boolean isRollBack)
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
SVNException
private void removeNoOpSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository) throws SVNException
SVNException
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
driveMergeReportEditor
in interface ISVNMergeStrategy
SVNException
public ISVNReusableEditor getMergeReportEditor(long defaultStart, long revision, SVNAdminArea adminArea, SVNDepth depth, AbstractDiffCallback mergeCallback, ISVNReusableEditor editor) throws SVNException
getMergeReportEditor
in interface ISVNMergeStrategy
SVNException
private SVNErrorMessage makeMergeConflictError(java.io.File targetPath, SVNMergeRange range)
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
SVNException
public ISVNEntryHandler getMergeInfoEntryHandler(java.lang.String mergeSrcPath, SVNURL sourceRootURL, long revision1, long revision2, SVNRepository repository, SVNDepth depth, java.util.List childrenWithMergeInfo)
getMergeInfoEntryHandler
in interface ISVNMergeStrategy
private boolean notifySingleFileMerge(java.io.File targetWCPath, SVNEventAction action, SVNStatusType cstate, SVNStatusType pstate, SVNEvent headerEvent, boolean isHeaderSent) throws SVNException
SVNException
private boolean isOperativeNotification(SVNEvent event)
private void calculateMergeInheritance(SVNMergeRangeList rangeList, SVNEntry entry, boolean wcPathIsMergeTarget, boolean wcPathHasMissingChild, SVNDepth depth)
private void recordSkips(java.lang.String mergeInfoPath, SVNEntry targetEntry, boolean isRollback) throws SVNException
SVNException
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
SVNException
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
SVNException
private void adjustDeletedSubTreeRanges(SVNMergeDriver.MergePath child, SVNMergeDriver.MergePath parent, long revision1, long revision2, SVNURL primaryURL, SVNRepository repository) throws SVNException
SVNException
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
SVNException
private java.io.File loadFile(SVNRepository repository, long revision, SVNProperties properties, SVNAdminArea adminArea) throws SVNException
SVNException
private static SVNProperties computePropsDiff(SVNProperties props1, SVNProperties props2)
public static SVNProperties filterProperties(SVNProperties props1, boolean leftRegular, boolean leftEntry, boolean leftWC)
public static SVNProperties filterProperties(SVNProperties props1, boolean leftRegular, boolean leftEntry, boolean leftWC, boolean leftKeywords)
private void fixDeletedSubtreeRanges(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNRepository repository) throws SVNException
SVNException