|  | @@ -300,37 +300,6 @@ func RepoAssignment(args ...bool) macaron.Handler {
 | 
	
		
			
				|  |  |  		ctx.Data["BranchName"] = ctx.Repo.BranchName
 | 
	
		
			
				|  |  |  		ctx.Data["CommitID"] = ctx.Repo.CommitID
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		if repo.IsFork {
 | 
	
		
			
				|  |  | -			RetrieveBaseRepo(ctx, repo)
 | 
	
		
			
				|  |  | -			if ctx.Written() {
 | 
	
		
			
				|  |  | -				return
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		// People who have push access or have fored repository can propose a new pull request.
 | 
	
		
			
				|  |  | -		if ctx.Repo.IsWriter() || (ctx.IsSigned && ctx.User.HasForkedRepo(ctx.Repo.Repository.ID)) {
 | 
	
		
			
				|  |  | -			// Pull request is allowed if this is a fork repository
 | 
	
		
			
				|  |  | -			// and base repository accepts pull requests.
 | 
	
		
			
				|  |  | -			if repo.BaseRepo != nil {
 | 
	
		
			
				|  |  | -				if repo.BaseRepo.AllowsPulls() {
 | 
	
		
			
				|  |  | -					ctx.Data["BaseRepo"] = repo.BaseRepo
 | 
	
		
			
				|  |  | -					ctx.Repo.PullRequest.BaseRepo = repo.BaseRepo
 | 
	
		
			
				|  |  | -					ctx.Repo.PullRequest.Allowed = true
 | 
	
		
			
				|  |  | -					ctx.Repo.PullRequest.HeadInfo = ctx.Repo.Owner.Name + ":" + ctx.Repo.BranchName
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -			} else {
 | 
	
		
			
				|  |  | -				// Or, this is repository accepts pull requests between branches.
 | 
	
		
			
				|  |  | -				if repo.AllowsPulls() {
 | 
	
		
			
				|  |  | -					ctx.Data["BaseRepo"] = repo
 | 
	
		
			
				|  |  | -					ctx.Repo.PullRequest.BaseRepo = repo
 | 
	
		
			
				|  |  | -					ctx.Repo.PullRequest.Allowed = true
 | 
	
		
			
				|  |  | -					ctx.Repo.PullRequest.SameRepo = true
 | 
	
		
			
				|  |  | -					ctx.Repo.PullRequest.HeadInfo = ctx.Repo.BranchName
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		ctx.Data["PullRequestCtx"] = ctx.Repo.PullRequest
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  		if ctx.Query("go-get") == "1" {
 | 
	
		
			
				|  |  |  			ctx.Data["GoGetImport"] = composeGoGetImport(owner.Name, repo.Name)
 | 
	
		
			
				|  |  |  			prefix := setting.AppUrl + path.Join(owner.Name, repo.Name, "src", ctx.Repo.BranchName)
 | 
	
	
		
			
				|  | @@ -443,6 +412,37 @@ func RepoRef() macaron.Handler {
 | 
	
		
			
				|  |  |  		ctx.Data["IsViewTag"] = ctx.Repo.IsViewTag
 | 
	
		
			
				|  |  |  		ctx.Data["IsViewCommit"] = ctx.Repo.IsViewCommit
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		if ctx.Repo.Repository.IsFork {
 | 
	
		
			
				|  |  | +			RetrieveBaseRepo(ctx, ctx.Repo.Repository)
 | 
	
		
			
				|  |  | +			if ctx.Written() {
 | 
	
		
			
				|  |  | +				return
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// People who have push access or have fored repository can propose a new pull request.
 | 
	
		
			
				|  |  | +		if ctx.Repo.IsWriter() || (ctx.IsSigned && ctx.User.HasForkedRepo(ctx.Repo.Repository.ID)) {
 | 
	
		
			
				|  |  | +			// Pull request is allowed if this is a fork repository
 | 
	
		
			
				|  |  | +			// and base repository accepts pull requests.
 | 
	
		
			
				|  |  | +			if ctx.Repo.Repository.BaseRepo != nil {
 | 
	
		
			
				|  |  | +				if ctx.Repo.Repository.BaseRepo.AllowsPulls() {
 | 
	
		
			
				|  |  | +					ctx.Data["BaseRepo"] = ctx.Repo.Repository.BaseRepo
 | 
	
		
			
				|  |  | +					ctx.Repo.PullRequest.BaseRepo = ctx.Repo.Repository.BaseRepo
 | 
	
		
			
				|  |  | +					ctx.Repo.PullRequest.Allowed = true
 | 
	
		
			
				|  |  | +					ctx.Repo.PullRequest.HeadInfo = ctx.Repo.Owner.Name + ":" + ctx.Repo.BranchName
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				// Or, this is repository accepts pull requests between branches.
 | 
	
		
			
				|  |  | +				if ctx.Repo.Repository.AllowsPulls() {
 | 
	
		
			
				|  |  | +					ctx.Data["BaseRepo"] = ctx.Repo.Repository
 | 
	
		
			
				|  |  | +					ctx.Repo.PullRequest.BaseRepo = ctx.Repo.Repository
 | 
	
		
			
				|  |  | +					ctx.Repo.PullRequest.Allowed = true
 | 
	
		
			
				|  |  | +					ctx.Repo.PullRequest.SameRepo = true
 | 
	
		
			
				|  |  | +					ctx.Repo.PullRequest.HeadInfo = ctx.Repo.BranchName
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		ctx.Data["PullRequestCtx"] = ctx.Repo.PullRequest
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		ctx.Repo.CommitsCount, err = ctx.Repo.Commit.CommitsCount()
 | 
	
		
			
				|  |  |  		if err != nil {
 | 
	
		
			
				|  |  |  			ctx.Handle(500, "CommitsCount", err)
 |