mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Update only the repository columns that need updating (#12900)
We should only update is_empty, default_branch and updated time columns during commitRepoAction and not update other columns as we risk overwriting incorrect information. Fix #11823 Fix #10536 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		@@ -9,6 +9,7 @@ import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models"
 | 
			
		||||
	"code.gitea.io/gitea/modules/cache"
 | 
			
		||||
@@ -291,6 +292,10 @@ func commitRepoAction(repo *models.Repository, gitRepo *git.Repository, optsList
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			// Update the is empty and default_branch columns
 | 
			
		||||
			if err := models.UpdateRepositoryCols(repo, "default_branch", "is_empty"); err != nil {
 | 
			
		||||
				return fmt.Errorf("UpdateRepositoryCols: %v", err)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		opType := models.ActionCommitRepo
 | 
			
		||||
@@ -359,9 +364,9 @@ func commitRepoAction(repo *models.Repository, gitRepo *git.Repository, optsList
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Change repository empty status and update last updated time.
 | 
			
		||||
	if err := models.UpdateRepository(repo, false); err != nil {
 | 
			
		||||
		return fmt.Errorf("UpdateRepository: %v", err)
 | 
			
		||||
	// Change repository last updated time.
 | 
			
		||||
	if err := models.UpdateRepositoryUpdatedTime(repo.ID, time.Now()); err != nil {
 | 
			
		||||
		return fmt.Errorf("UpdateRepositoryUpdatedTime: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := models.NotifyWatchers(actions...); err != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user