Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
golang-gopkg-libgit2-git2go
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Jobs
Commits
Open sidebar
Debian Go Packaging Team
packages
golang-gopkg-libgit2-git2go
Commits
03c617ab
Commit
03c617ab
authored
Jul 07, 2017
by
Carlos Martín Nieto
Committed by
Carlos Martín Nieto
Jul 08, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
First round of mass keep-alive additions
parent
5d466ffb
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
119 additions
and
23 deletions
+119
-23
blame.go
blame.go
+7
-1
blob.go
blob.go
+17
-6
branch.go
branch.go
+12
-0
checkout.go
checkout.go
+3
-0
cherrypick.go
cherrypick.go
+2
-0
commit.go
commit.go
+12
-3
config.go
config.go
+23
-6
describe.go
describe.go
+3
-0
repository.go
repository.go
+40
-7
No files found.
blame.go
View file @
03c617ab
...
@@ -76,6 +76,7 @@ func (v *Repository) BlameFile(path string, opts *BlameOptions) (*Blame, error)
...
@@ -76,6 +76,7 @@ func (v *Repository) BlameFile(path string, opts *BlameOptions) (*Blame, error)
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
git_blame_file
(
&
blamePtr
,
v
.
ptr
,
cpath
,
copts
)
ecode
:=
C
.
git_blame_file
(
&
blamePtr
,
v
.
ptr
,
cpath
,
copts
)
runtime
.
KeepAlive
(
v
)
if
ecode
<
0
{
if
ecode
<
0
{
return
nil
,
MakeGitError
(
ecode
)
return
nil
,
MakeGitError
(
ecode
)
}
}
...
@@ -88,11 +89,15 @@ type Blame struct {
...
@@ -88,11 +89,15 @@ type Blame struct {
}
}
func
(
blame
*
Blame
)
HunkCount
()
int
{
func
(
blame
*
Blame
)
HunkCount
()
int
{
return
int
(
C
.
git_blame_get_hunk_count
(
blame
.
ptr
))
ret
:=
int
(
C
.
git_blame_get_hunk_count
(
blame
.
ptr
))
runtime
.
KeepAlive
(
blame
)
return
ret
}
}
func
(
blame
*
Blame
)
HunkByIndex
(
index
int
)
(
BlameHunk
,
error
)
{
func
(
blame
*
Blame
)
HunkByIndex
(
index
int
)
(
BlameHunk
,
error
)
{
ptr
:=
C
.
git_blame_get_hunk_byindex
(
blame
.
ptr
,
C
.
uint32_t
(
index
))
ptr
:=
C
.
git_blame_get_hunk_byindex
(
blame
.
ptr
,
C
.
uint32_t
(
index
))
runtime
.
KeepAlive
(
blame
)
if
ptr
==
nil
{
if
ptr
==
nil
{
return
BlameHunk
{},
ErrInvalid
return
BlameHunk
{},
ErrInvalid
}
}
...
@@ -101,6 +106,7 @@ func (blame *Blame) HunkByIndex(index int) (BlameHunk, error) {
...
@@ -101,6 +106,7 @@ func (blame *Blame) HunkByIndex(index int) (BlameHunk, error) {
func
(
blame
*
Blame
)
HunkByLine
(
lineno
int
)
(
BlameHunk
,
error
)
{
func
(
blame
*
Blame
)
HunkByLine
(
lineno
int
)
(
BlameHunk
,
error
)
{
ptr
:=
C
.
git_blame_get_hunk_byline
(
blame
.
ptr
,
C
.
size_t
(
lineno
))
ptr
:=
C
.
git_blame_get_hunk_byline
(
blame
.
ptr
,
C
.
size_t
(
lineno
))
runtime
.
KeepAlive
(
blame
)
if
ptr
==
nil
{
if
ptr
==
nil
{
return
BlameHunk
{},
ErrInvalid
return
BlameHunk
{},
ErrInvalid
}
}
...
...
blob.go
View file @
03c617ab
...
@@ -21,13 +21,19 @@ type Blob struct {
...
@@ -21,13 +21,19 @@ type Blob struct {
}
}
func
(
v
*
Blob
)
Size
()
int64
{
func
(
v
*
Blob
)
Size
()
int64
{
return
int64
(
C
.
git_blob_rawsize
(
v
.
cast_ptr
))
ret
:=
int64
(
C
.
git_blob_rawsize
(
v
.
cast_ptr
))
runtime
.
KeepAlive
(
v
)
return
ret
}
}
func
(
v
*
Blob
)
Contents
()
[]
byte
{
func
(
v
*
Blob
)
Contents
()
[]
byte
{
size
:=
C
.
int
(
C
.
git_blob_rawsize
(
v
.
cast_ptr
))
size
:=
C
.
int
(
C
.
git_blob_rawsize
(
v
.
cast_ptr
))
buffer
:=
unsafe
.
Pointer
(
C
.
git_blob_rawcontent
(
v
.
cast_ptr
))
buffer
:=
unsafe
.
Pointer
(
C
.
git_blob_rawcontent
(
v
.
cast_ptr
))
return
C
.
GoBytes
(
buffer
,
size
)
goBytes
:=
C
.
GoBytes
(
buffer
,
size
)
runtime
.
KeepAlive
(
v
)
return
goBytes
}
}
func
(
repo
*
Repository
)
CreateBlobFromBuffer
(
data
[]
byte
)
(
*
Oid
,
error
)
{
func
(
repo
*
Repository
)
CreateBlobFromBuffer
(
data
[]
byte
)
(
*
Oid
,
error
)
{
...
@@ -53,6 +59,7 @@ func (repo *Repository) CreateBlobFromBuffer(data []byte) (*Oid, error) {
...
@@ -53,6 +59,7 @@ func (repo *Repository) CreateBlobFromBuffer(data []byte) (*Oid, error) {
}
}
ecode
:=
C
.
git_blob_create_frombuffer
(
&
id
,
repo
.
ptr
,
unsafe
.
Pointer
(
&
data
[
0
]),
size
)
ecode
:=
C
.
git_blob_create_frombuffer
(
&
id
,
repo
.
ptr
,
unsafe
.
Pointer
(
&
data
[
0
]),
size
)
runtime
.
KeepAlive
(
repo
)
if
ecode
<
0
{
if
ecode
<
0
{
return
nil
,
MakeGitError
(
ecode
)
return
nil
,
MakeGitError
(
ecode
)
}
}
...
@@ -102,16 +109,18 @@ func (repo *Repository) CreateFromStream(hintPath string) (*BlobWriteStream, err
...
@@ -102,16 +109,18 @@ func (repo *Repository) CreateFromStream(hintPath string) (*BlobWriteStream, err
return
nil
,
MakeGitError
(
ecode
)
return
nil
,
MakeGitError
(
ecode
)
}
}
return
newBlobWriteStreamFromC
(
stream
),
nil
return
newBlobWriteStreamFromC
(
stream
,
repo
),
nil
}
}
type
BlobWriteStream
struct
{
type
BlobWriteStream
struct
{
ptr
*
C
.
git_writestream
ptr
*
C
.
git_writestream
repo
*
Repository
}
}
func
newBlobWriteStreamFromC
(
ptr
*
C
.
git_writestream
)
*
BlobWriteStream
{
func
newBlobWriteStreamFromC
(
ptr
*
C
.
git_writestream
,
repo
*
Repository
)
*
BlobWriteStream
{
stream
:=
&
BlobWriteStream
{
stream
:=
&
BlobWriteStream
{
ptr
:
ptr
,
ptr
:
ptr
,
repo
:
repo
,
}
}
runtime
.
SetFinalizer
(
stream
,
(
*
BlobWriteStream
)
.
Free
)
runtime
.
SetFinalizer
(
stream
,
(
*
BlobWriteStream
)
.
Free
)
...
@@ -128,6 +137,7 @@ func (stream *BlobWriteStream) Write(p []byte) (int, error) {
...
@@ -128,6 +137,7 @@ func (stream *BlobWriteStream) Write(p []byte) (int, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
_go_git_writestream_write
(
stream
.
ptr
,
ptr
,
size
)
ecode
:=
C
.
_go_git_writestream_write
(
stream
.
ptr
,
ptr
,
size
)
runtime
.
KeepAlive
(
stream
)
if
ecode
<
0
{
if
ecode
<
0
{
return
0
,
MakeGitError
(
ecode
)
return
0
,
MakeGitError
(
ecode
)
}
}
...
@@ -147,6 +157,7 @@ func (stream *BlobWriteStream) Commit() (*Oid, error) {
...
@@ -147,6 +157,7 @@ func (stream *BlobWriteStream) Commit() (*Oid, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
git_blob_create_fromstream_commit
(
&
oid
,
stream
.
ptr
)
ecode
:=
C
.
git_blob_create_fromstream_commit
(
&
oid
,
stream
.
ptr
)
runtime
.
KeepAlive
(
stream
)
if
ecode
<
0
{
if
ecode
<
0
{
return
nil
,
MakeGitError
(
ecode
)
return
nil
,
MakeGitError
(
ecode
)
}
}
...
...
branch.go
View file @
03c617ab
...
@@ -88,6 +88,7 @@ func (repo *Repository) NewBranchIterator(flags BranchType) (*BranchIterator, er
...
@@ -88,6 +88,7 @@ func (repo *Repository) NewBranchIterator(flags BranchType) (*BranchIterator, er
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
git_branch_iterator_new
(
&
ptr
,
repo
.
ptr
,
refType
)
ecode
:=
C
.
git_branch_iterator_new
(
&
ptr
,
repo
.
ptr
,
refType
)
runtime
.
KeepAlive
(
repo
)
if
ecode
<
0
{
if
ecode
<
0
{
return
nil
,
MakeGitError
(
ecode
)
return
nil
,
MakeGitError
(
ecode
)
}
}
...
@@ -106,6 +107,8 @@ func (repo *Repository) CreateBranch(branchName string, target *Commit, force bo
...
@@ -106,6 +107,8 @@ func (repo *Repository) CreateBranch(branchName string, target *Commit, force bo
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_create
(
&
ptr
,
repo
.
ptr
,
cBranchName
,
target
.
cast_ptr
,
cForce
)
ret
:=
C
.
git_branch_create
(
&
ptr
,
repo
.
ptr
,
cBranchName
,
target
.
cast_ptr
,
cForce
)
runtime
.
KeepAlive
(
repo
)
runtime
.
KeepAlive
(
target
)
if
ret
<
0
{
if
ret
<
0
{
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
...
@@ -117,6 +120,7 @@ func (b *Branch) Delete() error {
...
@@ -117,6 +120,7 @@ func (b *Branch) Delete() error {
runtime
.
LockOSThread
()
runtime
.
LockOSThread
()
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_delete
(
b
.
Reference
.
ptr
)
ret
:=
C
.
git_branch_delete
(
b
.
Reference
.
ptr
)
runtime
.
KeepAlive
(
b
.
Reference
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -133,6 +137,7 @@ func (b *Branch) Move(newBranchName string, force bool) (*Branch, error) {
...
@@ -133,6 +137,7 @@ func (b *Branch) Move(newBranchName string, force bool) (*Branch, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_move
(
&
ptr
,
b
.
Reference
.
ptr
,
cNewBranchName
,
cForce
)
ret
:=
C
.
git_branch_move
(
&
ptr
,
b
.
Reference
.
ptr
,
cNewBranchName
,
cForce
)
runtime
.
KeepAlive
(
b
.
Reference
)
if
ret
<
0
{
if
ret
<
0
{
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
...
@@ -145,6 +150,7 @@ func (b *Branch) IsHead() (bool, error) {
...
@@ -145,6 +150,7 @@ func (b *Branch) IsHead() (bool, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_is_head
(
b
.
Reference
.
ptr
)
ret
:=
C
.
git_branch_is_head
(
b
.
Reference
.
ptr
)
runtime
.
KeepAlive
(
b
.
Reference
)
switch
ret
{
switch
ret
{
case
1
:
case
1
:
return
true
,
nil
return
true
,
nil
...
@@ -165,6 +171,7 @@ func (repo *Repository) LookupBranch(branchName string, bt BranchType) (*Branch,
...
@@ -165,6 +171,7 @@ func (repo *Repository) LookupBranch(branchName string, bt BranchType) (*Branch,
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_lookup
(
&
ptr
,
repo
.
ptr
,
cName
,
C
.
git_branch_t
(
bt
))
ret
:=
C
.
git_branch_lookup
(
&
ptr
,
repo
.
ptr
,
cName
,
C
.
git_branch_t
(
bt
))
runtime
.
KeepAlive
(
repo
)
if
ret
<
0
{
if
ret
<
0
{
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
...
@@ -179,6 +186,7 @@ func (b *Branch) Name() (string, error) {
...
@@ -179,6 +186,7 @@ func (b *Branch) Name() (string, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_name
(
&
cName
,
b
.
Reference
.
ptr
)
ret
:=
C
.
git_branch_name
(
&
cName
,
b
.
Reference
.
ptr
)
runtime
.
KeepAlive
(
b
.
Reference
)
if
ret
<
0
{
if
ret
<
0
{
return
""
,
MakeGitError
(
ret
)
return
""
,
MakeGitError
(
ret
)
}
}
...
@@ -196,6 +204,7 @@ func (repo *Repository) RemoteName(canonicalBranchName string) (string, error) {
...
@@ -196,6 +204,7 @@ func (repo *Repository) RemoteName(canonicalBranchName string) (string, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_remote_name
(
&
nameBuf
,
repo
.
ptr
,
cName
)
ret
:=
C
.
git_branch_remote_name
(
&
nameBuf
,
repo
.
ptr
,
cName
)
runtime
.
KeepAlive
(
repo
)
if
ret
<
0
{
if
ret
<
0
{
return
""
,
MakeGitError
(
ret
)
return
""
,
MakeGitError
(
ret
)
}
}
...
@@ -212,6 +221,7 @@ func (b *Branch) SetUpstream(upstreamName string) error {
...
@@ -212,6 +221,7 @@ func (b *Branch) SetUpstream(upstreamName string) error {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_set_upstream
(
b
.
Reference
.
ptr
,
cName
)
ret
:=
C
.
git_branch_set_upstream
(
b
.
Reference
.
ptr
,
cName
)
runtime
.
KeepAlive
(
b
.
Reference
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -225,6 +235,7 @@ func (b *Branch) Upstream() (*Reference, error) {
...
@@ -225,6 +235,7 @@ func (b *Branch) Upstream() (*Reference, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_upstream
(
&
ptr
,
b
.
Reference
.
ptr
)
ret
:=
C
.
git_branch_upstream
(
&
ptr
,
b
.
Reference
.
ptr
)
runtime
.
KeepAlive
(
b
.
Reference
)
if
ret
<
0
{
if
ret
<
0
{
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
...
@@ -241,6 +252,7 @@ func (repo *Repository) UpstreamName(canonicalBranchName string) (string, error)
...
@@ -241,6 +252,7 @@ func (repo *Repository) UpstreamName(canonicalBranchName string) (string, error)
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_branch_upstream_name
(
&
nameBuf
,
repo
.
ptr
,
cName
)
ret
:=
C
.
git_branch_upstream_name
(
&
nameBuf
,
repo
.
ptr
,
cName
)
runtime
.
KeepAlive
(
repo
)
if
ret
<
0
{
if
ret
<
0
{
return
""
,
MakeGitError
(
ret
)
return
""
,
MakeGitError
(
ret
)
}
}
...
...
checkout.go
View file @
03c617ab
...
@@ -188,6 +188,7 @@ func (v *Repository) CheckoutHead(opts *CheckoutOpts) error {
...
@@ -188,6 +188,7 @@ func (v *Repository) CheckoutHead(opts *CheckoutOpts) error {
defer
freeCheckoutOpts
(
cOpts
)
defer
freeCheckoutOpts
(
cOpts
)
ret
:=
C
.
git_checkout_head
(
v
.
ptr
,
cOpts
)
ret
:=
C
.
git_checkout_head
(
v
.
ptr
,
cOpts
)
runtime
.
KeepAlive
(
v
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -211,6 +212,7 @@ func (v *Repository) CheckoutIndex(index *Index, opts *CheckoutOpts) error {
...
@@ -211,6 +212,7 @@ func (v *Repository) CheckoutIndex(index *Index, opts *CheckoutOpts) error {
defer
freeCheckoutOpts
(
cOpts
)
defer
freeCheckoutOpts
(
cOpts
)
ret
:=
C
.
git_checkout_index
(
v
.
ptr
,
iptr
,
cOpts
)
ret
:=
C
.
git_checkout_index
(
v
.
ptr
,
iptr
,
cOpts
)
runtime
.
KeepAlive
(
v
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -226,6 +228,7 @@ func (v *Repository) CheckoutTree(tree *Tree, opts *CheckoutOpts) error {
...
@@ -226,6 +228,7 @@ func (v *Repository) CheckoutTree(tree *Tree, opts *CheckoutOpts) error {
defer
freeCheckoutOpts
(
cOpts
)
defer
freeCheckoutOpts
(
cOpts
)
ret
:=
C
.
git_checkout_tree
(
v
.
ptr
,
tree
.
ptr
,
cOpts
)
ret
:=
C
.
git_checkout_tree
(
v
.
ptr
,
tree
.
ptr
,
cOpts
)
runtime
.
KeepAlive
(
v
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
...
cherrypick.go
View file @
03c617ab
...
@@ -66,6 +66,8 @@ func (v *Repository) Cherrypick(commit *Commit, opts CherrypickOptions) error {
...
@@ -66,6 +66,8 @@ func (v *Repository) Cherrypick(commit *Commit, opts CherrypickOptions) error {
defer
freeCherrypickOpts
(
cOpts
)
defer
freeCherrypickOpts
(
cOpts
)
ecode
:=
C
.
git_cherrypick
(
v
.
ptr
,
commit
.
cast_ptr
,
cOpts
)
ecode
:=
C
.
git_cherrypick
(
v
.
ptr
,
commit
.
cast_ptr
,
cOpts
)
runtime
.
KeepAlive
(
v
)
runtime
.
KeepAlive
(
commit
)
if
ecode
<
0
{
if
ecode
<
0
{
return
MakeGitError
(
ecode
)
return
MakeGitError
(
ecode
)
}
}
...
...
commit.go
View file @
03c617ab
...
@@ -88,15 +88,21 @@ func (c *Commit) Parent(n uint) *Commit {
...
@@ -88,15 +88,21 @@ func (c *Commit) Parent(n uint) *Commit {
return
nil
return
nil
}
}
return
allocCommit
(
cobj
,
c
.
repo
)
parent
:=
allocCommit
(
cobj
,
c
.
repo
)
runtime
.
KeepAlive
(
c
)
return
parent
}
}
func
(
c
*
Commit
)
ParentId
(
n
uint
)
*
Oid
{
func
(
c
*
Commit
)
ParentId
(
n
uint
)
*
Oid
{
return
newOidFromC
(
C
.
git_commit_parent_id
(
c
.
cast_ptr
,
C
.
uint
(
n
)))
ret
:=
newOidFromC
(
C
.
git_commit_parent_id
(
c
.
cast_ptr
,
C
.
uint
(
n
)))
runtime
.
KeepAlive
(
c
)
return
ret
}
}
func
(
c
*
Commit
)
ParentCount
()
uint
{
func
(
c
*
Commit
)
ParentCount
()
uint
{
return
uint
(
C
.
git_commit_parentcount
(
c
.
cast_ptr
))
ret
:=
uint
(
C
.
git_commit_parentcount
(
c
.
cast_ptr
))
runtime
.
KeepAlive
(
c
)
return
ret
}
}
func
(
c
*
Commit
)
Amend
(
refname
string
,
author
,
committer
*
Signature
,
message
string
,
tree
*
Tree
)
(
*
Oid
,
error
)
{
func
(
c
*
Commit
)
Amend
(
refname
string
,
author
,
committer
*
Signature
,
message
string
,
tree
*
Tree
)
(
*
Oid
,
error
)
{
...
@@ -129,6 +135,9 @@ func (c *Commit) Amend(refname string, author, committer *Signature, message str
...
@@ -129,6 +135,9 @@ func (c *Commit) Amend(refname string, author, committer *Signature, message str
oid
:=
new
(
Oid
)
oid
:=
new
(
Oid
)
cerr
:=
C
.
git_commit_amend
(
oid
.
toC
(),
c
.
cast_ptr
,
cref
,
authorSig
,
committerSig
,
nil
,
cmsg
,
tree
.
cast_ptr
)
cerr
:=
C
.
git_commit_amend
(
oid
.
toC
(),
c
.
cast_ptr
,
cref
,
authorSig
,
committerSig
,
nil
,
cmsg
,
tree
.
cast_ptr
)
runtime
.
KeepAlive
(
oid
)
runtime
.
KeepAlive
(
c
)
runtime
.
KeepAlive
(
tree
)
if
cerr
<
0
{
if
cerr
<
0
{
return
nil
,
MakeGitError
(
cerr
)
return
nil
,
MakeGitError
(
cerr
)
}
}
...
...
config.go
View file @
03c617ab
...
@@ -78,6 +78,7 @@ func (c *Config) AddFile(path string, level ConfigLevel, force bool) error {
...
@@ -78,6 +78,7 @@ func (c *Config) AddFile(path string, level ConfigLevel, force bool) error {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_add_file_ondisk
(
c
.
ptr
,
cpath
,
C
.
git_config_level_t
(
level
),
cbool
(
force
))
ret
:=
C
.
git_config_add_file_ondisk
(
c
.
ptr
,
cpath
,
C
.
git_config_level_t
(
level
),
cbool
(
force
))
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -94,6 +95,7 @@ func (c *Config) LookupInt32(name string) (int32, error) {
...
@@ -94,6 +95,7 @@ func (c *Config) LookupInt32(name string) (int32, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_get_int32
(
&
out
,
c
.
ptr
,
cname
)
ret
:=
C
.
git_config_get_int32
(
&
out
,
c
.
ptr
,
cname
)
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
0
,
MakeGitError
(
ret
)
return
0
,
MakeGitError
(
ret
)
}
}
...
@@ -110,6 +112,7 @@ func (c *Config) LookupInt64(name string) (int64, error) {
...
@@ -110,6 +112,7 @@ func (c *Config) LookupInt64(name string) (int64, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_get_int64
(
&
out
,
c
.
ptr
,
cname
)
ret
:=
C
.
git_config_get_int64
(
&
out
,
c
.
ptr
,
cname
)
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
0
,
MakeGitError
(
ret
)
return
0
,
MakeGitError
(
ret
)
}
}
...
@@ -126,7 +129,9 @@ func (c *Config) LookupString(name string) (string, error) {
...
@@ -126,7 +129,9 @@ func (c *Config) LookupString(name string) (string, error) {
runtime
.
LockOSThread
()
runtime
.
LockOSThread
()
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
if
ret
:=
C
.
git_config_get_string_buf
(
&
valBuf
,
c
.
ptr
,
cname
);
ret
<
0
{
ret
:=
C
.
git_config_get_string_buf
(
&
valBuf
,
c
.
ptr
,
cname
)
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
return
""
,
MakeGitError
(
ret
)
return
""
,
MakeGitError
(
ret
)
}
}
defer
C
.
git_buf_free
(
&
valBuf
)
defer
C
.
git_buf_free
(
&
valBuf
)
...
@@ -143,6 +148,7 @@ func (c *Config) LookupBool(name string) (bool, error) {
...
@@ -143,6 +148,7 @@ func (c *Config) LookupBool(name string) (bool, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_get_bool
(
&
out
,
c
.
ptr
,
cname
)
ret
:=
C
.
git_config_get_bool
(
&
out
,
c
.
ptr
,
cname
)
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
false
,
MakeGitError
(
ret
)
return
false
,
MakeGitError
(
ret
)
}
}
...
@@ -162,7 +168,7 @@ func (c *Config) NewMultivarIterator(name, regexp string) (*ConfigIterator, erro
...
@@ -162,7 +168,7 @@ func (c *Config) NewMultivarIterator(name, regexp string) (*ConfigIterator, erro
defer
C
.
free
(
unsafe
.
Pointer
(
cregexp
))
defer
C
.
free
(
unsafe
.
Pointer
(
cregexp
))
}
}
iter
:=
new
(
ConfigIterator
)
iter
:=
&
ConfigIterator
{
cfg
:
c
}
runtime
.
LockOSThread
()
runtime
.
LockOSThread
()
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
...
@@ -179,7 +185,7 @@ func (c *Config) NewMultivarIterator(name, regexp string) (*ConfigIterator, erro
...
@@ -179,7 +185,7 @@ func (c *Config) NewMultivarIterator(name, regexp string) (*ConfigIterator, erro
// NewIterator creates an iterator over each entry in the
// NewIterator creates an iterator over each entry in the
// configuration
// configuration
func
(
c
*
Config
)
NewIterator
()
(
*
ConfigIterator
,
error
)
{
func
(
c
*
Config
)
NewIterator
()
(
*
ConfigIterator
,
error
)
{
iter
:=
new
(
ConfigIterator
)
iter
:=
&
ConfigIterator
{
cfg
:
c
}
runtime
.
LockOSThread
()
runtime
.
LockOSThread
()
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
...
@@ -195,7 +201,7 @@ func (c *Config) NewIterator() (*ConfigIterator, error) {
...
@@ -195,7 +201,7 @@ func (c *Config) NewIterator() (*ConfigIterator, error) {
// NewIteratorGlob creates an iterator over each entry in the
// NewIteratorGlob creates an iterator over each entry in the
// configuration whose name matches the given regular expression
// configuration whose name matches the given regular expression
func
(
c
*
Config
)
NewIteratorGlob
(
regexp
string
)
(
*
ConfigIterator
,
error
)
{
func
(
c
*
Config
)
NewIteratorGlob
(
regexp
string
)
(
*
ConfigIterator
,
error
)
{
iter
:=
new
(
ConfigIterator
)
iter
:=
&
ConfigIterator
{
cfg
:
c
}
cregexp
:=
C
.
CString
(
regexp
)
cregexp
:=
C
.
CString
(
regexp
)
defer
C
.
free
(
unsafe
.
Pointer
(
cregexp
))
defer
C
.
free
(
unsafe
.
Pointer
(
cregexp
))
...
@@ -221,6 +227,7 @@ func (c *Config) SetString(name, value string) (err error) {
...
@@ -221,6 +227,7 @@ func (c *Config) SetString(name, value string) (err error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_set_string
(
c
.
ptr
,
cname
,
cvalue
)
ret
:=
C
.
git_config_set_string
(
c
.
ptr
,
cname
,
cvalue
)
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -241,6 +248,7 @@ func (c *Config) SetInt32(name string, value int32) (err error) {
...
@@ -241,6 +248,7 @@ func (c *Config) SetInt32(name string, value int32) (err error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_set_int32
(
c
.
ptr
,
cname
,
C
.
int32_t
(
value
))
ret
:=
C
.
git_config_set_int32
(
c
.
ptr
,
cname
,
C
.
int32_t
(
value
))
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -256,6 +264,7 @@ func (c *Config) SetInt64(name string, value int64) (err error) {
...
@@ -256,6 +264,7 @@ func (c *Config) SetInt64(name string, value int64) (err error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_set_int64
(
c
.
ptr
,
cname
,
C
.
int64_t
(
value
))
ret
:=
C
.
git_config_set_int64
(
c
.
ptr
,
cname
,
C
.
int64_t
(
value
))
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -271,6 +280,7 @@ func (c *Config) SetBool(name string, value bool) (err error) {
...
@@ -271,6 +280,7 @@ func (c *Config) SetBool(name string, value bool) (err error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_set_bool
(
c
.
ptr
,
cname
,
cbool
(
value
))
ret
:=
C
.
git_config_set_bool
(
c
.
ptr
,
cname
,
cbool
(
value
))
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -292,6 +302,7 @@ func (c *Config) SetMultivar(name, regexp, value string) (err error) {
...
@@ -292,6 +302,7 @@ func (c *Config) SetMultivar(name, regexp, value string) (err error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_set_multivar
(
c
.
ptr
,
cname
,
cregexp
,
cvalue
)
ret
:=
C
.
git_config_set_multivar
(
c
.
ptr
,
cname
,
cregexp
,
cvalue
)
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -307,7 +318,7 @@ func (c *Config) Delete(name string) error {
...
@@ -307,7 +318,7 @@ func (c *Config) Delete(name string) error {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_delete_entry
(
c
.
ptr
,
cname
)
ret
:=
C
.
git_config_delete_entry
(
c
.
ptr
,
cname
)
runtime
.
KeepAlive
(
c
)
if
ret
<
0
{
if
ret
<
0
{
return
MakeGitError
(
ret
)
return
MakeGitError
(
ret
)
}
}
...
@@ -323,6 +334,8 @@ func (c *Config) OpenLevel(parent *Config, level ConfigLevel) (*Config, error) {
...
@@ -323,6 +334,8 @@ func (c *Config) OpenLevel(parent *Config, level ConfigLevel) (*Config, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_config_open_level
(
&
config
.
ptr
,
parent
.
ptr
,
C
.
git_config_level_t
(
level
))
ret
:=
C
.
git_config_open_level
(
&
config
.
ptr
,
parent
.
ptr
,
C
.
git_config_level_t
(
level
))
runtime
.
KeepAlive
(
c
)
runtime
.
KeepAlive
(
parent
)
if
ret
<
0
{
if
ret
<
0
{
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
...
@@ -349,6 +362,7 @@ func OpenOndisk(parent *Config, path string) (*Config, error) {
...
@@ -349,6 +362,7 @@ func OpenOndisk(parent *Config, path string) (*Config, error) {
type
ConfigIterator
struct
{
type
ConfigIterator
struct
{
ptr
*
C
.
git_config_iterator
ptr
*
C
.
git_config_iterator
cfg
*
Config
}
}
// Next returns the next entry for this iterator
// Next returns the next entry for this iterator
...
@@ -363,7 +377,10 @@ func (iter *ConfigIterator) Next() (*ConfigEntry, error) {
...
@@ -363,7 +377,10 @@ func (iter *ConfigIterator) Next() (*ConfigEntry, error) {
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
return
newConfigEntryFromC
(
centry
),
nil
entry
:=
newConfigEntryFromC
(
centry
)
runtime
.
KeepAlive
(
iter
)
return
entry
,
nil
}
}
func
(
iter
*
ConfigIterator
)
Free
()
{
func
(
iter
*
ConfigIterator
)
Free
()
{
...
...
describe.go
View file @
03c617ab
...
@@ -128,6 +128,7 @@ func (c *Commit) Describe(opts *DescribeOptions) (*DescribeResult, error) {
...
@@ -128,6 +128,7 @@ func (c *Commit) Describe(opts *DescribeOptions) (*DescribeResult, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
git_describe_commit
(
&
resultPtr
,
c
.
ptr
,
cDescribeOpts
)
ecode
:=
C
.
git_describe_commit
(
&
resultPtr
,
c
.
ptr
,
cDescribeOpts
)
runtime
.
KeepAlive
(
c
)
if
ecode
<
0
{
if
ecode
<
0
{
return
nil
,
MakeGitError
(
ecode
)
return
nil
,
MakeGitError
(
ecode
)
}
}
...
@@ -162,6 +163,7 @@ func (repo *Repository) DescribeWorkdir(opts *DescribeOptions) (*DescribeResult,
...
@@ -162,6 +163,7 @@ func (repo *Repository) DescribeWorkdir(opts *DescribeOptions) (*DescribeResult,
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
git_describe_workdir
(
&
resultPtr
,
repo
.
ptr
,
cDescribeOpts
)
ecode
:=
C
.
git_describe_workdir
(
&
resultPtr
,
repo
.
ptr
,
cDescribeOpts
)
runtime
.
KeepAlive
(
repo
)
if
ecode
<
0
{
if
ecode
<
0
{
return
nil
,
MakeGitError
(
ecode
)
return
nil
,
MakeGitError
(
ecode
)
}
}
...
@@ -206,6 +208,7 @@ func (result *DescribeResult) Format(opts *DescribeFormatOptions) (string, error
...
@@ -206,6 +208,7 @@ func (result *DescribeResult) Format(opts *DescribeFormatOptions) (string, error
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
git_describe_format
(
&
resultBuf
,
result
.
ptr
,
cFormatOpts
)
ecode
:=
C
.
git_describe_format
(
&
resultBuf
,
result
.
ptr
,
cFormatOpts
)
runtime
.
KeepAlive
(
result
)
if
ecode
<
0
{
if
ecode
<
0
{
return
""
,
MakeGitError
(
ecode
)
return
""
,
MakeGitError
(
ecode
)
}
}
...
...
repository.go
View file @
03c617ab
...
@@ -129,6 +129,7 @@ func NewRepositoryWrapOdb(odb *Odb) (repo *Repository, err error) {
...
@@ -129,6 +129,7 @@ func NewRepositoryWrapOdb(odb *Odb) (repo *Repository, err error) {
func
(
v
*
Repository
)
SetRefdb
(
refdb
*
Refdb
)
{
func
(
v
*
Repository
)
SetRefdb
(
refdb
*
Refdb
)
{
C
.
git_repository_set_refdb
(
v
.
ptr
,
refdb
.
ptr
)
C
.
git_repository_set_refdb
(
v
.
ptr
,
refdb
.
ptr
)
runtime
.
KeepAlive
(
v
)
}
}
func
(
v
*
Repository
)
Free
()
{
func
(
v
*
Repository
)
Free
()
{
...
@@ -143,6 +144,7 @@ func (v *Repository) Config() (*Config, error) {
...
@@ -143,6 +144,7 @@ func (v *Repository) Config() (*Config, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_repository_config
(
&
config
.
ptr
,
v
.
ptr
)
ret
:=
C
.
git_repository_config
(
&
config
.
ptr
,
v
.
ptr
)
runtime
.
KeepAlive
(
v
)
if
ret
<
0
{
if
ret
<
0
{
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
...
@@ -158,6 +160,7 @@ func (v *Repository) Index() (*Index, error) {
...
@@ -158,6 +160,7 @@ func (v *Repository) Index() (*Index, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_repository_index
(
&
ptr
,
v
.
ptr
)
ret
:=
C
.
git_repository_index
(
&
ptr
,
v
.
ptr
)
runtime
.
KeepAlive
(
v
)
if
ret
<
0
{
if
ret
<
0
{
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
...
@@ -172,6 +175,7 @@ func (v *Repository) lookupType(id *Oid, t ObjectType) (*Object, error) {
...
@@ -172,6 +175,7 @@ func (v *Repository) lookupType(id *Oid, t ObjectType) (*Object, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_object_lookup
(
&
ptr
,
v
.
ptr
,
id
.
toC
(),
C
.
git_otype
(
t
))
ret
:=
C
.
git_object_lookup
(
&
ptr
,
v
.
ptr
,
id
.
toC
(),
C
.
git_otype
(
t
))
runtime
.
KeepAlive
(
id
)
if
ret
<
0
{
if
ret
<
0
{
return
nil
,
MakeGitError
(
ret
)
return
nil
,
MakeGitError
(
ret
)
}
}
...
@@ -241,6 +245,7 @@ func (v *Repository) SetHead(refname string) error {
...
@@ -241,6 +245,7 @@ func (v *Repository) SetHead(refname string) error {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
git_repository_set_head
(
v
.
ptr
,
cname
)
ecode
:=
C
.
git_repository_set_head
(
v
.
ptr
,
cname
)
runtime
.
KeepAlive
(
v
)
if
ecode
!=
0
{
if
ecode
!=
0
{
return
MakeGitError
(
ecode
)
return
MakeGitError
(
ecode
)
}
}
...
@@ -252,6 +257,8 @@ func (v *Repository) SetHeadDetached(id *Oid) error {
...
@@ -252,6 +257,8 @@ func (v *Repository) SetHeadDetached(id *Oid) error {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ecode
:=
C
.
git_repository_set_head_detached
(
v
.
ptr
,
id
.
toC
())
ecode
:=
C
.
git_repository_set_head_detached
(
v
.
ptr
,
id
.
toC
())
runtime
.
KeepAlive
(
v
)
runtime
.
KeepAlive
(
id
)
if
ecode
!=
0
{
if
ecode
!=
0
{
return
MakeGitError
(
ecode
)
return
MakeGitError
(
ecode
)
}
}
...
@@ -263,6 +270,7 @@ func (v *Repository) IsHeadDetached() (bool, error) {
...
@@ -263,6 +270,7 @@ func (v *Repository) IsHeadDetached() (bool, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_repository_head_detached
(
v
.
ptr
)
ret
:=
C
.
git_repository_head_detached
(
v
.
ptr
)
runtime
.
KeepAlive
(
v
)
if
ret
<
0
{
if
ret
<
0
{
return
false
,
MakeGitError
(
ret
)
return
false
,
MakeGitError
(
ret
)
}
}
...
@@ -275,6 +283,7 @@ func (v *Repository) IsHeadUnborn() (bool, error) {
...
@@ -275,6 +283,7 @@ func (v *Repository) IsHeadUnborn() (bool, error) {
defer
runtime
.
UnlockOSThread
()
defer
runtime
.
UnlockOSThread
()
ret
:=
C
.
git_repository_head_unborn
(
v
.
ptr
)
ret
:=
C
.
git_repository_head_unborn
(
v
.
ptr
)
runtime
.
KeepAlive
(
v
)
if
ret
<
0
{
if
ret
<
0
{
return
false
,
MakeGitError
(
ret
)
return
false
,
MakeGitError
(
ret
)
}
}
...
@@ -286,6 +295,7 @@ func (v *Repository) IsEmpty() (bool, error) {
...
@@ -286,6 +295,7 @@ func (v *Repository) IsEmpty() (bool, error) {