| Age | Commit message (Collapse) | Author |
|
See http://tip.golang.org/cmd/cgo/#hdr-Passing_pointers .
|
|
Fix Fetch/Push memory allocation problems
|
|
The Fetch/Push operations didn't allocate the git_*_options structure
and this causes a memory problem in the libgit2 code. Following the
example of Clone operation, the Fetch/Push functions allocates the
options structure before calling the C.
|
|
Small fixes I noticed while perusing the code.
|
|
These appear to be left over debug statements, and they also look like
they were intended to be fmt.Printf calls anyway.
|
|
This patch fixes the setup stage of the config tests to notice when
the writes fail (eg $PWD is a read-only filesystem) and to correctly
skip the entire test function as a result.
|
|
Fix memory leaks in NewIndex() and OpenIndex()
|
|
|
|
|
|
Fix bug in Config LookupString
|
|
|
|
|
|
Fix typo in README: manaager -> manager
|
|
|
|
Expose baseline field in CheckoutOptions
|
|
|
|
|
|
Using `StatusOptions.Pathspec` results in a fatal error panic with
the message 'unexpected signal during runtime execution'.
This is because the `&cpathspec` C.git_strarray gets freed in
`*StatusOptions.toC()` before being passed to
`C.git_status_init_options()` in `*Repository.StatusList()`
(see https://github.com/libgit2/git2go/blob/b3e7705c48f038ef335204a2a9e1ee829784c30e/status.go#L138)
The relevant panic trace is:
```
fatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0xb01dfacedebac1e pc=0x4062609]
runtime stack:
runtime.throw(0x469a080, 0x2a)
/usr/local/Cellar/go/1.5.1/libexec/src/runtime/panic.go:527 +0x90
runtime.sigpanic()
/usr/local/Cellar/go/1.5.1/libexec/src/runtime/sigpanic_unix.go:12
+0x5a
goroutine 71 [syscall, locked to thread]:
runtime.cgocall(0x400a720, 0xc8204e9998, 0x0)
/usr/local/Cellar/go/1.5.1/libexec/src/runtime/cgocall.go:120 +0x11b
fp=0xc8204e9968 sp=0xc8204e9938
github.com/libgit2/git2go._Cfunc_git_status_list_new(0xc8204c39c8,
0x5e17780, 0xc820478c40, 0xc800000000)
??:0 +0x39 fp=0xc8204e9998 sp=0xc8204e9968
github.com/libgit2/git2go.(*Repository).StatusList(0xc820013290,
0xc8204e9b58, 0x0, 0x0, 0x0)
/Users/calin/go/src/github.com/libgit2/git2go/status.go:168 +0x11d
fp=0xc8204e99e8 sp=0xc8204e9998
```
|
|
|
|
When libgit2 gives us the repository for us to create the remote in, we
do not own it, so we must make sure we don't try to free it.
|
|
|
|
|
|
This is a left-over from the merge from 'next'.
|
|
|
|
|
|
clone: do not free clone options' payload
|
|
|
|
|
|
|
|
The clone options contain fields for ae remote create callback
and its payload, which can be used to override the behavior when
the default remote is being created for newly cloned
repositories.
Currently we only accept a C function as callback, though, making
it overly complicated to use it. We also unconditionally `free`
the payload if its address is non-`nil`, which may cause the
program to segfault when the memory is not dynamically allocated.
Instead, we want callers to provide a Go function that is
subsequently being called by us. To do this, we introduce an
indirection such that we are able to extract the provided
function and payload when being called by `git_clone` and handle
the return values of the user-provided function.
|
|
Memleak fixes
|
|
|
|
|
|
|
|
|
|
Add ability to peel any git object
|
|
Add git-describe support
|
|
Includes support for 'git_object_peel'.
|
|
Includes 'git_describe_commit' and 'git_describe_workdir'.
|
|
Wrap MergeBases
|
|
|
|
|
|
While here, test MergeBase as well.
|
|
Implement support for the following libgit2 functions:
- 'git_tag_list' and 'git_tag_list_match'
- 'git_tag_foreach'
- 'git_tag_create_lightweight'
|
|
|
|
Fixed typos/unclarities in README.md
|
|
|
|
|
|
Find tree entry by id
|
|
[master] Prevent slot int variable from being GCed.
|