// only refresh might have changed; for branches/roots change, another method is used public MergeCheckResult getState( final WCInfoWithBranches info, final SvnChangeList list, final WCInfoWithBranches.Branch selectedBranch, final String branchPath) { final String currentUrl = info.getRootUrl(); final String branchUrl = selectedBranch.getUrl(); MyCurrentUrlData rootMapping = myState.getCurrentUrlMapping().get(currentUrl); BranchInfo mergeChecker = null; if (rootMapping == null) { rootMapping = new MyCurrentUrlData(); myState.getCurrentUrlMapping().put(currentUrl, rootMapping); } else { mergeChecker = rootMapping.getBranchInfo(branchPath); } if (mergeChecker == null) { mergeChecker = new BranchInfo( SvnVcs.getInstance(myProject), info.getRepoUrl(), branchUrl, currentUrl, info.getTrunkRoot()); rootMapping.addBranchInfo(branchPath, mergeChecker); } return mergeChecker.checkList(list, branchPath); }
@NotNull private static Couple<String> createKey( @NotNull WCInfoWithBranches root, @NotNull WCInfoWithBranches.Branch branch) { return Couple.of(root.getPath(), branch.getUrl()); }