mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	Use native git variants by default with go-git variants as build tag (#13673)
* Move last commit cache back into modules/git Signed-off-by: Andrew Thornton <art27@cantab.net> * Remove go-git from the interface for last commit cache Signed-off-by: Andrew Thornton <art27@cantab.net> * move cacheref to last_commit_cache Signed-off-by: Andrew Thornton <art27@cantab.net> * Remove go-git from routers/private/hook Signed-off-by: Andrew Thornton <art27@cantab.net> * Move FindLFSFiles to pipeline Signed-off-by: Andrew Thornton <art27@cantab.net> * Make no-go-git variants Signed-off-by: Andrew Thornton <art27@cantab.net> * Submodule RefID Signed-off-by: Andrew Thornton <art27@cantab.net> * fix issue with GetCommitsInfo Signed-off-by: Andrew Thornton <art27@cantab.net> * fix GetLastCommitForPaths Signed-off-by: Andrew Thornton <art27@cantab.net> * Improve efficiency Signed-off-by: Andrew Thornton <art27@cantab.net> * More efficiency Signed-off-by: Andrew Thornton <art27@cantab.net> * even faster Signed-off-by: Andrew Thornton <art27@cantab.net> * Reduce duplication * As per @lunny Signed-off-by: Andrew Thornton <art27@cantab.net> * attempt to fix drone Signed-off-by: Andrew Thornton <art27@cantab.net> * fix test-tags Signed-off-by: Andrew Thornton <art27@cantab.net> * default to use no-go-git variants and add gogit build tag Signed-off-by: Andrew Thornton <art27@cantab.net> * placate lint Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @6543 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		
					parent
					
						
							
								0851a89581
							
						
					
				
			
			
				commit
				
					
						511f6138d4
					
				
			
		
					 81 changed files with 3952 additions and 1492 deletions
				
			
		|  | @ -4,52 +4,7 @@ | |||
| 
 | ||||
| package git | ||||
| 
 | ||||
| import ( | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"github.com/go-git/go-git/v5" | ||||
| 	"github.com/go-git/go-git/v5/plumbing" | ||||
| ) | ||||
| 
 | ||||
| // GetRefs returns all references of the repository. | ||||
| func (repo *Repository) GetRefs() ([]*Reference, error) { | ||||
| 	return repo.GetRefsFiltered("") | ||||
| } | ||||
| 
 | ||||
| // GetRefsFiltered returns all references of the repository that matches patterm exactly or starting with. | ||||
| func (repo *Repository) GetRefsFiltered(pattern string) ([]*Reference, error) { | ||||
| 	r, err := git.PlainOpen(repo.Path) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	refsIter, err := r.References() | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	refs := make([]*Reference, 0) | ||||
| 	if err = refsIter.ForEach(func(ref *plumbing.Reference) error { | ||||
| 		if ref.Name() != plumbing.HEAD && !ref.Name().IsRemote() && | ||||
| 			(pattern == "" || strings.HasPrefix(ref.Name().String(), pattern)) { | ||||
| 			refType := string(ObjectCommit) | ||||
| 			if ref.Name().IsTag() { | ||||
| 				// tags can be of type `commit` (lightweight) or `tag` (annotated) | ||||
| 				if tagType, _ := repo.GetTagType(ref.Hash()); err == nil { | ||||
| 					refType = tagType | ||||
| 				} | ||||
| 			} | ||||
| 			r := &Reference{ | ||||
| 				Name:   ref.Name().String(), | ||||
| 				Object: ref.Hash(), | ||||
| 				Type:   refType, | ||||
| 				repo:   repo, | ||||
| 			} | ||||
| 			refs = append(refs, r) | ||||
| 		} | ||||
| 		return nil | ||||
| 	}); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	return refs, nil | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue