diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 830681199..6ae5fa02f 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -102,7 +102,6 @@ function CoderDepot(props){ } },[treeValue]) - useEffect(()=>{ if (projectsId && owner && defaultBranch){ let b = turnbar(branchName) ; @@ -334,6 +333,15 @@ function CoderDepot(props){ } } + // 如果项目是fork的项目,pr自动指向源仓库,否则指向本仓库默认分支 + function compare() { + if (projectDetail && projectDetail.fork_info) { + urlLink(`/${projectDetail.fork_info.fork_project_user_login}/${projectDetail.fork_info.fork_project_identifier}/compare/${turnbar(branchName || defaultBranch)}...${owner + ':' + turnbar(branchName || defaultBranch)}`) + } else { + urlLink(`/${owner}/${projectsId}/compare/${turnbar(defaultBranch)}...${turnbar(branchName || defaultBranch)}`); + } + } + let n = fileInfo && fileInfo.name; const mdFlag = n && n.substring(n.length-3,n.length) === ".md"; @@ -436,10 +444,10 @@ function CoderDepot(props){
- { - baseOperate && - urlLink(`/${owner}/${projectsId}/compare/${turnbar(branchName || defaultBranch)}...${turnbar(branchName || defaultBranch)}`)} >+ 合并请求 - } + { + baseOperate && + + 合并请求 + } { issuesFlag && + 疑修 diff --git a/src/forge/Main/tree/Index.jsx b/src/forge/Main/tree/Index.jsx index f7aa7bd8b..3f4bc0c06 100644 --- a/src/forge/Main/tree/Index.jsx +++ b/src/forge/Main/tree/Index.jsx @@ -85,7 +85,12 @@ function Index(props) {
{ (isManager || isDeveloper) && (projectDetail && projectDetail.type!==2) && - + 合并请求 + + 合并请求 } 下载 diff --git a/src/forge/Merge/CreateMerge.js b/src/forge/Merge/CreateMerge.js index 4ed3570d4..b81219faa 100644 --- a/src/forge/Merge/CreateMerge.js +++ b/src/forge/Merge/CreateMerge.js @@ -223,12 +223,22 @@ class CreateMerge extends Component { return false; } if(type === "merge" && mfilter){ - this.setState({ - showMessage: mergebranch, - defaultMessage: `目标分支不存在`, - isCompareSpin: false - }); - return false; + const {projectDetail,location,history}=this.props; + const { pullOwner, pullBranch, mergeOwner, mergeBranch, projectId } = + getBranchParams(location.pathname); + // 如果进来的第一次,查到目标分支不存在,自动切换到目标仓库默认分支 + if (pullOwner !== mergeOwner && pullBranch=== mergeBranch) { + let _url = `/${mergeOwner}/${projectId}/compare/${(projectDetail.default_branch)}...${pullOwner}:${(pullBranch)}`; + history.push(_url); + return false; + }else{ + this.setState({ + showMessage: mergebranch, + defaultMessage: `目标分支不存在`, + isCompareSpin: false + }); + return false; + } } return true; } diff --git a/src/forge/Merge/merge.js b/src/forge/Merge/merge.js index 172bfdbc4..0f6aeea4d 100644 --- a/src/forge/Merge/merge.js +++ b/src/forge/Merge/merge.js @@ -212,10 +212,14 @@ class merge extends Component { this.getIssueList(); }; checkOperation() { - const { defaultBranch } = this.props; + const { defaultBranch,projectDetail } = this.props; const { projectsId,owner } = this.props.match.params; let branch = turnbar(defaultBranch) || "master"; - this.props.history.push(`/${owner}/${projectsId}/compare/${branch}...${branch}`); + if (projectDetail && projectDetail.fork_info) { + this.props.history.push(`/${projectDetail.fork_info.fork_project_user_login}/${projectDetail.fork_info.fork_project_identifier}/compare/${branch}...${owner + ':' + branch}`) + } else { + this.props.history.push(`/${owner}/${projectsId}/compare/${branch}...${branch}`); + } } render() { const { projectsId , owner } = this.props.match.params;