From b627f1131b59172cf4a9f238fb89cd415cbc38e0 Mon Sep 17 00:00:00 2001 From: Wendell Sun Date: Sun, 28 Jan 2018 01:54:26 +0800 Subject: [PATCH] Change local copy origin url after repository rename (#3399) Fix #3378 --- models/repo.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/models/repo.go b/models/repo.go index a9e116d6b..59d233678 100644 --- a/models/repo.go +++ b/models/repo.go @@ -1580,10 +1580,19 @@ func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error) } // Change repository directory name. - if err = os.Rename(repo.RepoPath(), RepoPath(u.Name, newRepoName)); err != nil { + newRepoPath := RepoPath(u.Name, newRepoName) + if err = os.Rename(repo.RepoPath(), newRepoPath); err != nil { return fmt.Errorf("rename repository directory: %v", err) } + localPath := repo.LocalCopyPath() + if com.IsExist(localPath) { + _, err := git.NewCommand("remote", "set-url", "origin", newRepoPath).RunInDir(localPath) + if err != nil { + return fmt.Errorf("git remote set-url origin %s: %v", newRepoPath, err) + } + } + wikiPath := repo.WikiPath() if com.IsExist(wikiPath) { if err = os.Rename(wikiPath, WikiPath(u.Name, newRepoName)); err != nil {