mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Fix LFS file not stored in LFS when uploaded/edited via API or web UI (#34367)
Files that should be stored in LFS and are uploaded/edited from the API or web UI aren't stored in LFS. This may be a regression from #34154. --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		@@ -107,6 +107,7 @@ func UploadRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *use
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var attributesMap map[string]*attribute.Attributes
 | 
			
		||||
	// when uploading to an empty repo, the old branch doesn't exist, but some "global gitattributes" or "info/attributes" may exist
 | 
			
		||||
	if setting.LFS.StartServer {
 | 
			
		||||
		attributesMap, err = attribute.CheckAttributes(ctx, t.gitRepo, "" /* use temp repo's working dir */, attribute.CheckAttributeOpts{
 | 
			
		||||
			Attributes: []string{attribute.Filter},
 | 
			
		||||
@@ -118,6 +119,12 @@ func UploadRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *use
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Copy uploaded files into repository.
 | 
			
		||||
	// TODO: there is a small problem: when uploading LFS files with ".gitattributes", the "check-attr" runs before this loop,
 | 
			
		||||
	// so LFS files are not able to be added as LFS objects. Ideally we need to do in 3 steps in the future:
 | 
			
		||||
	// 1. Add ".gitattributes" to git index
 | 
			
		||||
	// 2. Run "check-attr" (the previous attribute.CheckAttributes call)
 | 
			
		||||
	// 3. Add files to git index (this loop)
 | 
			
		||||
	// This problem is trivial so maybe no need to spend too much time on it at the moment.
 | 
			
		||||
	for i := range infos {
 | 
			
		||||
		if err := copyUploadedLFSFileIntoRepository(ctx, &infos[i], attributesMap, t, opts.TreePath); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user