diff options
author | zeripath <art27@cantab.net> | 2021-10-13 20:47:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-13 20:47:02 +0100 |
commit | 5a8dd96b33ac6e91a5c40fc4ef867625ca6ec88e (patch) | |
tree | 5b57df8b2b234382f438015348f201f96f264c7f /modules/repository/fork.go | |
parent | 01b9d35f1a0188dadc1ee09f5e4dd98acc38ff09 (diff) | |
download | gitea-5a8dd96b33ac6e91a5c40fc4ef867625ca6ec88e.tar.gz gitea-5a8dd96b33ac6e91a5c40fc4ef867625ca6ec88e.zip |
Ensure that git daemon export ok is created for mirrors (#17243)
* Ensure that git daemon export ok is created for mirrors
There is an issue with #16508 where it appears that create repo requires that the
repo does not exist. This causes #17241 where an error is reported because of this.
This PR fixes this and also runs update-server-info for mirrors and generated repos.
Fix #17241
Signed-off-by: Andrew Thornton <art27@cantab.net>
Diffstat (limited to 'modules/repository/fork.go')
-rw-r--r-- | modules/repository/fork.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/repository/fork.go b/modules/repository/fork.go index 59c07271a6..df1dccc596 100644 --- a/modules/repository/fork.go +++ b/modules/repository/fork.go @@ -97,7 +97,7 @@ func ForkRepository(doer, owner *models.User, opts models.ForkRepoOptions) (_ *m needsRollback = true repoPath := models.RepoPath(owner.Name, repo.Name) - if stdout, err := git.NewCommand( + if stdout, err := git.NewCommandContext(ctx, "clone", "--bare", oldRepoPath, repoPath). SetDescription(fmt.Sprintf("ForkRepository(git clone): %s to %s", opts.BaseRepo.FullName(), repo.FullName())). RunInDirTimeout(10*time.Minute, ""); err != nil { @@ -105,7 +105,11 @@ func ForkRepository(doer, owner *models.User, opts models.ForkRepoOptions) (_ *m return fmt.Errorf("git clone: %v", err) } - if stdout, err := git.NewCommand("update-server-info"). + if err := repo.CheckDaemonExportOK(ctx); err != nil { + return fmt.Errorf("checkDaemonExportOK: %v", err) + } + + if stdout, err := git.NewCommandContext(ctx, "update-server-info"). SetDescription(fmt.Sprintf("ForkRepository(git update-server-info): %s", repo.FullName())). RunInDir(repoPath); err != nil { log.Error("Fork Repository (git update-server-info) failed for %v:\nStdout: %s\nError: %v", repo, stdout, err) |