mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 13:28:25 +00:00 
			
		
		
		
	More on diff page
This commit is contained in:
		@@ -246,25 +246,27 @@ func GetDiff(repoPath, commitid string) (*Diff, error) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Sperate parts by file.
 | 
						// Sperate parts by file.
 | 
				
			||||||
	parts := strings.Split(stdout, "diff --git ")
 | 
						startIndex := strings.Index(stdout, "diff --git ") + 12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// First part is commit information.
 | 
						// First part is commit information.
 | 
				
			||||||
	// Check if it's a merge.
 | 
						// Check if it's a merge.
 | 
				
			||||||
	mergeIndex := strings.Index(parts[0], "merge")
 | 
						mergeIndex := strings.Index(stdout[:startIndex], "merge")
 | 
				
			||||||
	if mergeIndex > -1 {
 | 
						if mergeIndex > -1 {
 | 
				
			||||||
		mergeCommit := strings.SplitN(strings.Split(parts[0], "\n")[1], "", 3)[2]
 | 
							mergeCommit := strings.SplitN(strings.Split(stdout[:startIndex], "\n")[1], "", 3)[2]
 | 
				
			||||||
		return GetDiff(repoPath, mergeCommit)
 | 
							return GetDiff(repoPath, mergeCommit)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	diff := &Diff{NumFiles: len(parts[1:])}
 | 
						parts := strings.Split(stdout[startIndex:], "diff --git ")
 | 
				
			||||||
 | 
						diff := &Diff{NumFiles: len(parts)}
 | 
				
			||||||
	diff.Files = make([]*DiffFile, 0, diff.NumFiles)
 | 
						diff.Files = make([]*DiffFile, 0, diff.NumFiles)
 | 
				
			||||||
	for _, part := range parts[1:] {
 | 
						for _, part := range parts {
 | 
				
			||||||
		infos := strings.SplitN(part, "\n", 6)
 | 
							infos := strings.SplitN(part, "\n", 6)
 | 
				
			||||||
		infos[5] = strings.TrimSuffix(strings.TrimSuffix(infos[5], "\n"), "\n\\ No newline at end of file")
 | 
							maxIndex := len(infos) - 1
 | 
				
			||||||
 | 
							infos[maxIndex] = strings.TrimSuffix(strings.TrimSuffix(infos[maxIndex], "\n"), "\n\\ No newline at end of file")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		file := &DiffFile{
 | 
							file := &DiffFile{
 | 
				
			||||||
			Name:    strings.TrimPrefix(strings.Split(infos[0], " ")[0], "a/"),
 | 
								Name:    strings.TrimPrefix(strings.Split(infos[0], " ")[0], "a/"),
 | 
				
			||||||
			Content: strings.Split(infos[5], "\n"),
 | 
								Content: strings.Split(infos[maxIndex], "\n"),
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		diff.Files = append(diff.Files, file)
 | 
							diff.Files = append(diff.Files, file)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user