Skip to content

Commit 3d0a597

Browse files
committed
Fix possible race condition
1 parent caccfb4 commit 3d0a597

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

models/repo_branch.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,14 @@ func (repo *Repository) CheckBranchName(name string) error {
9292

9393
// CreateNewBranch creates a new repository branch
9494
func (repo *Repository) CreateNewBranch(doer *User, oldBranchName, branchName string) (err error) {
95+
repoWorkingPool.CheckIn(com.ToStr(repo.ID))
96+
defer repoWorkingPool.CheckOut(com.ToStr(repo.ID))
97+
9598
// Check if branch name can be used
9699
if err := repo.CheckBranchName(branchName); err != nil {
97100
return err
98101
}
99102

100-
repoWorkingPool.CheckIn(com.ToStr(repo.ID))
101-
defer repoWorkingPool.CheckOut(com.ToStr(repo.ID))
102-
103103
localPath := repo.LocalCopyPath()
104104

105105
if err = discardLocalRepoBranchChanges(localPath, oldBranchName); err != nil {
@@ -157,14 +157,14 @@ func (repo *Repository) updateLocalCopyToCommit(commit string) error {
157157

158158
// CreateNewBranchFromCommit creates a new repository branch
159159
func (repo *Repository) CreateNewBranchFromCommit(doer *User, commit, branchName string) (err error) {
160+
repoWorkingPool.CheckIn(com.ToStr(repo.ID))
161+
defer repoWorkingPool.CheckOut(com.ToStr(repo.ID))
162+
160163
// Check if branch name can be used
161164
if err := repo.CheckBranchName(branchName); err != nil {
162165
return err
163166
}
164167

165-
repoWorkingPool.CheckIn(com.ToStr(repo.ID))
166-
defer repoWorkingPool.CheckOut(com.ToStr(repo.ID))
167-
168168
localPath := repo.LocalCopyPath()
169169

170170
if err = repo.updateLocalCopyToCommit(commit); err != nil {

0 commit comments

Comments
 (0)