/** * Creates a new merge range list initializing it with a single merge range which parameters are passed * to this constructor. * * @param start merge range start revision * @param end merge range end revision * @param inheritable inheritance information */ public SVNMergeRangeList(long start, long end, boolean inheritable) { this(new SVNMergeRange(start, end, inheritable)); }
/** * Makes an exact copy of this object. * * @return exact copy of this object */ public SVNMergeRange dup() { return new SVNMergeRange(myStartRevision, myEndRevision, myIsInheritable); }
/** * Creates a new merge range list initializing it with a single merge range which parameters are passed * to this constructor. * * @param start merge range start revision * @param end merge range end revision * @param inheritable inheritance information */ public SVNMergeRangeList(long start, long end, boolean inheritable) { this(new SVNMergeRange(start, end, inheritable)); }
/** * Creates a new merge range list initializing it with a single merge range which parameters are passed * to this constructor. * * @param start merge range start revision * @param end merge range end revision * @param inheritable inheritance information */ public SVNMergeRangeList(long start, long end, boolean inheritable) { this(new SVNMergeRange(start, end, inheritable)); }
/** * Makes an exact copy of this object. * * @return exact copy of this object */ public SVNMergeRange dup() { return new SVNMergeRange(myStartRevision, myEndRevision, myIsInheritable); }
/** * Makes an exact copy of this object. * * @return exact copy of this object */ public SVNMergeRange dup() { return new SVNMergeRange(myStartRevision, myEndRevision, myIsInheritable); }
/** * Appends a new merge range to the end of the ranges list. * A new {@link SVNMergeRange} is created used the parameters passed to this method. * * @param start merge range start revision * @param end merge range end revision * @param inheritable inheritance information */ public void pushRange(long start, long end, boolean inheritable) { SVNMergeRange[] ranges = new SVNMergeRange[myRanges.length + 1]; ranges[ranges.length - 1] = new SVNMergeRange(start, end, inheritable); System.arraycopy(myRanges, 0, ranges, 0, myRanges.length); myRanges = ranges; }
/** * Appends a new merge range to the end of the ranges list. * A new {@link SVNMergeRange} is created used the parameters passed to this method. * * @param start merge range start revision * @param end merge range end revision * @param inheritable inheritance information */ public void pushRange(long start, long end, boolean inheritable) { SVNMergeRange[] ranges = new SVNMergeRange[myRanges.length + 1]; ranges[ranges.length - 1] = new SVNMergeRange(start, end, inheritable); System.arraycopy(myRanges, 0, ranges, 0, myRanges.length); myRanges = ranges; }
/** * Appends a new merge range to the end of the ranges list. * A new {@link SVNMergeRange} is created used the parameters passed to this method. * * @param start merge range start revision * @param end merge range end revision * @param inheritable inheritance information */ public void pushRange(long start, long end, boolean inheritable) { SVNMergeRange[] ranges = new SVNMergeRange[myRanges.length + 1]; ranges[ranges.length - 1] = new SVNMergeRange(start, end, inheritable); System.arraycopy(myRanges, 0, ranges, 0, myRanges.length); myRanges = ranges; }
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; }
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; }
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; }
protected boolean mergeInfoConflicts(SVNMergeRangeList rangeList, File path) { if (rangeList == null) { return false; } SVNMergeRange currentRange = new SVNMergeRange(Math.min(myRevision1, myRevision2), Math.max(myRevision1, myRevision2), false); SVNMergeRange[] ranges = rangeList.getRanges(); for (int i = 0; i < ranges.length; i++) { SVNMergeRange range = ranges[i]; if (currentRange.intersects(range, false)) { if (range.contains(currentRange, false)) { continue; } SVNDebugLog.getDefaultLog().logFine(SVNLogType.WC, "merge ext: merge info conflict found on " + path.getAbsolutePath()); return true; } } return false; }
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); }
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 SVNMergeRangeList getInheritableRangeList(long startRev, long endRev, boolean inheritable) { LinkedList inheritableRanges = new LinkedList(); if (myRanges.length > 0) { if (!SVNRevision.isValidRevisionNumber(startRev) || !SVNRevision.isValidRevisionNumber(endRev) || endRev < startRev) { for (int i = 0; i < myRanges.length; i++) { SVNMergeRange range = myRanges[i]; if (range.isInheritable() == inheritable) { SVNMergeRange inheritableRange = new SVNMergeRange(range.getStartRevision(), range.getEndRevision(), true); inheritableRanges.add(inheritableRange); } } } else { SVNMergeRange range = new SVNMergeRange(startRev, endRev, false); SVNMergeRangeList boundRangeList = new SVNMergeRangeList(range); return diff(boundRangeList, true); } } SVNMergeRange[] ranges = (SVNMergeRange[]) inheritableRanges.toArray(new SVNMergeRange[inheritableRanges.size()]); return new SVNMergeRangeList(ranges); }
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); } } }
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); } } }