bug fixed
This commit is contained in:
		
							parent
							
								
									01162bfc78
								
							
						
					
					
						commit
						7076f466c9
					
				
					 1 changed files with 24 additions and 26 deletions
				
			
		|  | @ -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 { | ||||
| 								goto loop | ||||
| 							} else { | ||||
| 								emptyCnt = emptyCnt + 1 | ||||
| 								continue | ||||
| 							emptyCnt = emptyCnt + 1 | ||||
| 							if emptyCnt+sameIdcnt == cm.ParentCount() { | ||||
| 								if lastSameCm == nil { | ||||
| 									goto loop | ||||
| 								} else { | ||||
| 									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.
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue