diff options
| author | Yashodhan Ghadge <[email protected]> | 2021-10-23 20:33:10 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-10-23 10:33:10 -0700 |
| commit | 0e8009f00a65034d196c67b1cdd82af6f12c34d3 (patch) | |
| tree | 26ea2a1a90daac40ab95aecbcbf98fa156223177 /remote.go | |
| parent | 6eae74c128e37e590d3a5da3fe0561add4b94d5c (diff) | |
bugfix: HTTPS Clone fails with remote pointer not found using Go transport (#836) (#842)
Fixes: #836
Changes:
* adding a weak bool param for Remote
* create a new remote in the smartTransportCallback incase one is not found
Diffstat (limited to 'remote.go')
| -rw-r--r-- | remote.go | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -182,6 +182,9 @@ type Remote struct { ptr *C.git_remote callbacks RemoteCallbacks repo *Repository + // weak indicates that a remote is a weak pointer and should not be + // freed. + weak bool } type remotePointerList struct { @@ -602,6 +605,9 @@ func (r *Remote) free() { // Free releases the resources of the Remote. func (r *Remote) Free() { r.repo.Remotes.untrackRemote(r) + if r.weak { + return + } r.free() } @@ -1231,3 +1237,12 @@ func freeRemoteCreateOptions(ptr *C.git_remote_create_options) { C.free(unsafe.Pointer(ptr.name)) C.free(unsafe.Pointer(ptr.fetchspec)) } + +// createNewEmptyRemote used to get a new empty object of *Remote +func createNewEmptyRemote() *Remote { + return &Remote{ + callbacks: RemoteCallbacks{}, + repo: nil, + weak: false, + } +} |
