@@ -28,16 +28,22 @@ func (repo *Repository) GetMergeBase(base, head string) (string, error) {
28
28
// GetPullRequestInfo generates and returns pull request information
29
29
// between base and head branches of repositories.
30
30
func (repo * Repository ) GetPullRequestInfo (basePath , baseBranch , headBranch string ) (_ * PullRequestInfo , err error ) {
31
- // Add a temporary remote
32
- tmpRemote := strconv .FormatInt (time .Now ().UnixNano (), 10 )
33
- if err = repo .AddRemote (tmpRemote , basePath , true ); err != nil {
34
- return nil , fmt .Errorf ("AddRemote: %v" , err )
31
+ var remoteBranch string
32
+
33
+ // We don't need a temporary remote for same repository.
34
+ if repo .Path != basePath {
35
+ // Add a temporary remote
36
+ tmpRemote := strconv .FormatInt (time .Now ().UnixNano (), 10 )
37
+ if err = repo .AddRemote (tmpRemote , basePath , true ); err != nil {
38
+ return nil , fmt .Errorf ("AddRemote: %v" , err )
39
+ }
40
+ defer repo .RemoveRemote (tmpRemote )
41
+
42
+ remoteBranch = "remotes/" + tmpRemote + "/" + baseBranch
43
+ } else {
44
+ remoteBranch = baseBranch
35
45
}
36
- defer func () {
37
- repo .RemoveRemote (tmpRemote )
38
- }()
39
46
40
- remoteBranch := "remotes/" + tmpRemote + "/" + baseBranch
41
47
prInfo := new (PullRequestInfo )
42
48
prInfo .MergeBase , err = repo .GetMergeBase (remoteBranch , headBranch )
43
49
if err != nil {
0 commit comments