mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	bug fixed
This commit is contained in:
		@@ -446,7 +446,7 @@ func GetReposFiles(userName, reposName, branchName, commitId, rpath string) ([]*
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	commit, err := GetCommit(userName, reposName, branchName, commitId)
 | 
			
		||||
	commit, err := repo.GetCommit(branchName, commitId)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -462,8 +462,10 @@ func GetReposFiles(userName, reposName, branchName, commitId, rpath string) ([]*
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			var cm = commit
 | 
			
		||||
 | 
			
		||||
			var i int
 | 
			
		||||
			for {
 | 
			
		||||
				i = i + 1
 | 
			
		||||
				//fmt.Println(".....", i, cm.Id(), cm.ParentCount())
 | 
			
		||||
				if cm.ParentCount() == 0 {
 | 
			
		||||
					break
 | 
			
		||||
				} else if cm.ParentCount() == 1 {
 | 
			
		||||
@@ -480,7 +482,10 @@ func GetReposFiles(userName, reposName, branchName, commitId, rpath string) ([]*
 | 
			
		||||
				} else {
 | 
			
		||||
					var emptyCnt = 0
 | 
			
		||||
					var sameIdcnt = 0
 | 
			
		||||
					var lastSameCm *git.Commit
 | 
			
		||||
					//fmt.Println(".....", cm.ParentCount())
 | 
			
		||||
					for i := 0; i < cm.ParentCount(); i++ {
 | 
			
		||||
						//fmt.Println("parent", i, cm.Parent(i).Id())
 | 
			
		||||
						p := cm.Parent(i)
 | 
			
		||||
						pt, _ := repo.SubTree(p.Tree, dirname)
 | 
			
		||||
						var pEntry *git.TreeEntry
 | 
			
		||||
@@ -488,23 +493,31 @@ func GetReposFiles(userName, reposName, branchName, commitId, rpath string) ([]*
 | 
			
		||||
							pEntry = pt.EntryByName(entry.Name)
 | 
			
		||||
						}
 | 
			
		||||
 | 
			
		||||
						//fmt.Println("pEntry", pEntry)
 | 
			
		||||
 | 
			
		||||
						if pEntry == nil {
 | 
			
		||||
							if emptyCnt == cm.ParentCount()-1 {
 | 
			
		||||
							emptyCnt = emptyCnt + 1
 | 
			
		||||
							if emptyCnt+sameIdcnt == cm.ParentCount() {
 | 
			
		||||
								if lastSameCm == nil {
 | 
			
		||||
									goto loop
 | 
			
		||||
								} else {
 | 
			
		||||
								emptyCnt = emptyCnt + 1
 | 
			
		||||
								continue
 | 
			
		||||
									cm = lastSameCm
 | 
			
		||||
									break
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
						} else {
 | 
			
		||||
							//fmt.Println(i, "pEntry", pEntry.Id, "entry", entry.Id)
 | 
			
		||||
							if !pEntry.Id.Equal(entry.Id) {
 | 
			
		||||
								goto loop
 | 
			
		||||
							} else {
 | 
			
		||||
								if sameIdcnt == cm.ParentCount()-1 {
 | 
			
		||||
								lastSameCm = cm.Parent(i)
 | 
			
		||||
								sameIdcnt = sameIdcnt + 1
 | 
			
		||||
								if emptyCnt+sameIdcnt == cm.ParentCount() {
 | 
			
		||||
									// TODO: now follow the first parent commit?
 | 
			
		||||
									cm = cm.Parent(0)
 | 
			
		||||
									cm = lastSameCm
 | 
			
		||||
									//fmt.Println("sameId...")
 | 
			
		||||
									break
 | 
			
		||||
								}
 | 
			
		||||
								sameIdcnt = sameIdcnt + 1
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
@@ -539,22 +552,7 @@ func GetCommit(userName, repoName, branchname, commitid string) (*git.Commit, er
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if commitid != "" {
 | 
			
		||||
		oid, err := git.NewOidFromString(commitid)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		return repo.LookupCommit(oid)
 | 
			
		||||
	}
 | 
			
		||||
	if branchname == "" {
 | 
			
		||||
		return nil, errors.New("no branch name and no commit id")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	r, err := repo.LookupReference(fmt.Sprintf("refs/heads/%s", branchname))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return r.LastCommit()
 | 
			
		||||
	return repo.GetCommit(branchname, commitid)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetCommits returns all commits of given branch of repository.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user