Merge remote-tracking branch 'origin/master' into v26

This is a no-op merge to reconcile the differences in the Commit receivers.
diff --git a/commit.go b/commit.go
index 5aa5f25..ba7dcaa 100644
--- a/commit.go
+++ b/commit.go
@@ -18,19 +18,15 @@
 	cast_ptr *C.git_commit
 }
 
-func (c *Commit) Message() string {
-	ret := C.GoString(C.git_commit_message(c.cast_ptr))
-	runtime.KeepAlive(c)
-	return ret
+func (c Commit) Message() string {
+	return C.GoString(C.git_commit_message(c.cast_ptr))
 }
 
-func (c *Commit) RawMessage() string {
-	ret := C.GoString(C.git_commit_message_raw(c.cast_ptr))
-	runtime.KeepAlive(c)
-	return ret
+func (c Commit) RawMessage() string {
+	return C.GoString(C.git_commit_message_raw(c.cast_ptr))
 }
 
-func (c *Commit) ExtractSignature() (string, string, error) {
+func (c Commit) ExtractSignature() (string, string, error) {
 
 	var c_signed C.git_buf
 	defer C.git_buf_free(&c_signed)
@@ -44,7 +40,7 @@
 	runtime.LockOSThread()
 	defer runtime.UnlockOSThread()
 	ret := C.git_commit_extract_signature(&c_signature, &c_signed, repo, oid.toC(), nil)
-	runtime.KeepAlive(oid)
+
 	if ret < 0 {
 		return "", "", MakeGitError(ret)
 	} else {
@@ -53,20 +49,17 @@
 
 }
 
-func (c *Commit) Summary() string {
-	ret := C.GoString(C.git_commit_summary(c.cast_ptr))
-	runtime.KeepAlive(c)
-	return ret
+func (c Commit) Summary() string {
+	return C.GoString(C.git_commit_summary(c.cast_ptr))
 }
 
-func (c *Commit) Tree() (*Tree, error) {
+func (c Commit) Tree() (*Tree, error) {
 	var ptr *C.git_tree
 
 	runtime.LockOSThread()
 	defer runtime.UnlockOSThread()
 
 	err := C.git_commit_tree(&ptr, c.cast_ptr)
-	runtime.KeepAlive(c)
 	if err < 0 {
 		return nil, MakeGitError(err)
 	}
@@ -74,24 +67,18 @@
 	return allocTree(ptr, c.repo), nil
 }
 
-func (c *Commit) TreeId() *Oid {
-	ret := newOidFromC(C.git_commit_tree_id(c.cast_ptr))
-	runtime.KeepAlive(c)
-	return ret
+func (c Commit) TreeId() *Oid {
+	return newOidFromC(C.git_commit_tree_id(c.cast_ptr))
 }
 
-func (c *Commit) Author() *Signature {
+func (c Commit) Author() *Signature {
 	cast_ptr := C.git_commit_author(c.cast_ptr)
-	ret := newSignatureFromC(cast_ptr)
-	runtime.KeepAlive(c)
-	return ret
+	return newSignatureFromC(cast_ptr)
 }
 
-func (c *Commit) Committer() *Signature {
+func (c Commit) Committer() *Signature {
 	cast_ptr := C.git_commit_committer(c.cast_ptr)
-	ret := newSignatureFromC(cast_ptr)
-	runtime.KeepAlive(c)
-	return ret
+	return newSignatureFromC(cast_ptr)
 }
 
 func (c *Commit) Parent(n uint) *Commit {