浏览代码

Fix race condition in repo renaming (#3418)

tags/v1.4.0-rc1
Ethan Koenig 6 年前
父节点
当前提交
bac6ac033a
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6
    1
      models/repo.go

+ 6
- 1
models/repo.go 查看文件

@@ -1579,7 +1579,12 @@ func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error)
return fmt.Errorf("GetRepositoryByName: %v", err)
}

// Change repository directory name.
// Change repository directory name. We must lock the local copy of the
// repo so that we can atomically rename the repo path and updates the
// local copy's origin accordingly.
repoWorkingPool.CheckIn(com.ToStr(repo.ID))
defer repoWorkingPool.CheckOut(com.ToStr(repo.ID))

newRepoPath := RepoPath(u.Name, newRepoName)
if err = os.Rename(repo.RepoPath(), newRepoPath); err != nil {
return fmt.Errorf("rename repository directory: %v", err)

正在加载...
取消
保存