diff options
Diffstat (limited to 'services/context/repo.go')
-rw-r--r-- | services/context/repo.go | 39 |
1 files changed, 10 insertions, 29 deletions
diff --git a/services/context/repo.go b/services/context/repo.go index 33a39dced1..6c348b99cb 100644 --- a/services/context/repo.go +++ b/services/context/repo.go @@ -53,20 +53,15 @@ type Repository struct { RepoLink string GitRepo *git.Repository - // these fields indicate the current ref type, for example: ".../src/branch/master" means IsViewBranch=true - IsViewBranch bool - IsViewTag bool - IsViewCommit bool - + // RefFullName is the full ref name that the user is viewing RefFullName git.RefName - BranchName string - TagName string + BranchName string // it is the RefFullName's short name if its type is "branch" + TagName string // it is the RefFullName's short name if its type is "tag" TreePath string - // Commit it is always set to the commit for the branch or tag - Commit *git.Commit - CommitID string - + // Commit it is always set to the commit for the branch or tag, or just the commit that the user is viewing + Commit *git.Commit + CommitID string CommitsCount int64 PullRequest *PullRequest @@ -79,7 +74,7 @@ func (r *Repository) CanWriteToBranch(ctx context.Context, user *user_model.User // CanEnableEditor returns true if repository is editable and user has proper access level. func (r *Repository) CanEnableEditor(ctx context.Context, user *user_model.User) bool { - return r.IsViewBranch && r.CanWriteToBranch(ctx, user, r.BranchName) && r.Repository.CanEnableEditor() && !r.Repository.IsArchived + return r.RefFullName.IsBranch() && r.CanWriteToBranch(ctx, user, r.BranchName) && r.Repository.CanEnableEditor() && !r.Repository.IsArchived } // CanCreateBranch returns true if repository is editable and user has proper access level. @@ -174,15 +169,9 @@ func (r *Repository) GetCommitsCount() (int64, error) { if r.Commit == nil { return 0, nil } - var contextName string - if r.IsViewBranch { - contextName = r.BranchName - } else if r.IsViewTag { - contextName = r.TagName - } else { - contextName = r.CommitID - } - return cache.GetInt64(r.Repository.GetCommitsCountCacheKey(contextName, r.IsViewBranch || r.IsViewTag), func() (int64, error) { + contextName := r.RefFullName.ShortName() + isRef := r.RefFullName.IsBranch() || r.RefFullName.IsTag() + return cache.GetInt64(r.Repository.GetCommitsCountCacheKey(contextName, isRef), func() (int64, error) { return r.Commit.CommitsCount() }) } @@ -798,7 +787,6 @@ func RepoRefByType(detectRefType git.RefType) func(*Context) { // Empty repository does not have reference information. if ctx.Repo.Repository.IsEmpty { // assume the user is viewing the (non-existent) default branch - ctx.Repo.IsViewBranch = true ctx.Repo.BranchName = ctx.Repo.Repository.DefaultBranch ctx.Repo.RefFullName = git.RefNameFromBranch(ctx.Repo.BranchName) // these variables are used by the template to "add/upload" new files @@ -834,7 +822,6 @@ func RepoRefByType(detectRefType git.RefType) func(*Context) { ctx.ServerError("GetBranchCommit", err) return } - ctx.Repo.IsViewBranch = true } else { // there is a path in request guessLegacyPath := refType == "" if guessLegacyPath { @@ -853,7 +840,6 @@ func RepoRefByType(detectRefType git.RefType) func(*Context) { } if refType == git.RefTypeBranch && ctx.Repo.GitRepo.IsBranchExist(refShortName) { - ctx.Repo.IsViewBranch = true ctx.Repo.BranchName = refShortName ctx.Repo.RefFullName = git.RefNameFromBranch(refShortName) @@ -864,7 +850,6 @@ func RepoRefByType(detectRefType git.RefType) func(*Context) { } ctx.Repo.CommitID = ctx.Repo.Commit.ID.String() } else if refType == git.RefTypeTag && ctx.Repo.GitRepo.IsTagExist(refShortName) { - ctx.Repo.IsViewTag = true ctx.Repo.RefFullName = git.RefNameFromTag(refShortName) ctx.Repo.TagName = refShortName @@ -879,7 +864,6 @@ func RepoRefByType(detectRefType git.RefType) func(*Context) { } ctx.Repo.CommitID = ctx.Repo.Commit.ID.String() } else if git.IsStringLikelyCommitID(ctx.Repo.GetObjectFormat(), refShortName, 7) { - ctx.Repo.IsViewCommit = true ctx.Repo.RefFullName = git.RefNameFromCommit(refShortName) ctx.Repo.CommitID = refShortName @@ -915,13 +899,10 @@ func RepoRefByType(detectRefType git.RefType) func(*Context) { ctx.Data["RefTypeNameSubURL"] = ctx.Repo.RefTypeNameSubURL() ctx.Data["TreePath"] = ctx.Repo.TreePath - ctx.Data["IsViewBranch"] = ctx.Repo.IsViewBranch ctx.Data["BranchName"] = ctx.Repo.BranchName - ctx.Data["IsViewTag"] = ctx.Repo.IsViewTag ctx.Data["TagName"] = ctx.Repo.TagName - ctx.Data["IsViewCommit"] = ctx.Repo.IsViewCommit ctx.Data["CommitID"] = ctx.Repo.CommitID ctx.Data["CanCreateBranch"] = ctx.Repo.CanCreateBranch() // only used by the branch selector dropdown: AllowCreateNewRef |