Fix incorrect default branch when adopt a repository (#30912)
Fix #30521 we should sync branches first, then detect default branch, or `git_model.FindBranchNames` will always return empty list, and the detection will be wrong. (cherry picked from commit e94723f2de7d9bf12d870f5ce9ffb291a99ba090) Conflicts: services/repository/adopt.go trivial conflict because e80466f734 Resolve lint for unused parameter and unnecessary type arguments (#30750) was not cherry-picked
This commit is contained in:
		
					parent
					
						
							
								6c9b8401f9
							
						
					
				
			
			
				commit
				
					
						1a250c7b2b
					
				
			
		
					 1 changed files with 16 additions and 21 deletions
				
			
		|  | @ -36,10 +36,6 @@ func AdoptRepository(ctx context.Context, doer, u *user_model.User, opts CreateR | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if len(opts.DefaultBranch) == 0 { | ||||
| 		opts.DefaultBranch = setting.Repository.DefaultBranch | ||||
| 	} | ||||
| 
 | ||||
| 	repo := &repo_model.Repository{ | ||||
| 		OwnerID:                         u.ID, | ||||
| 		Owner:                           u, | ||||
|  | @ -81,7 +77,7 @@ func AdoptRepository(ctx context.Context, doer, u *user_model.User, opts CreateR | |||
| 		} | ||||
| 
 | ||||
| 		if err := adoptRepository(ctx, repoPath, repo, opts.DefaultBranch); err != nil { | ||||
| 			return fmt.Errorf("createDelegateHooks: %w", err) | ||||
| 			return fmt.Errorf("adoptRepository: %w", err) | ||||
| 		} | ||||
| 
 | ||||
| 		if err := repo_module.CheckDaemonExportOK(ctx, repo); err != nil { | ||||
|  | @ -143,6 +139,21 @@ func adoptRepository(ctx context.Context, repoPath string, repo *repo_model.Repo | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	// Don't bother looking this repo in the context it won't be there | ||||
| 	gitRepo, err := gitrepo.OpenRepository(ctx, repo) | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("openRepository: %w", err) | ||||
| 	} | ||||
| 	defer gitRepo.Close() | ||||
| 
 | ||||
| 	if _, err = repo_module.SyncRepoBranchesWithRepo(ctx, repo, gitRepo, 0); err != nil { | ||||
| 		return fmt.Errorf("SyncRepoBranchesWithRepo: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if err = repo_module.SyncReleasesWithTags(ctx, repo, gitRepo); err != nil { | ||||
| 		return fmt.Errorf("SyncReleasesWithTags: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	branches, _ := git_model.FindBranchNames(ctx, git_model.FindBranchOptions{ | ||||
| 		RepoID:          repo.ID, | ||||
| 		ListOptions:     db.ListOptionsAll, | ||||
|  | @ -183,26 +194,10 @@ func adoptRepository(ctx context.Context, repoPath string, repo *repo_model.Repo | |||
| 			return fmt.Errorf("setDefaultBranch: %w", err) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if err = repo_module.UpdateRepository(ctx, repo, false); err != nil { | ||||
| 		return fmt.Errorf("updateRepository: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	// Don't bother looking this repo in the context it won't be there | ||||
| 	gitRepo, err := gitrepo.OpenRepository(ctx, repo) | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("openRepository: %w", err) | ||||
| 	} | ||||
| 	defer gitRepo.Close() | ||||
| 
 | ||||
| 	if _, err = repo_module.SyncRepoBranchesWithRepo(ctx, repo, gitRepo, 0); err != nil { | ||||
| 		return fmt.Errorf("SyncRepoBranches: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if err = repo_module.SyncReleasesWithTags(ctx, repo, gitRepo); err != nil { | ||||
| 		return fmt.Errorf("SyncReleasesWithTags: %w", err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 yp05327
				yp05327