public static boolean removeEmptyRangeLists(Map mergeInfo) { boolean removedSomeRanges = false; if (mergeInfo != null) { for (Iterator mergeInfoIter = mergeInfo.entrySet().iterator(); mergeInfoIter.hasNext();) { Map.Entry mergeInfoEntry = (Map.Entry) mergeInfoIter.next(); SVNMergeRangeList rangeList = (SVNMergeRangeList) mergeInfoEntry.getValue(); if (rangeList.isEmpty()) { mergeInfoIter.remove(); removedSomeRanges = true; } } } return removedSomeRanges; }
public static boolean removeEmptyRangeLists(Map mergeInfo) { boolean removedSomeRanges = false; if (mergeInfo != null) { for (Iterator mergeInfoIter = mergeInfo.entrySet().iterator(); mergeInfoIter.hasNext();) { Map.Entry mergeInfoEntry = (Map.Entry) mergeInfoIter.next(); SVNMergeRangeList rangeList = (SVNMergeRangeList) mergeInfoEntry.getValue(); if (rangeList.isEmpty()) { mergeInfoIter.remove(); removedSomeRanges = true; } } } return removedSomeRanges; }
public static boolean removeEmptyRangeLists(Map mergeInfo) { boolean removedSomeRanges = false; if (mergeInfo != null) { for (Iterator mergeInfoIter = mergeInfo.entrySet().iterator(); mergeInfoIter.hasNext();) { Map.Entry mergeInfoEntry = (Map.Entry) mergeInfoIter.next(); SVNMergeRangeList rangeList = (SVNMergeRangeList) mergeInfoEntry.getValue(); if (rangeList.isEmpty()) { mergeInfoIter.remove(); removedSomeRanges = true; } } } return removedSomeRanges; }
public static Map intersectMergeInfo(Map mergeInfo1, Map mergeInfo2, boolean considerInheritance) { Map mergeInfo = new TreeMap(); for (Iterator pathsIter = mergeInfo1.keySet().iterator(); pathsIter.hasNext();) { String path = (String) pathsIter.next(); SVNMergeRangeList rangeList1 = (SVNMergeRangeList) mergeInfo1.get(path); SVNMergeRangeList rangeList2 = (SVNMergeRangeList) mergeInfo2.get(path); if (rangeList2 != null) { rangeList2 = rangeList2.intersect(rangeList1, considerInheritance); if (!rangeList2.isEmpty()) { mergeInfo.put(path, rangeList2.dup()); } } } return mergeInfo; }
public static Map<String, SVNMergeRangeList> intersectMergeInfo(Map mergeInfo1, Map mergeInfo2, boolean considerInheritance) { Map<String, SVNMergeRangeList> mergeInfo = new TreeMap<String, SVNMergeRangeList>(); for (Iterator pathsIter = mergeInfo1.keySet().iterator(); pathsIter.hasNext();) { String path = (String) pathsIter.next(); SVNMergeRangeList rangeList1 = (SVNMergeRangeList) mergeInfo1.get(path); SVNMergeRangeList rangeList2 = (SVNMergeRangeList) mergeInfo2.get(path); if (rangeList2 != null) { rangeList2 = rangeList2.intersect(rangeList1, considerInheritance); if (!rangeList2.isEmpty()) { mergeInfo.put(path, rangeList2.dup()); } } } return mergeInfo; }
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 intersectMergeInfo(Map mergeInfo1, Map mergeInfo2, boolean considerInheritance) { Map mergeInfo = new TreeMap(); for (Iterator pathsIter = mergeInfo1.keySet().iterator(); pathsIter.hasNext();) { String path = (String) pathsIter.next(); SVNMergeRangeList rangeList1 = (SVNMergeRangeList) mergeInfo1.get(path); SVNMergeRangeList rangeList2 = (SVNMergeRangeList) mergeInfo2.get(path); if (rangeList2 != null) { rangeList2 = rangeList2.intersect(rangeList1, considerInheritance); if (!rangeList2.isEmpty()) { mergeInfo.put(path, rangeList2.dup()); } } } return mergeInfo; }
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; }
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; }
public static Map<String, SVNMergeRangeList> getInheritableMergeInfo(Map<String, SVNMergeRangeList> mergeInfo, String path, long startRev, long endRev, boolean inheritable) { Map<String, SVNMergeRangeList> inheritableMergeInfo = new TreeMap<String, SVNMergeRangeList>(); if (mergeInfo != null) { for (Iterator<String> paths = mergeInfo.keySet().iterator(); paths.hasNext();) { String mergeSrcPath = (String) paths.next(); SVNMergeRangeList rangeList = (SVNMergeRangeList) mergeInfo.get(mergeSrcPath); SVNMergeRangeList inheritableRangeList = null; if (path == null || path.equals(mergeSrcPath)) { inheritableRangeList = rangeList.getInheritableRangeList(startRev, endRev, inheritable); } else { inheritableRangeList = rangeList.dup(); } if (!inheritableRangeList.isEmpty()) { inheritableMergeInfo.put(mergeSrcPath, inheritableRangeList); } } } return inheritableMergeInfo; }
private void removeFirstRangeFromRemainingRanges(long endRevision, List childrenWithMergeInfo) { for (Iterator children = childrenWithMergeInfo.iterator(); children.hasNext();) { MergePath child = (MergePath) children.next(); if (child == null || child.myIsAbsent) { continue; } if (!child.myRemainingRanges.isEmpty()) { SVNMergeRange[] originalRemainingRanges = child.myRemainingRanges.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.myRemainingRanges = new SVNMergeRangeList(remainingRanges); } } } }
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); } } } }
private void removeFirstRangeFromRemainingRanges(long endRevision, List childrenWithMergeInfo) { for (Iterator children = childrenWithMergeInfo.iterator(); children.hasNext();) { MergePath child = (MergePath) children.next(); if (child == null || child.myIsAbsent) { continue; } if (!child.myRemainingRanges.isEmpty()) { SVNMergeRange[] originalRemainingRanges = child.myRemainingRanges.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.myRemainingRanges = new SVNMergeRangeList(remainingRanges); } } } }
private void removeFirstRangeFromRemainingRanges(long endRevision, List childrenWithMergeInfo) { for (Iterator children = childrenWithMergeInfo.iterator(); children.hasNext();) { MergePath child = (MergePath) children.next(); if (child == null || child.myIsAbsent) { continue; } if (!child.myRemainingRanges.isEmpty()) { SVNMergeRange[] originalRemainingRanges = child.myRemainingRanges.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.myRemainingRanges = new SVNMergeRangeList(remainingRanges); } } } }
public static long[] getRangeEndPoints(Map<?, SVNMergeRangeList> mergeInfo) { //long[] { youngestRange, oldestRange } long[] rangePoints = { SVNRepository.INVALID_REVISION, SVNRepository.INVALID_REVISION }; if (mergeInfo != null) { for (Iterator<?> mergeInfoIter = mergeInfo.keySet().iterator(); mergeInfoIter.hasNext();) { Object path = mergeInfoIter.next(); SVNMergeRangeList rangeList = (SVNMergeRangeList) mergeInfo.get(path); if (!rangeList.isEmpty()) { SVNMergeRange[] ranges = rangeList.getRanges(); SVNMergeRange range = ranges[ranges.length - 1]; if (!SVNRevision.isValidRevisionNumber(rangePoints[0]) || range.getEndRevision() > rangePoints[0]) { rangePoints[0] = range.getEndRevision(); } range = ranges[0]; if (!SVNRevision.isValidRevisionNumber(rangePoints[1]) || rangePoints[1] > range.getStartRevision()) { rangePoints[1] = range.getStartRevision(); } } } } return rangePoints; }
protected void getLogsForMergeInfoRangeList(SVNURL reposRootURL, String[] paths, SVNMergeRangeList rangeList, boolean discoverChangedPaths, String[] revProps, ISVNLogEntryHandler handler) throws SVNException { if (rangeList.isEmpty()) { return; } SVNMergeRange[] listRanges = rangeList.getRanges(); Arrays.sort(listRanges); SVNMergeRange youngestRange = listRanges[listRanges.length - 1]; SVNRevision youngestRev = SVNRevision.create(youngestRange.getEndRevision()); SVNMergeRange oldestRange = listRanges[0]; SVNRevision oldestRev = SVNRevision.create(oldestRange.getStartRevision()); LogHandlerFilter filterHandler = new LogHandlerFilter(handler, rangeList); SVNLogClient logClient = getLogClient(); logClient.doLog(reposRootURL, paths, youngestRev, oldestRev, youngestRev, false, discoverChangedPaths, false, 0, revProps, filterHandler); checkCancelled(); }
protected void getLogsForMergeInfoRangeList(SVNURL reposRootURL, String[] paths, SVNMergeRangeList rangeList, boolean discoverChangedPaths, String[] revProps, ISVNLogEntryHandler handler) throws SVNException { if (rangeList.isEmpty()) { return; } SVNMergeRange[] listRanges = rangeList.getRanges(); Arrays.sort(listRanges); SVNMergeRange youngestRange = listRanges[listRanges.length - 1]; SVNRevision youngestRev = SVNRevision.create(youngestRange.getEndRevision()); SVNMergeRange oldestRange = listRanges[0]; SVNRevision oldestRev = SVNRevision.create(oldestRange.getStartRevision()); LogHandlerFilter filterHandler = new LogHandlerFilter(handler, rangeList); SVNLogClient logClient = getLogClient(); logClient.doLog(reposRootURL, paths, youngestRev, oldestRev, youngestRev, false, discoverChangedPaths, false, 0, revProps, filterHandler); checkCancelled(); }
protected void getLogsForMergeInfoRangeList(SVNURL reposRootURL, String[] paths, SVNMergeRangeList rangeList, boolean discoverChangedPaths, String[] revProps, ISVNLogEntryHandler handler) throws SVNException { if (rangeList.isEmpty()) { return; } SVNMergeRange[] listRanges = rangeList.getRanges(); Arrays.sort(listRanges); SVNMergeRange youngestRange = listRanges[listRanges.length - 1]; SVNRevision youngestRev = SVNRevision.create(youngestRange.getEndRevision()); SVNMergeRange oldestRange = listRanges[0]; SVNRevision oldestRev = SVNRevision.create(oldestRange.getStartRevision()); LogHandlerFilter filterHandler = new LogHandlerFilter(handler, rangeList); SVNLogClient16 logClient = getLogClient(); logClient.doLog(reposRootURL, paths, youngestRev, oldestRev, youngestRev, false, discoverChangedPaths, false, 0, revProps, filterHandler); checkCancelled(); }
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; } if (intersection.getSize() != 1) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.UNKNOWN, "assertion failure in SVNMergeDriver.LogHandlerFilter.handleLogEntry: intersection list " + "size is {0}", new Integer(intersection.getSize())); SVNErrorManager.error(err, SVNLogType.DEFAULT); } if (myRealHandler != null) { myRealHandler.handleLogEntry(logEntry); } } }
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); } } }