Examples of SVNLocationSegment


Examples of org.tmatesoft.svn.core.io.SVNLocationSegment

            return new TreeMap();
        } else if (!haveMergeInfoForDescendants) {
            Map sourceMergeInfo = (Map) mergeInfoCatalog.get(sourceReposPath);
            SVNLocationSegment[] locationSegmentsArray = (SVNLocationSegment[]) segments.toArray(new SVNLocationSegment[segments.size()]);
            for (int i = locationSegmentsArray.length - 1; i >= 0; i--) {
                SVNLocationSegment segment = locationSegmentsArray[i];
                if (segment.getPath() == null) {
                    continue;
                }
                SVNMergeRangeList rangeList = (SVNMergeRangeList) sourceMergeInfo.get(segment.getPath());
                if (rangeList != null && !rangeList.isEmpty()) {
                    SVNMergeRange[] ranges = rangeList.getRanges();
                    SVNMergeRange lastRange = ranges[ranges.length - 1];
                    leftRev[0] = lastRange.getEndRevision();
                    leftURL[0] = sourceReposRoot.appendPath(segment.getPath().startsWith("/") ?
                            segment.getPath().substring(1) : segment.getPath(), false);
                    return SVNMergeInfoUtil.dupMergeInfo(sourceMergeInfo, null);
                }
            }
            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.UNKNOWN, "merge aborted");
            SVNErrorManager.error(err, SVNLogType.DEFAULT);
View Full Code Here

Examples of org.tmatesoft.svn.core.io.SVNLocationSegment

      LinkedList segments = (LinkedList) repository.getLocationSegments("", pegRevNum, youngestRequestedRev,
          oldestRequestedRev);

    long trimRevision =  SVNRepository.INVALID_REVISION;
    if (!segments.isEmpty()) {
        SVNLocationSegment segment = (SVNLocationSegment) segments.get(0);
        if (segment.getStartRevision() != oldestRequestedRev) {
            trimRevision = segment.getStartRevision();
        } else if (segment.getPath() == null) {
            if (segments.size() > 1) {
                SVNLocationSegment segment2 = (SVNLocationSegment) segments.get(1);
                SVNURL segmentURL = sourceRootURL.appendPath(segment2.getPath(), false);
                SVNLocationEntry copyFromLocation = getCopySource(null, segmentURL,
                        SVNRevision.create(segment2.getStartRevision()));
                String copyFromPath = copyFromLocation.getPath();
                long copyFromRevision = copyFromLocation.getRevision();
                if (copyFromPath != null && SVNRevision.isValidRevisionNumber(copyFromRevision)) {
                    SVNLocationSegment newSegment = new SVNLocationSegment(copyFromRevision,
                            copyFromRevision, copyFromPath);
                    segment.setStartRevision(copyFromRevision + 1);
                    segments.addFirst(newSegment);
                }
            }
View Full Code Here

Examples of org.tmatesoft.svn.core.io.SVNLocationSegment

      long minRev = Math.min(range.getStartRevision(), range.getEndRevision()) + 1;
      long maxRev = Math.max(range.getStartRevision(), range.getEndRevision());
      boolean subtractive = range.getStartRevision() > range.getEndRevision();
      List mergeSources = new LinkedList();
      for (int i = 0; i < segments.length; i++) {
      SVNLocationSegment segment = segments[i];
      if (segment.getEndRevision() < minRev || segment.getStartRevision() > maxRev ||
          segment.getPath() == null) {
        continue;
      }
     
      String path1 = null;
      long rev1 = Math.max(segment.getStartRevision(), minRev) - 1;
      if (minRev <= segment.getStartRevision()) {
        if (i > 0) {
          path1 = segments[i - 1].getPath();
        }
        if (path1 == null && i > 1) {
          path1 = segments[i - 2].getPath();
          rev1 = segments[i - 2].getEndRevision();
        }
      } else {
        path1 = segment.getPath();
      }
     
      if (path1 == null || segment.getPath() == null) {
        continue;
      }
     
      MergeSource mergeSource = new MergeSource();
      mergeSource.myURL1 = sourceRootURL.appendPath(path1, false);
      mergeSource.myURL2 = sourceRootURL.appendPath(segment.getPath(), false);
      mergeSource.myRevision1 = rev1;
      mergeSource.myRevision2 = Math.min(segment.getEndRevision(), maxRev);
      if (subtractive) {
        long tmpRev = mergeSource.myRevision1;
        SVNURL tmpURL = mergeSource.myURL1;
        mergeSource.myRevision1 = mergeSource.myRevision2;
        mergeSource.myURL1 = mergeSource.myURL2;
View Full Code Here

Examples of org.tmatesoft.svn.core.io.SVNLocationSegment

    }

    private Map getMergeInfoFromSegments(Collection segments) {
        Map mergeInfo = new TreeMap();
        for (Iterator segmentsIter = segments.iterator(); segmentsIter.hasNext();) {
            SVNLocationSegment segment = (SVNLocationSegment) segmentsIter.next();
            if (segment.getPath() == null) {
                continue;
            }
            String sourcePath = segment.getPath();
            Collection pathRanges = (Collection) mergeInfo.get(sourcePath);
            if (pathRanges == null) {
                pathRanges = new LinkedList();
                mergeInfo.put(sourcePath, pathRanges);
            }
            SVNMergeRange range = new SVNMergeRange(Math.max(segment.getStartRevision() - 1, 0),
                    segment.getEndRevision(), true);
            pathRanges.add(range);
        }
        for (Iterator mergeInfoIter = mergeInfo.entrySet().iterator(); mergeInfoIter.hasNext();) {
            Map.Entry mergeInfoEntry = (Map.Entry) mergeInfoIter.next();
            Collection pathRanges = (Collection) mergeInfoEntry.getValue();
View Full Code Here

Examples of org.tmatesoft.svn.core.io.SVNLocationSegment

                return new SVNMergeRangeList(rev1, rev2, true);
            }
            throw e;           
        }
        if (locationSegments != null && !locationSegments.isEmpty()) {
            SVNLocationSegment segment = (SVNLocationSegment) locationSegments.get(locationSegments.size() - 1);
            if (isRollback) {
                if (segment.getStartRevision() == rev2 && segment.getEndRevision() == rev1) {
                    childDeletedOrNonexistant[0] = false;
                } else {
                    childDeletedOrNonexistant[0] = true;
                }
                return new SVNMergeRangeList(rev1, rev2, true);
            }
            if (segment.getStartRevision() == rev2 && segment.getEndRevision() == rev1) {
                childDeletedOrNonexistant[0] = false;
                return new SVNMergeRangeList(rev1, rev2, true);
            }
            SVNMergeRangeList differentNamesRangeList = new SVNMergeRangeList(new SVNMergeRange[0]);
            SVNMergeRangeList predateRangeList = new SVNMergeRangeList(rev1, segment.getStartRevision(), true);
            SVNMergeRangeList predateIntersectionRangeList = predateRangeList.intersect(parent.myRemainingRanges, false);
           
            rangeList = new SVNMergeRangeList(segment.getStartRevision(), rev2, true);
            rangeList = rangeList.merge(predateIntersectionRangeList);
            for (Iterator sgs = locationSegments.iterator(); sgs.hasNext();) {
                SVNLocationSegment seg = (SVNLocationSegment) sgs.next();
                if (seg.getPath() != null && !seg.getPath().equals(mergeinfoPath)) {
                    differentNamesRangeList.pushRange(seg.getStartRevision(), seg.getEndRevision(), true);
                }
            }
            if (differentNamesRangeList.getSize() > 0) {
                rangeList = rangeList.diff(differentNamesRangeList, false);
            }           
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.