* update the wiki repository remote origin #12050 * wikiRemoteURL is under repo_module * export WikiRemoteURL func * remove redundant space and empty line Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: techknowlogick <techknowlogick@gitea.io>tags/v1.13.0-rc1
@@ -27,9 +27,9 @@ import ( | |||
*/ | |||
var commonWikiURLSuffixes = []string{".wiki.git", ".git/wiki"} | |||
// wikiRemoteURL returns accessible repository URL for wiki if exists. | |||
// WikiRemoteURL returns accessible repository URL for wiki if exists. | |||
// Otherwise, it returns an empty string. | |||
func wikiRemoteURL(remote string) string { | |||
func WikiRemoteURL(remote string) string { | |||
remote = strings.TrimSuffix(remote, ".git") | |||
for _, suffix := range commonWikiURLSuffixes { | |||
wikiURL := remote + suffix | |||
@@ -71,7 +71,7 @@ func MigrateRepositoryGitData(doer, u *models.User, repo *models.Repository, opt | |||
if opts.Wiki { | |||
wikiPath := models.WikiPath(u.Name, opts.RepoName) | |||
wikiRemotePath := wikiRemoteURL(opts.CloneAddr) | |||
wikiRemotePath := WikiRemoteURL(opts.CloneAddr) | |||
if len(wikiRemotePath) > 0 { | |||
if err := os.RemoveAll(wikiPath); err != nil { | |||
return repo, fmt.Errorf("Failed to remove %s: %v", wikiPath, err) |
@@ -100,7 +100,25 @@ func SaveAddress(m *models.Mirror, addr string) error { | |||
} | |||
_, err = git.NewCommand("remote", "add", "origin", "--mirror=fetch", addr).RunInDir(repoPath) | |||
return err | |||
if err != nil && !strings.HasPrefix(err.Error(), "exit status 128 - fatal: No such remote ") { | |||
return err | |||
} | |||
if m.Repo.HasWiki() { | |||
wikiPath := m.Repo.WikiPath() | |||
wikiRemotePath := repo_module.WikiRemoteURL(addr) | |||
// Remove old origin of wiki | |||
_, err := git.NewCommand("remote", "rm", "origin").RunInDir(wikiPath) | |||
if err != nil && !strings.HasPrefix(err.Error(), "exit status 128 - fatal: No such remote ") { | |||
return err | |||
} | |||
_, err = git.NewCommand("remote", "add", "origin", "--mirror=fetch", wikiRemotePath).RunInDir(wikiPath) | |||
if err != nil && !strings.HasPrefix(err.Error(), "exit status 128 - fatal: No such remote ") { | |||
return err | |||
} | |||
} | |||
return nil | |||
} | |||
// gitShortEmptySha Git short empty SHA |