mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-02 20:06:06 +01:00 
			
		
		
		
	Fix race condition in repo renaming (#3418)
This commit is contained in:
		@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user