Skip to content

Commit dda0cf8

Browse files
committed
Generate Diff and Patch direct from Pull head
Fix go-gitea#10932 Also fix "Empty Diff/Patch File when pull is merged" Closes go-gitea#10934 Signed-off-by: Andrew Thornton <[email protected]>
1 parent f685edf commit dda0cf8

File tree

1 file changed

+4
-17
lines changed

1 file changed

+4
-17
lines changed

services/pull/patch.go

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,17 @@ import (
2121

2222
// DownloadDiffOrPatch will write the patch for the pr to the writer
2323
func DownloadDiffOrPatch(pr *models.PullRequest, w io.Writer, patch bool) error {
24-
// Clone base repo.
25-
tmpBasePath, err := createTemporaryRepo(pr)
26-
if err != nil {
27-
log.Error("CreateTemporaryPath: %v", err)
24+
if err := pr.LoadBaseRepo(); err != nil {
25+
log.Error("Unable to load base repository ID %d for pr #%d [%d]", pr.BaseRepoID, pr.Index, pr.ID)
2826
return err
2927
}
30-
defer func() {
31-
if err := models.RemoveTemporaryPath(tmpBasePath); err != nil {
32-
log.Error("DownloadDiff: RemoveTemporaryPath: %s", err)
33-
}
34-
}()
3528

36-
gitRepo, err := git.OpenRepository(tmpBasePath)
29+
gitRepo, err := git.OpenRepository(pr.BaseRepo.RepoPath())
3730
if err != nil {
3831
return fmt.Errorf("OpenRepository: %v", err)
3932
}
4033
defer gitRepo.Close()
41-
42-
pr.MergeBase, err = git.NewCommand("merge-base", "--", "base", "tracking").RunInDir(tmpBasePath)
43-
if err != nil {
44-
pr.MergeBase = "base"
45-
}
46-
pr.MergeBase = strings.TrimSpace(pr.MergeBase)
47-
if err := gitRepo.GetDiffOrPatch(pr.MergeBase, "tracking", w, patch); err != nil {
34+
if err := gitRepo.GetDiffOrPatch(pr.MergeBase, pr.GetGitRefName(), w, patch); err != nil {
4835
log.Error("Unable to get patch file from %s to %s in %s Error: %v", pr.MergeBase, pr.HeadBranch, pr.BaseRepo.FullName(), err)
4936
return fmt.Errorf("Unable to get patch file from %s to %s in %s Error: %v", pr.MergeBase, pr.HeadBranch, pr.BaseRepo.FullName(), err)
5037
}

0 commit comments

Comments
 (0)