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 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 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<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 SVNLocationEntry getYoungestCommonAncestor(File path1, SVNURL url1, long revision1, File path2, SVNURL url2, long revision2) throws SVNException { Map history1 = getHistoryAsMergeInfo(url1, path1, SVNRevision.create(revision1), SVNRepository.INVALID_REVISION, SVNRepository.INVALID_REVISION, null, null); Map history2 = getHistoryAsMergeInfo(url2, path2, SVNRevision.create(revision2), SVNRepository.INVALID_REVISION, SVNRepository.INVALID_REVISION, null, null); long youngestCommonRevision = SVNRepository.INVALID_REVISION; String youngestCommonPath = null; for (Iterator historyIter = history1.entrySet().iterator(); historyIter.hasNext();) { Map.Entry historyEntry = (Map.Entry) historyIter.next(); String path = (String) historyEntry.getKey(); SVNMergeRangeList ranges1 = (SVNMergeRangeList) historyEntry.getValue(); SVNMergeRangeList ranges2 = (SVNMergeRangeList) history2.get(path); if (ranges2 != null) { SVNMergeRangeList commonList = ranges2.intersect(ranges1, true); if (!commonList.isEmpty()) { SVNMergeRange commonRanges[] = commonList.getRanges(); SVNMergeRange youngestCommonRange = commonRanges[commonRanges.length - 1]; if (!SVNRevision.isValidRevisionNumber(youngestCommonRevision) || youngestCommonRange.getEndRevision() > youngestCommonRevision) { youngestCommonRevision = youngestCommonRange.getEndRevision(); youngestCommonPath = path; } } } } return new SVNLocationEntry(youngestCommonRevision, youngestCommonPath); }
private SVNLocationEntry getYoungestCommonAncestor(File path1, SVNURL url1, long revision1, File path2, SVNURL url2, long revision2) throws SVNException { Map history1 = getHistoryAsMergeInfo(url1, path1, SVNRevision.create(revision1), SVNRepository.INVALID_REVISION, SVNRepository.INVALID_REVISION, null, null); Map history2 = getHistoryAsMergeInfo(url2, path2, SVNRevision.create(revision2), SVNRepository.INVALID_REVISION, SVNRepository.INVALID_REVISION, null, null); long youngestCommonRevision = SVNRepository.INVALID_REVISION; String youngestCommonPath = null; for (Iterator historyIter = history1.entrySet().iterator(); historyIter.hasNext();) { Map.Entry historyEntry = (Map.Entry) historyIter.next(); String path = (String) historyEntry.getKey(); SVNMergeRangeList ranges1 = (SVNMergeRangeList) historyEntry.getValue(); SVNMergeRangeList ranges2 = (SVNMergeRangeList) history2.get(path); if (ranges2 != null) { SVNMergeRangeList commonList = ranges2.intersect(ranges1, true); if (!commonList.isEmpty()) { SVNMergeRange commonRanges[] = commonList.getRanges(); SVNMergeRange youngestCommonRange = commonRanges[commonRanges.length - 1]; if (!SVNRevision.isValidRevisionNumber(youngestCommonRevision) || youngestCommonRange.getEndRevision() > youngestCommonRevision) { youngestCommonRevision = youngestCommonRange.getEndRevision(); youngestCommonPath = path; } } } } return new SVNLocationEntry(youngestCommonRevision, youngestCommonPath); }
public SVNLocationSegment getYoungestCommonAncestor(SVNURL url1, long rev1, SVNURL url2, long rev2) throws SVNException { boolean[] hasZero1 = new boolean[1]; boolean[] hasZero2 = new boolean[1]; Map<String, SVNMergeRangeList> history1 = getHistoryAsMergeInfo(url1, SVNRevision.create(rev1), -1, -1, hasZero1, null); Map<String, SVNMergeRangeList> history2 = getHistoryAsMergeInfo(url2, SVNRevision.create(rev2), -1, -1, hasZero2, null); long ycRevision = -1; String ycPath = null; for (Iterator<String> paths = history1.keySet().iterator(); paths.hasNext();) { String path = paths.next(); SVNMergeRangeList ranges1 = history1.get(path); SVNMergeRangeList ranges2 = history2.get(path); if (ranges2 != null) { SVNMergeRangeList intersection = ranges1.intersect(ranges2, true); if (intersection != null && !intersection.isEmpty()) { SVNMergeRange ycRange = intersection.getRanges()[intersection.getSize() - 1]; if (ycRevision < 0 || ycRange.getEndRevision() > ycRevision) { ycRevision = ycRange.getEndRevision(); ycPath = path.substring(1); } } } } if (ycPath == null && hasZero1[0] && hasZero2[0]) { ycPath = "/"; ycRevision = 0; } return new SVNLocationSegment(ycRevision, ycRevision, ycPath); }
private SVNLocationEntry getYoungestCommonAncestor(File path1, SVNURL url1, long revision1, File path2, SVNURL url2, long revision2) throws SVNException { Map history1 = getHistoryAsMergeInfo(url1, path1, SVNRevision.create(revision1), SVNRepository.INVALID_REVISION, SVNRepository.INVALID_REVISION, null, null); Map history2 = getHistoryAsMergeInfo(url2, path2, SVNRevision.create(revision2), SVNRepository.INVALID_REVISION, SVNRepository.INVALID_REVISION, null, null); long youngestCommonRevision = SVNRepository.INVALID_REVISION; String youngestCommonPath = null; for (Iterator historyIter = history1.entrySet().iterator(); historyIter.hasNext();) { Map.Entry historyEntry = (Map.Entry) historyIter.next(); String path = (String) historyEntry.getKey(); SVNMergeRangeList ranges1 = (SVNMergeRangeList) historyEntry.getValue(); SVNMergeRangeList ranges2 = (SVNMergeRangeList) history2.get(path); if (ranges2 != null) { SVNMergeRangeList commonList = ranges2.intersect(ranges1, true); if (!commonList.isEmpty()) { SVNMergeRange commonRanges[] = commonList.getRanges(); SVNMergeRange youngestCommonRange = commonRanges[commonRanges.length - 1]; if (!SVNRevision.isValidRevisionNumber(youngestCommonRevision) || youngestCommonRange.getEndRevision() > youngestCommonRevision) { youngestCommonRevision = youngestCommonRange.getEndRevision(); youngestCommonPath = path; } } } } return new SVNLocationEntry(youngestCommonRevision, youngestCommonPath); }
return; subtreeGapRanges = subtreeGapRanges.intersect(subtreeRemainingRanges, false); if (subtreeGapRanges.isEmpty()) { return;
SVNMergeRangeList intersection = pathExclplicitRangeList.intersect(rl, mergeInfoInherited); if (intersection.getSize() == 0) { logEntryRevisionRequired = true;
return; subtreeGapRanges = subtreeGapRanges.intersect(subtreeRemainingRanges, false); if (subtreeGapRanges.isEmpty()) { return;
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; } 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); } } }
SVNMergeRangeList intersection = pathExclplicitRangeList.intersect(rl, mergeInfoInherited); if (intersection.getSize() == 0) { logEntryRevisionRequired = true;
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); } } }
child.myRemainingRanges = child.myRemainingRanges.intersect(existingRangeList, false); deletedRangeList = parent.myRemainingRanges.intersect(deletedRangeList, false); child.myRemainingRanges = child.myRemainingRanges.merge(deletedRangeList); child.myRemainingRanges = child.myRemainingRanges.intersect(existingRangeList, false); SVNMergeRangeList nonExistentRangeList = new SVNMergeRangeList(new SVNMergeRange(olderRev, segment.getStartRevision(), true)); nonExistentRangeList = parent.myRemainingRanges.intersect(nonExistentRangeList, false); child.myRemainingRanges = child.myRemainingRanges.merge(nonExistentRangeList);
SVNMergeRangeList requestedMergeRangeList = new SVNMergeRangeList(new SVNMergeRange(rev1, rev2, true)); requestedMergeRangeList = requestedMergeRangeList.reverse(); child.myRemainingRanges = targetRangeList.intersect(requestedMergeRangeList, false); child.myRemainingRanges = child.myRemainingRanges.reverse(); } else {
SVNMergeRangeList requestedMergeRangeList = new SVNMergeRangeList(new SVNMergeRange(rev1, rev2, true)); requestedMergeRangeList = requestedMergeRangeList.reverse(); child.myRemainingRanges = targetRangeList.intersect(requestedMergeRangeList, false); child.myRemainingRanges = child.myRemainingRanges.reverse(); } else {