@@ -21,30 +21,17 @@ import (
21
21
22
22
// DownloadDiffOrPatch will write the patch for the pr to the writer
23
23
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 )
28
26
return err
29
27
}
30
- defer func () {
31
- if err := models .RemoveTemporaryPath (tmpBasePath ); err != nil {
32
- log .Error ("DownloadDiff: RemoveTemporaryPath: %s" , err )
33
- }
34
- }()
35
28
36
- gitRepo , err := git .OpenRepository (tmpBasePath )
29
+ gitRepo , err := git .OpenRepository (pr . BaseRepo . RepoPath () )
37
30
if err != nil {
38
31
return fmt .Errorf ("OpenRepository: %v" , err )
39
32
}
40
33
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 {
48
35
log .Error ("Unable to get patch file from %s to %s in %s Error: %v" , pr .MergeBase , pr .HeadBranch , pr .BaseRepo .FullName (), err )
49
36
return fmt .Errorf ("Unable to get patch file from %s to %s in %s Error: %v" , pr .MergeBase , pr .HeadBranch , pr .BaseRepo .FullName (), err )
50
37
}
0 commit comments