@@ -64,6 +64,12 @@ func ForkRepository(doer, owner *models.User, oldRepo *models.Repository, name,
6464 return err
6565 }
6666
67+ // copy lfs files failure should not be ignored
68+ if err := models .CopyLFS (ctx , repo , oldRepo ); err != nil {
69+ rollbackRemoveFn ()
70+ return err
71+ }
72+
6773 repoPath := models .RepoPath (owner .Name , repo .Name )
6874 if stdout , err := git .NewCommand (
6975 "clone" , "--bare" , oldRepoPath , repoPath ).
@@ -92,6 +98,7 @@ func ForkRepository(doer, owner *models.User, oldRepo *models.Repository, name,
9298 return nil , err
9399 }
94100
101+ // even if below operations failed, it could be ignored. And they will be retried
95102 ctx := models .DefaultDBContext ()
96103 if err = repo .UpdateSize (ctx ); err != nil {
97104 log .Error ("Failed to update size for repository: %v" , err )
@@ -100,11 +107,5 @@ func ForkRepository(doer, owner *models.User, oldRepo *models.Repository, name,
100107 log .Error ("Copy language stat from oldRepo failed" )
101108 }
102109
103- if err := models .CopyLFS (ctx , repo , oldRepo ); err != nil {
104- if errDelete := models .DeleteRepository (doer , owner .ID , repo .ID ); errDelete != nil {
105- log .Error ("Rollback deleteRepository: %v" , errDelete )
106- }
107- return nil , err
108- }
109110 return repo , nil
110111}
0 commit comments