summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git_dynamic.go4
-rw-r--r--git_static.go4
-rw-r--r--merge.go3
-rw-r--r--odb.go10
m---------vendor/libgit20
5 files changed, 15 insertions, 6 deletions
diff --git a/git_dynamic.go b/git_dynamic.go
index 00828a5..0a977e8 100644
--- a/git_dynamic.go
+++ b/git_dynamic.go
@@ -6,8 +6,8 @@ package git
#include <git2.h>
#cgo pkg-config: libgit2
-#if LIBGIT2_VER_MAJOR != 0 || LIBGIT2_VER_MINOR != 26
-# error "Invalid libgit2 version; this git2go supports libgit2 v0.26"
+#if LIBGIT2_VER_MAJOR != 0 || LIBGIT2_VER_MINOR != 27
+# error "Invalid libgit2 version; this git2go supports libgit2 v0.27"
#endif
*/
diff --git a/git_static.go b/git_static.go
index b42d49f..6303734 100644
--- a/git_static.go
+++ b/git_static.go
@@ -9,8 +9,8 @@ package git
#cgo !windows pkg-config: --static ${SRCDIR}/vendor/libgit2/build/libgit2.pc
#include <git2.h>
-#if LIBGIT2_VER_MAJOR != 0 || LIBGIT2_VER_MINOR != 26
-# error "Invalid libgit2 version; this git2go supports libgit2 v0.26"
+#if LIBGIT2_VER_MAJOR != 0 || LIBGIT2_VER_MINOR != 27
+# error "Invalid libgit2 version; this git2go supports libgit2 v0.27"
#endif
*/
diff --git a/merge.go b/merge.go
index bfbf9a3..adc521a 100644
--- a/merge.go
+++ b/merge.go
@@ -355,6 +355,7 @@ type MergeFileOptions struct {
TheirLabel string
Favor MergeFileFavor
Flags MergeFileFlags
+ MarkerSize uint16
}
func mergeFileOptionsFromC(c C.git_merge_file_options) MergeFileOptions {
@@ -364,6 +365,7 @@ func mergeFileOptionsFromC(c C.git_merge_file_options) MergeFileOptions {
TheirLabel: C.GoString(c.their_label),
Favor: MergeFileFavor(c.favor),
Flags: MergeFileFlags(c.flags),
+ MarkerSize: uint16(c.marker_size),
}
}
@@ -373,6 +375,7 @@ func populateCMergeFileOptions(c *C.git_merge_file_options, options MergeFileOpt
c.their_label = C.CString(options.TheirLabel)
c.favor = C.git_merge_file_favor_t(options.Favor)
c.flags = C.git_merge_file_flag_t(options.Flags)
+ c.marker_size = C.ushort(options.MarkerSize)
}
func freeCMergeFileOptions(c *C.git_merge_file_options) {
diff --git a/odb.go b/odb.go
index 64c5415..f236fc4 100644
--- a/odb.go
+++ b/odb.go
@@ -182,17 +182,21 @@ func (v *Odb) Hash(data []byte, otype ObjectType) (oid *Oid, err error) {
// contents of the object.
func (v *Odb) NewReadStream(id *Oid) (*OdbReadStream, error) {
stream := new(OdbReadStream)
+ var ctype C.git_otype
+ var csize C.size_t
runtime.LockOSThread()
defer runtime.UnlockOSThread()
- ret := C.git_odb_open_rstream(&stream.ptr, v.ptr, id.toC())
+ ret := C.git_odb_open_rstream(&stream.ptr, &csize, &ctype, v.ptr, id.toC())
runtime.KeepAlive(v)
runtime.KeepAlive(id)
if ret < 0 {
return nil, MakeGitError(ret)
}
+ stream.Size = uint64(csize)
+ stream.Type = ObjectType(ctype)
runtime.SetFinalizer(stream, (*OdbReadStream).Free)
return stream, nil
}
@@ -264,7 +268,9 @@ func (object *OdbObject) Data() (data []byte) {
}
type OdbReadStream struct {
- ptr *C.git_odb_stream
+ ptr *C.git_odb_stream
+ Size uint64
+ Type ObjectType
}
// Read reads from the stream
diff --git a/vendor/libgit2 b/vendor/libgit2
-Subproject f1323d9c161aeeada190fd9615a8b5a9fb8a7f3
+Subproject 809b0ca6b9b6a5648b8e802a9f0c6a082125759