/** * Creates a new <code>SVNMergeRangeList</code> from a collection of * {@link SVNMergeRange merge ranges}. * * @param mergeRanges merge ranges collection * @return merge range list containing all the ranges from <code>mergeRanges</code> */ public static SVNMergeRangeList fromCollection(Collection mergeRanges) { return new SVNMergeRangeList((SVNMergeRange[]) mergeRanges.toArray(new SVNMergeRange[mergeRanges.size()])); }
/** * Creates a new <code>SVNMergeRangeList</code> from a collection of * {@link SVNMergeRange merge ranges}. * * @param mergeRanges merge ranges collection * @return merge range list containing all the ranges from <code>mergeRanges</code> */ public static SVNMergeRangeList fromCollection(Collection mergeRanges) { return new SVNMergeRangeList((SVNMergeRange[]) mergeRanges.toArray(new SVNMergeRange[mergeRanges.size()])); }
/** * Creates a new <code>SVNMergeRangeList</code> from a collection of * {@link SVNMergeRange merge ranges}. * * @param mergeRanges merge ranges collection * @return merge range list containing all the ranges from <code>mergeRanges</code> */ public static SVNMergeRangeList fromCollection(Collection mergeRanges) { return new SVNMergeRangeList((SVNMergeRange[]) mergeRanges.toArray(new SVNMergeRange[mergeRanges.size()])); }
/** * Makes a copy of this merge range list. All merge ranges stored in this list will be copied * to a new array which will be covered into a new <code>SVNMergeRangeList</code> instance. * * @return copy of this merge range list */ public SVNMergeRangeList dup() { SVNMergeRange[] ranges = new SVNMergeRange[myRanges.length]; for (int i = 0; i < myRanges.length; i++) { SVNMergeRange range = myRanges[i]; ranges[i] = range.dup(); } return new SVNMergeRangeList(ranges); }
/** * Makes a copy of this merge range list. All merge ranges stored in this list will be copied * to a new array which will be covered into a new <code>SVNMergeRangeList</code> instance. * * @return copy of this merge range list */ public SVNMergeRangeList dup() { SVNMergeRange[] ranges = new SVNMergeRange[myRanges.length]; for (int i = 0; i < myRanges.length; i++) { SVNMergeRange range = myRanges[i]; ranges[i] = range.dup(); } return new SVNMergeRangeList(ranges); }
/** * Makes a copy of this merge range list. All merge ranges stored in this list will be copied * to a new array which will be covered into a new <code>SVNMergeRangeList</code> instance. * * @return copy of this merge range list */ public SVNMergeRangeList dup() { SVNMergeRange[] ranges = new SVNMergeRange[myRanges.length]; for (int i = 0; i < myRanges.length; i++) { SVNMergeRange range = myRanges[i]; ranges[i] = range.dup(); } return new SVNMergeRangeList(ranges); }
private void recordSkips(String mergeInfoPath, SVNMergeRangeList childMergeRangelist, boolean isRollBack) throws SVNException { if (skippedPaths == null || skippedPaths.isEmpty()) { return; } Map<File, SVNMergeRangeList> merges = new TreeMap<File, SVNMergeRangeList>(PATH_COMPARATOR); for (File skippedPath : skippedPaths) { ObstructionState os = performObstructionCheck(skippedPath, SVNNodeKind.UNKNOWN); if (os != null && (os.obstructionState == SVNStatusType.OBSTRUCTED || os.obstructionState == SVNStatusType.MISSING)) { continue; } merges.put(skippedPath, new SVNMergeRangeList(new SVNMergeRange[0])); } updateWCMergeInfo(null, targetAbsPath, mergeInfoPath, merges, isRollBack); }
private void removeFirstRangeFromRemainingRanges(long endRevision, Map<File, MergePath> childrenWithMergeInfo) { for (Iterator<MergePath> children = childrenWithMergeInfo.values().iterator(); children.hasNext();) { MergePath child = (MergePath) children.next(); if (child == null || child.absent) { continue; } if (!child.remainingRanges.isEmpty()) { SVNMergeRange[] originalRemainingRanges = child.remainingRanges.getRanges(); SVNMergeRange firstRange = originalRemainingRanges[0]; if (firstRange.getEndRevision() == endRevision) { SVNMergeRange[] remainingRanges = new SVNMergeRange[originalRemainingRanges.length - 1]; System.arraycopy(originalRemainingRanges, 1, remainingRanges, 0, originalRemainingRanges.length - 1); child.remainingRanges = new SVNMergeRangeList(remainingRanges); } } } }
public static Map<String, SVNMergeRangeList> filterMergeInfoByRanges(Map<String, SVNMergeRangeList> mergeInfo, long youngestRev, long oldestRev) { Map<String, SVNMergeRangeList> filteredMergeInfo = new TreeMap<String, SVNMergeRangeList>(); if (mergeInfo != null) { SVNMergeRange range = new SVNMergeRange(oldestRev, youngestRev, true); SVNMergeRangeList filterRangeList = new SVNMergeRangeList(range); for (Iterator<String> mergeInfoIter = mergeInfo.keySet().iterator(); mergeInfoIter.hasNext();) { String path = mergeInfoIter.next(); SVNMergeRangeList rangeList = mergeInfo.get(path); if (!rangeList.isEmpty()) { SVNMergeRangeList newRangeList = filterRangeList.intersect(rangeList, false); if (!newRangeList.isEmpty()) { filteredMergeInfo.put(path, newRangeList); } } } } return filteredMergeInfo; }
public static Map filterMergeInfoByRanges(Map mergeInfo, long youngestRev, long oldestRev) { Map filteredMergeInfo = new TreeMap(); if (mergeInfo != null) { SVNMergeRange range = new SVNMergeRange(oldestRev, youngestRev, true); SVNMergeRangeList filterRangeList = new SVNMergeRangeList(range); for (Iterator mergeInfoIter = mergeInfo.keySet().iterator(); mergeInfoIter.hasNext();) { String path = (String) mergeInfoIter.next(); SVNMergeRangeList rangeList = (SVNMergeRangeList) mergeInfo.get(path); if (!rangeList.isEmpty()) { SVNMergeRangeList newRangeList = filterRangeList.intersect(rangeList, false); if (!newRangeList.isEmpty()) { filteredMergeInfo.put(path, newRangeList); } } } } return filteredMergeInfo; }
private void recordSkips(String mergeInfoPath, SVNEntry targetEntry, boolean isRollback) throws SVNException { int numberOfSkippedPaths = mySkippedPaths != null ? mySkippedPaths.size() : 0; if (numberOfSkippedPaths > 0) { Map merges = new TreeMap(); for (Iterator skippedPaths = mySkippedPaths.iterator(); skippedPaths.hasNext();) { File skippedPath = (File) skippedPaths.next(); SVNStatus status = SVNStatusUtil.getStatus(skippedPath, myWCAccess); if (status.getContentsStatus() == SVNStatusType.STATUS_NONE || status.getContentsStatus() == SVNStatusType.STATUS_UNVERSIONED) { continue; } merges.put(skippedPath, new SVNMergeRangeList(new SVNMergeRange[0])); } updateWCMergeInfo(null, myTarget, mergeInfoPath, targetEntry, merges, isRollback); } }
private void recordSkips(String mergeInfoPath, SVNEntry targetEntry, boolean isRollback) throws SVNException { int numberOfSkippedPaths = mySkippedPaths != null ? mySkippedPaths.size() : 0; if (numberOfSkippedPaths > 0) { Map merges = new TreeMap(); for (Iterator skippedPaths = mySkippedPaths.iterator(); skippedPaths.hasNext();) { File skippedPath = (File) skippedPaths.next(); SVNStatus status = SVNStatusUtil.getStatus(skippedPath, myWCAccess); if (status.getContentsStatus() == SVNStatusType.STATUS_NONE || status.getContentsStatus() == SVNStatusType.STATUS_UNVERSIONED) { continue; } merges.put(skippedPath, new SVNMergeRangeList(new SVNMergeRange[0])); } updateWCMergeInfo(myTarget, mergeInfoPath, targetEntry, merges, isRollback); } }
protected SvnSingleRangeConflictReport doMergeInfoUnawareDirectoryMerge(MergeSource source, File targetPath, Map<File, MergePath> childrenWithMergeInfo, SVNDepth depth) throws SVNException { boolean isRollBack = source.rev1 > source.rev2; MergePath item = new MergePath(targetPath); SVNMergeRange itemRange = new SVNMergeRange(source.rev1, source.rev2, true); item.remainingRanges = new SVNMergeRangeList(itemRange); if (childrenWithMergeInfo == null) { childrenWithMergeInfo = new TreeMap<File, MergePath>(); } childrenWithMergeInfo.put(targetPath, item); SvnNgMergeCallback2 mergeCallback = new SvnNgMergeCallback2(context, this, repositoryAccess); driveMergeReportEditor(targetPath, source.url1, source.rev1, source.url2, source.rev2, childrenWithMergeInfo, depth, mergeCallback); if (conflictedPaths != null && conflictedPaths.size() > 0) { return new SvnSingleRangeConflictReport(source, null); } return null; }
private SVNMergeRangeList filterNaturalHistoryFromMergeInfo(String srcPath, Map<String, SVNMergeRangeList> implicitMergeInfo, SVNMergeRange requestedRange) { SVNMergeRangeList requestedRangeList = new SVNMergeRangeList(requestedRange.dup()); SVNMergeRangeList filteredRangeList = null; if (implicitMergeInfo != null && requestedRange.getStartRevision() < requestedRange.getEndRevision()) { SVNMergeRangeList impliedRangeList = (SVNMergeRangeList) implicitMergeInfo.get(srcPath); if (impliedRangeList != null) { filteredRangeList = requestedRangeList.diff(impliedRangeList, false); } } if (filteredRangeList == null) { filteredRangeList = requestedRangeList; } return filteredRangeList; }
private SVNMergeRangeList filterNaturalHistoryFromMergeInfo(String srcPath, Map implicitMergeInfo, SVNMergeRange requestedRange) { SVNMergeRangeList requestedRangeList = new SVNMergeRangeList(requestedRange.dup()); SVNMergeRangeList filteredRangeList = null; if (implicitMergeInfo != null && requestedRange.getStartRevision() < requestedRange.getEndRevision()) { SVNMergeRangeList impliedRangeList = (SVNMergeRangeList) implicitMergeInfo.get(srcPath); if (impliedRangeList != null) { filteredRangeList = requestedRangeList.diff(impliedRangeList, false); } } if (filteredRangeList == null) { filteredRangeList = requestedRangeList; } return filteredRangeList; }
private SVNMergeRangeList filterNaturalHistoryFromMergeInfo(String srcPath, Map implicitMergeInfo, SVNMergeRange requestedRange) { SVNMergeRangeList requestedRangeList = new SVNMergeRangeList(requestedRange.dup()); SVNMergeRangeList filteredRangeList = null; if (implicitMergeInfo != null && requestedRange.getStartRevision() < requestedRange.getEndRevision()) { SVNMergeRangeList impliedRangeList = (SVNMergeRangeList) implicitMergeInfo.get(srcPath); if (impliedRangeList != null) { filteredRangeList = requestedRangeList.diff(impliedRangeList, false); } } if (filteredRangeList == null) { filteredRangeList = requestedRangeList; } return filteredRangeList; }
protected void doMergeInfoUnawareDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNAdminArea adminArea, SVNDepth depth) throws SVNException { File targetWCPath = adminArea.getRoot(); boolean isRollBack = revision1 > revision2; MergePath item = new MergePath(targetWCPath); SVNMergeRange itemRange = new SVNMergeRange(revision1, revision2, true); item.myRemainingRanges = new SVNMergeRangeList(itemRange); myChildrenWithMergeInfo.add(item); driveMergeReportEditor(targetWCPath, url1, revision1, url2, revision2, null, isRollBack, depth, adminArea, getMergeCallback(adminArea), null); }
private SVNMergeRangeList filterNaturalHistoryFromMergeInfo(String srcPath, Map implicitMergeInfo, SVNMergeRange requestedRange) { SVNMergeRangeList requestedRangeList = new SVNMergeRangeList(requestedRange.dup()); SVNMergeRangeList filteredRangeList = null; if (implicitMergeInfo != null && requestedRange.getStartRevision() < requestedRange.getEndRevision()) { SVNMergeRangeList impliedRangeList = (SVNMergeRangeList) implicitMergeInfo.get(srcPath); if (impliedRangeList != null) { filteredRangeList = requestedRangeList.diff(impliedRangeList, false); } } if (filteredRangeList == null) { filteredRangeList = requestedRangeList; } return filteredRangeList; }
protected void doMergeInfoUnawareDirectoryMerge(SVNURL url1, long revision1, SVNURL url2, long revision2, SVNAdminArea adminArea, SVNDepth depth) throws SVNException { File targetWCPath = adminArea.getRoot(); boolean isRollBack = revision1 > revision2; MergePath item = new MergePath(targetWCPath); SVNMergeRange itemRange = new SVNMergeRange(revision1, revision2, true); item.myRemainingRanges = new SVNMergeRangeList(itemRange); myChildrenWithMergeInfo.add(item); driveMergeReportEditor(targetWCPath, url1, revision1, url2, revision2, null, isRollBack, depth, adminArea, getMergeCallback(adminArea), null); }
public void handleLogEntry(SVNLogEntry logEntry) throws SVNException { checkCancelled(); SVNMergeRange range = new SVNMergeRange(logEntry.getRevision() - 1, logEntry.getRevision(), true); SVNMergeRangeList thisRangeList = new SVNMergeRangeList(range); SVNMergeRangeList intersection = thisRangeList.intersect(myRangeList, true); if (intersection == null || intersection.isEmpty()) { return; } SVNErrorManager.assertionFailure(intersection.getSize() == 1, "intersection list size is " + intersection.getSize(), SVNLogType.WC); if (myRealHandler != null) { myRealHandler.handleLogEntry(logEntry); } } }