mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:06:18 +01:00 
			
		
		
		
	move code.gitea.io/git to code.gitea.io/gitea/modules/git (#6364)
* move code.gitea.io/git to code.gitea.io/gitea/modules/git * fix imports * fix fmt * fix misspell * remove wrong tests data * fix unit tests * fix tests * fix tests * fix tests * fix tests * fix tests * enable Debug to trace the failure tests * fix tests * fix tests * fix tests * fix tests * fix tests * comment commit count tests since git clone depth is 50 * fix tests * update from code.gitea.io/git * revert change to makefile
This commit is contained in:
		
							
								
								
									
										59
									
								
								modules/git/tree_blob.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								modules/git/tree_blob.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| // Copyright 2015 The Gogs Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package git | ||||
|  | ||||
| import ( | ||||
| 	"path" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| // GetTreeEntryByPath get the tree entries according the sub dir | ||||
| func (t *Tree) GetTreeEntryByPath(relpath string) (*TreeEntry, error) { | ||||
| 	if len(relpath) == 0 { | ||||
| 		return &TreeEntry{ | ||||
| 			ID:   t.ID, | ||||
| 			Type: ObjectTree, | ||||
| 			mode: EntryModeTree, | ||||
| 		}, nil | ||||
| 	} | ||||
|  | ||||
| 	relpath = path.Clean(relpath) | ||||
| 	parts := strings.Split(relpath, "/") | ||||
| 	var err error | ||||
| 	tree := t | ||||
| 	for i, name := range parts { | ||||
| 		if i == len(parts)-1 { | ||||
| 			entries, err := tree.ListEntries() | ||||
| 			if err != nil { | ||||
| 				return nil, err | ||||
| 			} | ||||
| 			for _, v := range entries { | ||||
| 				if v.name == name { | ||||
| 					return v, nil | ||||
| 				} | ||||
| 			} | ||||
| 		} else { | ||||
| 			tree, err = tree.SubTree(name) | ||||
| 			if err != nil { | ||||
| 				return nil, err | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return nil, ErrNotExist{"", relpath} | ||||
| } | ||||
|  | ||||
| // GetBlobByPath get the blob object according the path | ||||
| func (t *Tree) GetBlobByPath(relpath string) (*Blob, error) { | ||||
| 	entry, err := t.GetTreeEntryByPath(relpath) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	if !entry.IsDir() { | ||||
| 		return entry.Blob(), nil | ||||
| 	} | ||||
|  | ||||
| 	return nil, ErrNotExist{"", relpath} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user