aboutsummaryrefslogtreecommitdiff
path: root/models/repo.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo.go')
-rw-r--r--models/repo.go47
1 files changed, 23 insertions, 24 deletions
diff --git a/models/repo.go b/models/repo.go
index 868498bc..4a8c8f05 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -414,7 +414,8 @@ func (repo *Repository) ComposePayload() *api.PayloadRepo {
Email: repo.MustOwner().Email,
UserName: repo.MustOwner().Name,
},
- Private: repo.IsPrivate,
+ Private: repo.IsPrivate,
+ DefaultBranch: repo.DefaultBranch,
}
}
@@ -957,10 +958,13 @@ func countRepositories(showPrivate bool) int64 {
sess := x.NewSession()
if !showPrivate {
- sess.Where("is_private=", false)
+ sess.Where("is_private=?", false)
}
- count, _ := sess.Count(new(Repository))
+ count, err := sess.Count(new(Repository))
+ if err != nil {
+ log.Error(4, "countRepositories: %v", err)
+ }
return count
}
@@ -1093,13 +1097,16 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
return fmt.Errorf("transferRepoAction: %v", err)
}
- // Change repository directory name.
+ // Rename remote repository to new path and delete local copy.
if err = os.Rename(RepoPath(owner.Name, repo.Name), RepoPath(newOwner.Name, repo.Name)); err != nil {
return fmt.Errorf("rename repository directory: %v", err)
}
+ RemoveAllWithNotice("Delete repository local copy", repo.LocalCopyPath())
+ // Rename remote wiki repository to new path and delete local copy.
wikiPath := WikiPath(owner.Name, repo.Name)
if com.IsExist(wikiPath) {
+ RemoveAllWithNotice("Delete repository wiki local copy", repo.LocalWikiPath())
if err = os.Rename(wikiPath, WikiPath(newOwner.Name, repo.Name)); err != nil {
return fmt.Errorf("rename repository wiki: %v", err)
}
@@ -1123,16 +1130,22 @@ func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error)
return ErrRepoAlreadyExist{u.Name, newRepoName}
}
+ repo, err := GetRepositoryByName(u.Id, oldRepoName)
+ if err != nil {
+ return fmt.Errorf("GetRepositoryByName: %v", err)
+ }
+
// Change repository directory name.
- if err = os.Rename(RepoPath(u.Name, oldRepoName), RepoPath(u.Name, newRepoName)); err != nil {
+ if err = os.Rename(repo.RepoPath(), RepoPath(u.Name, newRepoName)); err != nil {
return fmt.Errorf("rename repository directory: %v", err)
}
- wikiPath := WikiPath(u.Name, oldRepoName)
+ wikiPath := repo.WikiPath()
if com.IsExist(wikiPath) {
if err = os.Rename(wikiPath, WikiPath(u.Name, newRepoName)); err != nil {
return fmt.Errorf("rename repository wiki: %v", err)
}
+ RemoveAllWithNotice("Delete repository wiki local copy", repo.LocalWikiPath())
}
return nil
@@ -1295,30 +1308,16 @@ func DeleteRepository(uid, repoID int64) error {
// Remove repository files.
repoPath := repo.repoPath(sess)
- if err = os.RemoveAll(repoPath); err != nil {
- desc := fmt.Sprintf("delete repository files [%s]: %v", repoPath, err)
- log.Warn(desc)
- if err = CreateRepositoryNotice(desc); err != nil {
- log.Error(4, "CreateRepositoryNotice: %v", err)
- }
- }
+ RemoveAllWithNotice("Delete repository files", repoPath)
wikiPaths := []string{repo.WikiPath(), repo.LocalWikiPath()}
for _, wikiPath := range wikiPaths {
- if err = os.RemoveAll(wikiPath); err != nil {
- desc := fmt.Sprintf("delete repository wiki [%s]: %v", wikiPath, err)
- log.Warn(desc)
- if err = CreateRepositoryNotice(desc); err != nil {
- log.Error(4, "CreateRepositoryNotice: %v", err)
- }
- }
+ RemoveAllWithNotice("Delete repository wiki", wikiPath)
}
// Remove attachment files.
for i := range attachmentPaths {
- if err = os.Remove(attachmentPaths[i]); err != nil {
- log.Warn("delete attachment: %v", err)
- }
+ RemoveAllWithNotice("Delete attachment", attachmentPaths[i])
}
if err = sess.Commit(); err != nil {
@@ -1333,7 +1332,7 @@ func DeleteRepository(uid, repoID int64) error {
}
for i := range forkRepos {
if err = DeleteRepository(forkRepos[i].OwnerID, forkRepos[i].ID); err != nil {
- log.Error(4, "updateRepository[%d]: %v", forkRepos[i].ID, err)
+ log.Error(4, "DeleteRepository [%d]: %v", forkRepos[i].ID, err)
}
}
} else {