From 37a372f6f57d3c59364af2ed0fc21a58e31146d2 Mon Sep 17 00:00:00 2001
From: Unknwon <u@gogs.io>
Date: Thu, 3 Dec 2015 02:08:25 -0500
Subject: [PATCH] 500 when wiki not exists

---
 models/repo.go | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/models/repo.go b/models/repo.go
index c16a96f110..772551db88 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -985,8 +985,13 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
 	// Change repository directory name.
 	if err = os.Rename(RepoPath(owner.Name, repo.Name), RepoPath(newOwner.Name, repo.Name)); err != nil {
 		return fmt.Errorf("rename repository directory: %v", err)
-	} else if err = os.Rename(WikiPath(owner.Name, repo.Name), WikiPath(newOwner.Name, repo.Name)); err != nil {
-		return fmt.Errorf("rename repository wiki: %v", err)
+	}
+
+	wikiPath := WikiPath(owner.Name, repo.Name)
+	if com.IsExist(wikiPath) {
+		if err = os.Rename(wikiPath, WikiPath(newOwner.Name, repo.Name)); err != nil {
+			return fmt.Errorf("rename repository wiki: %v", err)
+		}
 	}
 
 	return sess.Commit()
@@ -1014,9 +1019,12 @@ func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error)
 
 	wikiPath := WikiPath(u.Name, oldRepoName)
 	if com.IsExist(wikiPath) {
-		err = os.Rename(WikiPath(u.Name, oldRepoName), WikiPath(u.Name, newRepoName))
+		if err = os.Rename(wikiPath, WikiPath(u.Name, newRepoName)); err != nil {
+			return fmt.Errorf("rename repository wiki: %v", err)
+		}
 	}
-	return err
+
+	return nil
 }
 
 func getRepositoriesByForkID(e Engine, forkID int64) ([]*Repository, error) {