Copy git data from disk when restore repository (#16066)
This commit is contained in:
parent
a38f62ad0f
commit
7979c3654e
3 changed files with 11 additions and 6 deletions
|
@ -276,19 +276,22 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
|
|||
// asset.DownloadURL maybe a local file
|
||||
var rc io.ReadCloser
|
||||
var err error
|
||||
if asset.DownloadURL == nil {
|
||||
if asset.DownloadFunc != nil {
|
||||
rc, err = asset.DownloadFunc()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
} else if asset.DownloadURL != nil {
|
||||
rc, err = uri.Open(*asset.DownloadURL)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
defer rc.Close()
|
||||
if rc == nil {
|
||||
return nil
|
||||
}
|
||||
_, err = storage.Attachments.Save(attach.RelativePath(), rc, int64(*asset.Size))
|
||||
rc.Close()
|
||||
return err
|
||||
}()
|
||||
if err != nil {
|
||||
|
|
|
@ -184,7 +184,7 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
|
|||
return err
|
||||
}
|
||||
|
||||
log.Trace("migrating git data")
|
||||
log.Trace("migrating git data from %s", repo.CloneURL)
|
||||
if err = uploader.CreateRepo(repo, opts); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ func (r *RepositoryRestorer) GetRepoInfo() (*base.Repository, error) {
|
|||
IsPrivate: isPrivate,
|
||||
Description: opts["description"],
|
||||
OriginalURL: opts["original_url"],
|
||||
CloneURL: opts["clone_addr"],
|
||||
CloneURL: filepath.Join(r.baseDir, "git"),
|
||||
DefaultBranch: opts["default_branch"],
|
||||
}, nil
|
||||
}
|
||||
|
@ -155,7 +155,9 @@ func (r *RepositoryRestorer) GetReleases() ([]*base.Release, error) {
|
|||
}
|
||||
for _, rel := range releases {
|
||||
for _, asset := range rel.Assets {
|
||||
*asset.DownloadURL = "file://" + filepath.Join(r.baseDir, *asset.DownloadURL)
|
||||
if asset.DownloadURL != nil {
|
||||
*asset.DownloadURL = "file://" + filepath.Join(r.baseDir, *asset.DownloadURL)
|
||||
}
|
||||
}
|
||||
}
|
||||
return releases, nil
|
||||
|
|
Reference in a new issue