|
|
|
@ -558,8 +558,12 @@ func (repo *Repository) SavePatch(index int64, patch []byte) error { |
|
|
|
|
if err != nil { |
|
|
|
|
return fmt.Errorf("PatchPath: %v", err) |
|
|
|
|
} |
|
|
|
|
dir := filepath.Dir(patchPath) |
|
|
|
|
|
|
|
|
|
if err := os.MkdirAll(dir, os.ModePerm); err != nil { |
|
|
|
|
return fmt.Errorf("Fail to create dir %s: %v", dir, err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
os.MkdirAll(filepath.Dir(patchPath), os.ModePerm) |
|
|
|
|
if err = ioutil.WriteFile(patchPath, patch, 0644); err != nil { |
|
|
|
|
return fmt.Errorf("WriteFile: %v", err) |
|
|
|
|
} |
|
|
|
@ -669,7 +673,10 @@ func MigrateRepository(u *User, opts MigrateRepoOptions) (*Repository, error) { |
|
|
|
|
|
|
|
|
|
migrateTimeout := time.Duration(setting.Git.Timeout.Migrate) * time.Second |
|
|
|
|
|
|
|
|
|
os.RemoveAll(repoPath) |
|
|
|
|
if err := os.RemoveAll(repoPath); err != nil { |
|
|
|
|
return repo, fmt.Errorf("Fail to remove %s: %v", repoPath, err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err = git.Clone(opts.RemoteAddr, repoPath, git.CloneRepoOptions{ |
|
|
|
|
Mirror: true, |
|
|
|
|
Quiet: true, |
|
|
|
@ -680,7 +687,11 @@ func MigrateRepository(u *User, opts MigrateRepoOptions) (*Repository, error) { |
|
|
|
|
|
|
|
|
|
wikiRemotePath := wikiRemoteURL(opts.RemoteAddr) |
|
|
|
|
if len(wikiRemotePath) > 0 { |
|
|
|
|
os.RemoveAll(wikiPath) |
|
|
|
|
|
|
|
|
|
if err := os.RemoveAll(wikiPath); err != nil { |
|
|
|
|
return repo, fmt.Errorf("Fail to remove %s: %v", wikiPath, err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err = git.Clone(wikiRemotePath, wikiPath, git.CloneRepoOptions{ |
|
|
|
|
Mirror: true, |
|
|
|
|
Quiet: true, |
|
|
|
@ -902,7 +913,11 @@ func initRepository(e Engine, repoPath string, u *User, repo *Repository, opts C |
|
|
|
|
|
|
|
|
|
// Initialize repository according to user's choice.
|
|
|
|
|
if opts.AutoInit { |
|
|
|
|
os.MkdirAll(tmpDir, os.ModePerm) |
|
|
|
|
|
|
|
|
|
if err := os.MkdirAll(tmpDir, os.ModePerm); err != nil { |
|
|
|
|
return fmt.Errorf("Fail to create dir %s: %v", tmpDir, err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
defer os.RemoveAll(tmpDir) |
|
|
|
|
|
|
|
|
|
if err = prepareRepoCommit(repo, tmpDir, repoPath, opts); err != nil { |
|
|
|
@ -1198,7 +1213,12 @@ func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Rename remote repository to new path and delete local copy.
|
|
|
|
|
os.MkdirAll(UserPath(newOwner.Name), os.ModePerm) |
|
|
|
|
dir := UserPath(newOwner.Name) |
|
|
|
|
|
|
|
|
|
if err := os.MkdirAll(dir, os.ModePerm); err != nil { |
|
|
|
|
return fmt.Errorf("Fail to create dir %s: %v", dir, err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err = os.Rename(RepoPath(owner.Name, repo.Name), RepoPath(newOwner.Name, repo.Name)); err != nil { |
|
|
|
|
return fmt.Errorf("rename repository directory: %v", err) |
|
|
|
|
} |
|
|
|
|