public int compare(Object o1, Object o2) { if (o1 == o2) { return 0; } else if (o1 == null) { return -1; } else if (o2 == null) { return 1; } SVNLocationSegment segment1 = (SVNLocationSegment) o1; SVNLocationSegment segment2 = (SVNLocationSegment) o2; if (segment1.getStartRevision() == segment2.getStartRevision()) { return 0; } return segment1.getStartRevision() < segment2.getStartRevision() ? -1 : 1; } });
public int compare(Object o1, Object o2) { if (o1 == o2) { return 0; } else if (o1 == null) { return -1; } else if (o2 == null) { return 1; } SVNLocationSegment segment1 = (SVNLocationSegment) o1; SVNLocationSegment segment2 = (SVNLocationSegment) o2; if (segment1.getStartRevision() == segment2.getStartRevision()) { return 0; } return segment1.getStartRevision() < segment2.getStartRevision() ? -1 : 1; } });
public int compare(Object o1, Object o2) { if (o1 == o2) { return 0; } else if (o1 == null) { return -1; } else if (o2 == null) { return 1; } SVNLocationSegment segment1 = (SVNLocationSegment) o1; SVNLocationSegment segment2 = (SVNLocationSegment) o2; if (segment1.getStartRevision() == segment2.getStartRevision()) { return 0; } return segment1.getStartRevision() < segment2.getStartRevision() ? -1 : 1; } });
public static Map<String, SVNMergeRangeList> 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); } Map<String, SVNMergeRangeList> result = new TreeMap<String, SVNMergeRangeList>(); for (Iterator paths = mergeInfo.keySet().iterator(); paths.hasNext();) { String path = (String) paths.next(); Collection pathRanges = (Collection) mergeInfo.get(path); result.put(path, SVNMergeRangeList.fromCollection(pathRanges)); } return result; }
public static Map<String, SVNMergeRangeList> getMergeInfoFromSegments(Collection<SVNLocationSegment> segments) { Map<String, Collection<SVNMergeRange>> mergeInfo = new TreeMap<String, Collection<SVNMergeRange>>(); for (Iterator<SVNLocationSegment> segmentsIter = segments.iterator(); segmentsIter.hasNext();) { SVNLocationSegment segment = (SVNLocationSegment) segmentsIter.next(); if (segment.getPath() == null) { continue; } String sourcePath = segment.getPath(); Collection<SVNMergeRange> pathRanges = mergeInfo.get(sourcePath); if (pathRanges == null) { pathRanges = new LinkedList<SVNMergeRange>(); mergeInfo.put(sourcePath, pathRanges); } SVNMergeRange range = new SVNMergeRange(Math.max(segment.getStartRevision() - 1, 0), segment.getEndRevision(), true); pathRanges.add(range); } Map<String, SVNMergeRangeList> result = new TreeMap<String, SVNMergeRangeList>(); for (Iterator<String> paths = mergeInfo.keySet().iterator(); paths.hasNext();) { String path = (String) paths.next(); Collection<SVNMergeRange> pathRanges = mergeInfo.get(path); result.put(path, SVNMergeRangeList.fromCollection(pathRanges)); } return result; }
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); } Map result = new TreeMap(); for (Iterator paths = mergeInfo.keySet().iterator(); paths.hasNext();) { String path = (String) paths.next(); Collection pathRanges = (Collection) mergeInfo.get(path); result.put(path, SVNMergeRangeList.fromCollection(pathRanges)); } return result; }
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); } Map result = new TreeMap(); for (Iterator paths = mergeInfo.keySet().iterator(); paths.hasNext();) { String path = (String) paths.next(); Collection pathRanges = (Collection) mergeInfo.get(path); result.put(path, SVNMergeRangeList.fromCollection(pathRanges)); } return result; }
public void handleLocationSegment(SVNLocationSegment locationSegment) throws SVNException { maybeSendOpener(); Map attrs = new HashMap(); String path = locationSegment.getPath(); if (path != null) { path = DAVPathUtil.dropLeadingSlash(path); String quotedPath = SVNEncodingUtil.xmlEncodeCDATA(path, true); attrs.put(PATH_ATTR, quotedPath); attrs.put(RANGE_START_ATTR, String.valueOf(locationSegment.getStartRevision())); attrs.put(RANGE_END_ATTR, String.valueOf(locationSegment.getEndRevision())); } else { attrs.put(RANGE_START_ATTR, String.valueOf(locationSegment.getStartRevision())); attrs.put(RANGE_END_ATTR, String.valueOf(locationSegment.getEndRevision())); } StringBuffer buffer = SVNXMLUtil.openXMLTag(SVNXMLUtil.SVN_NAMESPACE_PREFIX, LOCATION_SEGMENT_TAG, SVNXMLUtil.XML_STYLE_SELF_CLOSING, attrs, null); write(buffer); }
private void checkGetSegments(@NotNull SVNRepository repo, @NotNull String path, long pegRev, long startRev, long endRev, @NotNull String... expected) throws SVNException { final List<String> actual = new ArrayList<>(); repo.getLocationSegments(path, pegRev, startRev, endRev, locationEntry -> { actual.add(locationEntry.getPath() + "@" + locationEntry.getStartRevision() + ":" + locationEntry.getEndRevision()); }); Assert.assertEquals(actual.toArray(new String[actual.size()]), expected); } }
for (int i = 0; i < segments.length; i++) { SVNLocationSegment segment = segments[i]; if (segment.getEndRevision() < minRev || segment.getStartRevision() > maxRev || segment.getPath() == null) { continue; long rev1 = Math.max(segment.getStartRevision(), minRev) - 1; if (minRev <= segment.getStartRevision()) { if (i > 0) { path1 = segments[i - 1].getPath();
for (int i = 0; i < segments.length; i++) { SVNLocationSegment segment = segments[i]; if (segment.getEndRevision() < minRev || segment.getStartRevision() > maxRev || segment.getPath() == null) { continue; long rev1 = Math.max(segment.getStartRevision(), minRev) - 1; if (minRev <= segment.getStartRevision()) { if (i > 0) { path1 = segments[i - 1].getPath();
for (int i = 0; i < segments.length; i++) { SVNLocationSegment segment = segments[i]; if (segment.getEndRevision() < minRev || segment.getStartRevision() > maxRev || segment.getPath() == null) { continue; long rev1 = Math.max(segment.getStartRevision(), minRev) - 1; if (minRev <= segment.getStartRevision()) { if (i > 0) { path1 = segments[i - 1].getPath();
for (int i = 0; i < segments.length; i++) { SVNLocationSegment segment = segments[i]; if (segment.getEndRevision() < minRev || segment.getStartRevision() > maxRev || segment.getPath() == null) { continue; long rev1 = Math.max(segment.getStartRevision(), minRev) - 1; if (minRev <= segment.getStartRevision()) { if (i > 0) { path1 = segments[i - 1].getPath();
SVNURL targetUrl = SVNWCUtils.join(targetReposRoot, targetReposRelPath); SVNLocationSegment yc = getRepositoryAccess().getYoungestCommonAncestor(sourceUrl, sourceRev, targetUrl, targetRev); if (!(yc != null && yc.getPath() != null && yc.getStartRevision() >= 0)) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.CLIENT_NOT_READY_TO_MERGE, "''{0}''@''{1}'' must be ancestrally related to ''{2}''@''{3}''", sourceUrl, new Long(sourceRev), targetUrl, new Long(targetRev)); if (sourceRev == yc.getStartRevision()) { return null; mergedToSourceCatalog.putAll(mergeInfoCatalog); UnmergedMergeInfo unmergedMergeInfo = findUnmergedMergeInfo(yc.getStartRevision(), mergeInfoCatalog, segmentsMap, sourceReposRelPath, targetReposRelPath, targetRev, sourceRev, sourceRepository, targetRepository); unmergedMergeInfo.catalog = SVNMergeInfoUtil.elideMergeInfoCatalog(unmergedMergeInfo.catalog); if (unmergedToSourceCatalog != null && unmergedMergeInfo.catalog != null) { return SvnTarget.fromURL(sourceReposRoot.appendPath(yc.getPath(), false), SVNRevision.create(yc.getStartRevision())); } else { Structure<LocationsInfo> locations = getRepositoryAccess().getLocations(targetRepository, SvnTarget.fromURL(targetUrl),
if (!segments.isEmpty()) { SVNLocationSegment segment = segments.get(0); if (segment.getStartRevision() != oldestRequested) { 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 = repositoryAccess.getCopySource(SvnTarget.fromURL(segmentURL), SVNRevision.create(segment2.getStartRevision())); String copyFromPath = copyFromLocation.getPath(); long copyFromRevision = copyFromLocation.getRevision();
if (!segments.isEmpty() && hasZero != null && hasZero.length > 0) { SVNLocationSegment oldest = segments.get(0); hasZero[0] = oldest.getStartRevision() == 0;
if (segment.getStartRevision() == olderRev) { return; SVNMergeRangeList existingRangeList = new SVNMergeRangeList(new SVNMergeRange(segment.getStartRevision(), pegRev, true)); 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);
if (segment.getStartRevision() == olderRev) { return; SVNMergeRangeList existingRangeList = new SVNMergeRangeList(new SVNMergeRange(segment.getStartRevision(), pegRev, true)); child.remainingRanges = child.remainingRanges.intersect(existingRangeList, false); SVNMergeRangeList nonExistentRangeList = new SVNMergeRangeList(new SVNMergeRange(olderRev, segment.getStartRevision(), true)); nonExistentRangeList = parent.remainingRanges.intersect(nonExistentRangeList, false); child.remainingRanges = child.remainingRanges.merge(nonExistentRangeList);
if (segment.getStartRevision() == olderRev) { return; SVNMergeRangeList existingRangeList = new SVNMergeRangeList(new SVNMergeRange(segment.getStartRevision(), pegRev, true)); 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);
if (segment.getStartRevision() == olderRev) { return; SVNMergeRangeList existingRangeList = new SVNMergeRangeList(new SVNMergeRange(segment.getStartRevision(), pegRev, true)); 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);