From 2e2a5ebb22d58e287903e5cb15263e940a2ac892 Mon Sep 17 00:00:00 2001 From: Konstantin Kolosovsky Date: Mon, 10 Oct 2016 04:59:00 +0300 Subject: [PATCH] svn: Refactored "FirstInBranch" - used "SVNURL" instead of "String" --- .../jetbrains/idea/svn/history/FirstInBranch.java | 14 +++++++------- .../svn/integrate/LookForBranchOriginTask.java | 3 ++- .../svn/integrate/SvnBranchPointsCalculator.java | 9 +++++---- .../jetbrains/idea/svn/mergeinfo/BranchInfo.java | 3 ++- .../idea/svn/mergeinfo/SvnMergeInfoCache.java | 3 ++- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/FirstInBranch.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/FirstInBranch.java index ae3647030c02..f2cff99ec9b7 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/history/FirstInBranch.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/history/FirstInBranch.java @@ -25,12 +25,12 @@ import org.jetbrains.idea.svn.commandLine.SvnBindException; import org.tmatesoft.svn.core.SVNCancelException; import org.tmatesoft.svn.core.SVNErrorCode; import org.tmatesoft.svn.core.SVNException; +import org.tmatesoft.svn.core.SVNURL; import org.tmatesoft.svn.core.wc.SVNRevision; import org.tmatesoft.svn.core.wc2.SvnTarget; -import static org.jetbrains.idea.svn.SvnUtil.createUrl; import static org.jetbrains.idea.svn.SvnUtil.ensureStartSlash; -import static org.tmatesoft.svn.core.internal.util.SVNPathUtil.getRelativePath; +import static org.jetbrains.idea.svn.SvnUtil.getRelativeUrl; import static org.tmatesoft.svn.core.internal.util.SVNPathUtil.isAncestor; // TODO: This one seem to determine revision in which branch was created - copied from trunk. @@ -41,18 +41,18 @@ public class FirstInBranch { @NotNull private final SvnVcs myVcs; @NotNull private final String myRepositoryRelativeBranchUrl; @NotNull private final String myRepositoryRelativeTrunkUrl; - @NotNull private final String myRepositoryRoot; + @NotNull private final SVNURL myRepositoryRoot; - public FirstInBranch(@NotNull SvnVcs vcs, @NotNull String repositoryRoot, @NotNull String branchUrl, @NotNull String trunkUrl) { + public FirstInBranch(@NotNull SvnVcs vcs, @NotNull SVNURL repositoryRoot, @NotNull String branchUrl, @NotNull String trunkUrl) { myVcs = vcs; myRepositoryRoot = repositoryRoot; - myRepositoryRelativeBranchUrl = ensureStartSlash(getRelativePath(repositoryRoot, branchUrl)); - myRepositoryRelativeTrunkUrl = ensureStartSlash(getRelativePath(repositoryRoot, trunkUrl)); + myRepositoryRelativeBranchUrl = ensureStartSlash(getRelativeUrl(repositoryRoot.toDecodedString(), branchUrl)); + myRepositoryRelativeTrunkUrl = ensureStartSlash(getRelativeUrl(repositoryRoot.toDecodedString(), trunkUrl)); } @Nullable public CopyData run() throws VcsException { - SvnTarget target = SvnTarget.fromURL(createUrl(myRepositoryRoot)); + SvnTarget target = SvnTarget.fromURL(myRepositoryRoot); HistoryClient client = ApplicationManager.getApplication().runReadAction((Computable)() -> { if (myVcs.getProject().isDisposed()) return null; return myVcs.getFactory(target).createHistoryClient(); diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/LookForBranchOriginTask.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/LookForBranchOriginTask.java index e14a25b38480..c83ee77feaed 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/LookForBranchOriginTask.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/LookForBranchOriginTask.java @@ -19,6 +19,7 @@ import com.intellij.openapi.vcs.VcsException; import com.intellij.util.Consumer; import com.intellij.util.continuation.Where; import org.jetbrains.annotations.NotNull; +import org.tmatesoft.svn.core.SVNURL; public class LookForBranchOriginTask extends BaseMergeTask { @@ -35,7 +36,7 @@ public class LookForBranchOriginTask extends BaseMergeTask { @Override public void run() { - String repoUrl = myMergeContext.getWcInfo().getRepoUrl(); + SVNURL repoUrl = myMergeContext.getWcInfo().getRootInfo().getRepositoryUrlUrl(); String sourceUrl = myFromSource ? myMergeContext.getSourceUrl() : myMergeContext.getWcInfo().getRootUrl(); String targetUrl = myFromSource ? myMergeContext.getWcInfo().getRootUrl() : myMergeContext.getSourceUrl(); diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/SvnBranchPointsCalculator.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/SvnBranchPointsCalculator.java index 818715ff5542..e2f13b868dd8 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/SvnBranchPointsCalculator.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/SvnBranchPointsCalculator.java @@ -26,6 +26,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.svn.SvnVcs; import org.jetbrains.idea.svn.history.CopyData; import org.jetbrains.idea.svn.history.FirstInBranch; +import org.tmatesoft.svn.core.SVNURL; import java.io.DataInput; import java.io.DataOutput; @@ -175,9 +176,9 @@ public class SvnBranchPointsCalculator { } @Nullable - public WrapperInvertor calculateCopyPoint(@NotNull String repoUrl, @NotNull String sourceUrl, @NotNull String targetUrl) + public WrapperInvertor calculateCopyPoint(@NotNull SVNURL repoUrl, @NotNull String sourceUrl, @NotNull String targetUrl) throws VcsException { - WrapperInvertor result = getBestHit(repoUrl, sourceUrl, targetUrl); + WrapperInvertor result = getBestHit(repoUrl.toDecodedString(), sourceUrl, targetUrl); if (result == null) { CopyData copyData = new FirstInBranch(myVcs, repoUrl, targetUrl, sourceUrl).run(); @@ -188,12 +189,12 @@ public class SvnBranchPointsCalculator { ? new BranchCopyData(sourceUrl, copyData.getCopySourceRevision(), targetUrl, copyData.getCopyTargetRevision()) : new BranchCopyData(targetUrl, copyData.getCopySourceRevision(), sourceUrl, copyData.getCopyTargetRevision()); - persist(repoUrl, branchCopyData); + persist(repoUrl.toDecodedString(), branchCopyData); result = new WrapperInvertor(!copyData.isTrunkSupposedCorrect(), branchCopyData); } } - logCopyData(repoUrl, sourceUrl, targetUrl, result); + logCopyData(repoUrl.toDecodedString(), sourceUrl, targetUrl, result); return result; } diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/mergeinfo/BranchInfo.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/mergeinfo/BranchInfo.java index b4e90d2b5408..72e02198b78a 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/mergeinfo/BranchInfo.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/mergeinfo/BranchInfo.java @@ -78,7 +78,8 @@ public class BranchInfo { if (myCopyRevison != null && Comparing.equal(myCopyRevison.getPath(), branchPath)) { return myCopyRevison.getRevision(); } - myCopyRevison = new SvnMergeInfoCache.CopyRevison(myVcs, branchPath, myInfo.getRepoUrl(), myBranch.getUrl(), myInfo.getRootUrl()); + myCopyRevison = new SvnMergeInfoCache.CopyRevison(myVcs, branchPath, myInfo.getRootInfo().getRepositoryUrlUrl(), myBranch.getUrl(), + myInfo.getRootUrl()); return -1; } diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/mergeinfo/SvnMergeInfoCache.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/mergeinfo/SvnMergeInfoCache.java index 1a0ef8dba7d3..0be83f569103 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/mergeinfo/SvnMergeInfoCache.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/mergeinfo/SvnMergeInfoCache.java @@ -35,6 +35,7 @@ import org.jetbrains.idea.svn.dialogs.WCInfoWithBranches; import org.jetbrains.idea.svn.history.CopyData; import org.jetbrains.idea.svn.history.FirstInBranch; import org.jetbrains.idea.svn.history.SvnChangeList; +import org.tmatesoft.svn.core.SVNURL; import java.util.Map; @@ -123,7 +124,7 @@ public class SvnMergeInfoCache { private final String myPath; private volatile long myRevision; - CopyRevison(final SvnVcs vcs, final String path, final String repositoryRoot, final String branchUrl, final String trunkUrl) { + CopyRevison(final SvnVcs vcs, final String path, @NotNull SVNURL repositoryRoot, final String branchUrl, final String trunkUrl) { myPath = path; myRevision = -1;