private SVNTreeConflictDescription makeTreeConflict(File path, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException { final SVNConflictVersion[] cvs = makeConflictVersions(path, kind); final SVNTreeConflictDescription tc = new SVNTreeConflictDescription(path, kind, action, reason, SVNOperation.MERGE, cvs[0], cvs[1]); return tc; }
public SVNConflictDescription toConflictDescription() { String wcPath = localAbspath != null ? localAbspath.getPath() : null; switch (kind) { case PROPERTY: return new SVNPropertyConflictDescription(new SVNMergeFileSet(null, null, baseFile, myFile, wcPath, theirFile, mergedFile, null, mimeType), nodeKind, propertyName, action, reason); case TEXT: return new SVNTextConflictDescription(new SVNMergeFileSet(null, null, baseFile, myFile, wcPath, theirFile, mergedFile, null, mimeType), nodeKind, action, reason); case TREE: return new SVNTreeConflictDescription(localAbspath, nodeKind, action, reason, operation, srcLeftVersion, srcRightVersion); } return null; }
protected SVNTreeConflictDescription makeTreeConflict(File victim, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException { SVNURL srcReposRoot = myRepository1.getRepositoryRoot(true); String child = SVNPathUtil.getRelativePath(myTarget.getAbsolutePath(), victim.getAbsolutePath()); SVNURL leftURL = null; SVNURL rightURL = null; if (child != null) { leftURL = myCurrentMergeSource.myURL1.appendPath(child, false); rightURL = myCurrentMergeSource.myURL2.appendPath(child, false); } else { leftURL = myCurrentMergeSource.myURL1; rightURL = myCurrentMergeSource.myURL2; } SVNConflictVersion leftConflictVersion = new SVNConflictVersion(srcReposRoot, SVNURLUtil.getRelativeURL(srcReposRoot, leftURL), myCurrentMergeSource.myRevision1, kind); SVNConflictVersion rightConflictVersion = new SVNConflictVersion(srcReposRoot, SVNURLUtil.getRelativeURL(srcReposRoot, rightURL), myCurrentMergeSource.myRevision2, kind); SVNTreeConflictDescription conflictDescription = new SVNTreeConflictDescription(victim, kind, action, reason, SVNOperation.MERGE, leftConflictVersion, rightConflictVersion); return conflictDescription; }
protected SVNTreeConflictDescription makeTreeConflict(File victim, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException { SVNURL srcReposRoot = myRepository1.getRepositoryRoot(true); String child = SVNPathUtil.getRelativePath(myTarget.getAbsolutePath(), victim.getAbsolutePath()); SVNURL leftURL = null; SVNURL rightURL = null; if (child != null) { leftURL = myCurrentMergeSource.myURL1.appendPath(child, false); rightURL = myCurrentMergeSource.myURL2.appendPath(child, false); } else { leftURL = myCurrentMergeSource.myURL1; rightURL = myCurrentMergeSource.myURL2; } SVNConflictVersion leftConflictVersion = new SVNConflictVersion(srcReposRoot, SVNURLUtil.getRelativeURL(srcReposRoot, leftURL, false), myCurrentMergeSource.myRevision1, kind); SVNConflictVersion rightConflictVersion = new SVNConflictVersion(srcReposRoot, SVNURLUtil.getRelativeURL(srcReposRoot, rightURL, false), myCurrentMergeSource.myRevision2, kind); SVNTreeConflictDescription conflictDescription = new SVNTreeConflictDescription(victim, kind, action, reason, SVNOperation.MERGE, leftConflictVersion, rightConflictVersion); return conflictDescription; }
protected void recordTreeConflict(File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException { if (myIsRecordOnly || myIsDryRun) { return; } SVNURL srcReposRoot = myRepository1.getRepositoryRoot(true); String child = SVNPathUtil.getRelativePath(myTarget.getAbsolutePath(), victim.getAbsolutePath()); SVNURL leftURL = null; SVNURL rightURL = null; if (child != null) { leftURL = myCurrentMergeSource.myURL1.appendPath(child, false); rightURL = myCurrentMergeSource.myURL2.appendPath(child, false); } else { leftURL = myCurrentMergeSource.myURL1; rightURL = myCurrentMergeSource.myURL2; } SVNConflictVersion leftConflictVersion = new SVNConflictVersion(srcReposRoot, SVNURLUtil.getRelativeURL(srcReposRoot, leftURL), myCurrentMergeSource.myRevision1, kind); SVNConflictVersion rightConflictVersion = new SVNConflictVersion(srcReposRoot, SVNURLUtil.getRelativeURL(srcReposRoot, rightURL), myCurrentMergeSource.myRevision2, kind); SVNTreeConflictDescription conflictDescription = new SVNTreeConflictDescription(victim, kind, action, reason, SVNOperation.MERGE, leftConflictVersion, rightConflictVersion); adminArea.addTreeConflict(conflictDescription); }
return new SVNTreeConflictDescription(localAbspath, conflictNodeKind, action, reason, mySwitchRelpath != null ? SVNOperation.SWITCH : SVNOperation.UPDATE, srcLeftVersion, srcRightVersion);
private TcInfo getTcInfo(File srcAbsPath) throws SVNException { SVNSkel conflictSkel = readConflict(srcAbsPath); if (conflictSkel == null) { SVNErrorMessage errorMessage = SVNErrorMessage.create(SVNErrorCode.WC_CONFLICT_RESOLVER_FAILURE, "'{0}' is not in conflict", srcAbsPath); SVNErrorManager.error(errorMessage, SVNLogType.WC); } Structure<ConflictInfo> conflictInfoStructure = SvnWcDbConflicts.readConflictInfo(conflictSkel); boolean treeConflicted = conflictInfoStructure.is(ConflictInfo.treeConflicted); final List<SVNConflictVersion> locations = conflictInfoStructure.get(ConflictInfo.locations); SVNOperation operation = conflictInfoStructure.get(ConflictInfo.conflictOperation); if ((operation != SVNOperation.UPDATE && operation != SVNOperation.SWITCH) || !treeConflicted) { SVNErrorMessage errorMessage = SVNErrorMessage.create(SVNErrorCode.WC_CONFLICT_RESOLVER_FAILURE, "'{0}' is not a tree-conflict victim", srcAbsPath); SVNErrorManager.error(errorMessage, SVNLogType.WC); } SVNConflictVersion oldVersion = null; SVNConflictVersion newVersion = null; if (locations != null) { assert locations.size() >= 2; oldVersion = locations.get(0); newVersion = locations.get(1); } Structure<TreeConflictInfo> treeConflictInfoStructure = SvnWcDbConflicts.readTreeConflict(this, srcAbsPath, conflictSkel); SVNConflictReason localChange = treeConflictInfoStructure.get(TreeConflictInfo.localChange); SVNConflictAction incomingChange = treeConflictInfoStructure.get(TreeConflictInfo.incomingChange); TcInfo tcInfo = new TcInfo(); tcInfo.moveSrcOpRootAbsPath = treeConflictInfoStructure.get(TreeConflictInfo.moveSrcOpRootAbsPath); //TODO: unused! tcInfo.treeConflictDescription = new SVNTreeConflictDescription(srcAbsPath, SVNNodeKind.UNKNOWN, incomingChange, localChange, operation, oldVersion, newVersion); return tcInfo; }
protected void recordTreeConflictOnAdd(File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException { if (myIsRecordOnly || myIsDryRun) { return; } SVNTreeConflictDescription conflict = makeTreeConflict(victim, kind, action, reason); SVNTreeConflictDescription existingConflict = myWCAccess.getTreeConflict(conflict.getPath()); if (existingConflict != null && existingConflict.getConflictAction() == SVNConflictAction.DELETE && conflict.getConflictAction() == SVNConflictAction.ADD) { adminArea.deleteTreeConflict(conflict.getPath().getName()); conflict = new SVNTreeConflictDescription(conflict.getPath(), conflict.getNodeKind(), SVNConflictAction.DELETE, existingConflict.getConflictReason(), conflict.getOperation(), existingConflict.getSourceLeftVersion(), conflict.getSourceRightVersion()); } adminArea.addTreeConflict(conflict); }
public List<SVNConflictDescription> readConflicts(File localAbsPath) throws SVNException { final List<SVNWCConflictDescription17> conflicts = readConflicts(localAbsPath, false); final List<SVNConflictDescription> translated = new ArrayList<SVNConflictDescription>(); for(SVNWCConflictDescription17 description : conflicts) { final SVNMergeFileSet mergeFiles = new SVNMergeFileSet(null, null, description.getBaseFile(), description.getMyFile(), localAbsPath.getAbsolutePath(), description.getTheirFile(), description.getMergedFile(), null, description.getMimeType()); if (description.getKind() == ConflictKind.PROPERTY) { translated.add(new SVNPropertyConflictDescription(mergeFiles, description.getNodeKind(), description.getPropertyName(), description.getAction(), description.getReason())); } else if (description.getKind() == ConflictKind.TREE) { translated.add(new SVNTreeConflictDescription(localAbsPath, description.getNodeKind(), description.getAction(), description.getReason(), description.getOperation(), description.getSrcLeftVersion(), description.getSrcRightVersion())); } else if (description.getKind() == ConflictKind.TEXT) { translated.add(new SVNTextConflictDescription(mergeFiles, description.getNodeKind(), description.getAction(), description.getReason())); } } return translated; }
protected void recordTreeConflictOnAdd(File victim, SVNAdminArea adminArea, SVNNodeKind kind, SVNConflictAction action, SVNConflictReason reason) throws SVNException { if (myIsRecordOnly || myIsDryRun) { return; } SVNTreeConflictDescription conflict = makeTreeConflict(victim, kind, action, reason); SVNTreeConflictDescription existingConflict = myWCAccess.getTreeConflict(conflict.getPath()); if (existingConflict != null && existingConflict.getConflictAction() == SVNConflictAction.DELETE && conflict.getConflictAction() == SVNConflictAction.ADD) { adminArea.deleteTreeConflict(conflict.getPath().getName()); conflict = new SVNTreeConflictDescription(conflict.getPath(), conflict.getNodeKind(), SVNConflictAction.DELETE, existingConflict.getConflictReason(), conflict.getOperation(), existingConflict.getSourceLeftVersion(), conflict.getSourceRightVersion()); } adminArea.addTreeConflict(conflict); }
tcKind = SVNNodeKind.FILE; final SVNTreeConflictDescription treeConflict = new SVNTreeConflictDescription( childAbsPath, tcKind, treeConflictInfo.<SVNConflictAction>get(TreeConflictInfo.incomingChange),
private static SVNTreeConflictDescription readSingleTreeConflict(SVNSkel skel, File dirPath) throws SVNException { if (!isValidConflict(skel)) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Invalid conflict info in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } if (skel.getChild(1).getData().length == 0) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Empty \'victim\' field in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } String victimBasename = skel.getChild(1).getValue(); SVNNodeKind kind = getNodeKind(skel.getChild(2).getValue()); if (kind != SVNNodeKind.FILE && kind != SVNNodeKind.DIR) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Invalid \'node_kind\' field in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } SVNOperation operation = getOperation(skel.getChild(3).getValue()); SVNConflictAction action = getAction(skel.getChild(4).getValue()); SVNConflictReason reason = getConflictReason(skel.getChild(5).getValue()); SVNConflictVersion srcLeftVersion = readConflictVersion(skel.getChild(6)); SVNConflictVersion srcRightVersion = readConflictVersion(skel.getChild(7)); return new SVNTreeConflictDescription(new File(dirPath, victimBasename), kind, action, reason, operation, srcLeftVersion, srcRightVersion); }
public static SVNTreeConflictDescription readSingleTreeConflict(SVNSkel skel, File dirPath) throws SVNException { if (!isValidConflict(skel)) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Invalid conflict info in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } if (skel.getChild(1).getData().length == 0) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Empty \'victim\' field in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } String victimBasename = skel.getChild(1).getValue(); SVNNodeKind kind = getNodeKind(skel.getChild(2).getValue()); if (kind != SVNNodeKind.FILE && kind != SVNNodeKind.DIR) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Invalid \'node_kind\' field in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } SVNOperation operation = getOperation(skel.getChild(3).getValue()); SVNConflictAction action = getAction(skel.getChild(4).getValue()); SVNConflictReason reason = getConflictReason(skel.getChild(5).getValue()); SVNConflictVersion srcLeftVersion = readConflictVersion(skel.getChild(6)); SVNConflictVersion srcRightVersion = readConflictVersion(skel.getChild(7)); return new SVNTreeConflictDescription(new File(dirPath, victimBasename), kind, action, reason, operation, srcLeftVersion, srcRightVersion); }
private static SVNTreeConflictDescription readSingleTreeConflict(SVNSkel skel, File dirPath) throws SVNException { if (!isValidConflict(skel)) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Invalid conflict info in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } if (skel.getChild(1).getData().length == 0) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Empty \'victim\' field in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } String victimBasename = skel.getChild(1).getValue(); SVNNodeKind kind = getNodeKind(skel.getChild(2).getValue()); if (kind != SVNNodeKind.FILE && kind != SVNNodeKind.DIR) { SVNErrorMessage error = SVNErrorMessage.create(SVNErrorCode.WC_CORRUPT, "Invalid \'node_kind\' field in tree conflict description"); SVNErrorManager.error(error, SVNLogType.WC); } SVNOperation operation = getOperation(skel.getChild(3).getValue()); SVNConflictAction action = getAction(skel.getChild(4).getValue()); SVNConflictReason reason = getConflictReason(skel.getChild(5).getValue()); SVNConflictVersion srcLeftVersion = readConflictVersion(skel.getChild(6)); SVNConflictVersion srcRightVersion = readConflictVersion(skel.getChild(7)); return new SVNTreeConflictDescription(new File(dirPath, victimBasename), kind, action, reason, operation, srcLeftVersion, srcRightVersion); }
SVNTreeConflictDescription treeConflict = new SVNTreeConflictDescription(path, entry.getKind(), action, reason, mySwitchURL != null ? SVNOperation.SWITCH : SVNOperation.UPDATE, srcLeftVersion, srcRightVersion);
SVNTreeConflictDescription treeConflict = new SVNTreeConflictDescription(path, entry.getKind(), action, reason, mySwitchURL != null ? SVNOperation.SWITCH : SVNOperation.UPDATE, srcLeftVersion, srcRightVersion);
SVNTreeConflictDescription treeConflict = new SVNTreeConflictDescription(path, entry.getKind(), action, reason, mySwitchURL != null ? SVNOperation.SWITCH : SVNOperation.UPDATE, srcLeftVersion, srcRightVersion);
nodeKind = sourceLeftVersion.getKind(); SVNTreeConflictDescription treeConflictDescription = new SVNTreeConflictDescription(localAbsPath, nodeKind, action, reason, operation, sourceLeftVersion, sourceRightVersion); treeConflictRawData = SVNTreeConflictUtil.getSingleTreeConflictRawData(treeConflictDescription);