Commit Graph

767 Commits

Author SHA1 Message Date
Carlos Martín Nieto ebf7f15bf9 Merge branch 'status-options' 2015-09-18 10:49:14 +02:00
Calin Seciu 34fb7e03ec Fix crash when using Pathspec in StatusOptions
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 b3e7705c48/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
```
2015-09-18 10:48:26 +02:00
Carlos Martín Nieto b3e7705c48 Update vendored libgit2 2015-08-31 20:24:54 +02:00
Carlos Martín Nieto d5890f58e8 Run go fmt
As it seems to be something that many people can't get over, reformat
all the files; as we're breaking things, whoever depended on 'next' will
have to take many changes into account anyway, so let's include this to
reduce the noise of incoming patches.
2015-08-31 20:22:17 +02:00
Carlos Martín Nieto 876ddd17eb Update missing bit to the new object model 2015-08-31 20:21:28 +02:00
Carlos Martín Nieto d59752528c Merge pull request #237 from libgit2/object-type
Move from an Object interface to a type
2015-08-31 20:12:45 +02:00
Carlos Martín Nieto 6d3a3499f1 Merge branch 'master-v23' 2015-08-31 19:58:29 +02:00
Carlos Martín Nieto 4090c401c8 Don't call the finalizer on a borrowed repository
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.
2015-08-31 16:07:37 +02:00
Carlos Martín Nieto 2743bbfca3 Test against Go 1.5 2015-08-31 16:07:37 +02:00
Carlos Martín Nieto 1ea9965824 Install v23 on Travis 2015-08-31 16:07:37 +02:00
Carlos Martín Nieto 337f25d47e Remove the vendored libgit2 submodule
This is a left-over from the merge from 'next'.
2015-08-31 16:07:08 +02:00
Carlos Martín Nieto f72db33baf Merge branch 'next' 2015-08-31 13:55:46 +02:00
Carlos Martín Nieto 157593f38d Don't trat a revwalk's ITEROVER as an error 2015-08-31 13:13:27 +02:00
Carlos Martín Nieto e4b2222888 Merge pull request #242 from pks-t/fix-populate-clone-options
clone: do not free clone options' payload
2015-08-31 13:05:36 +02:00
Carlos Martín Nieto c6c2e9389f Merge branch 'push-cb' into next 2015-08-31 12:52:20 +02:00
Aaron O'Mullan 803ef7dad5 Add nil check on CredentialsCallback wrapper 2015-08-31 12:48:11 +02:00
Aaron O'Mullan a572b15df6 Add back support for RemoteCallbacks in Remote.Push() 2015-08-31 12:43:36 +02:00
Patrick Steinhardt 0b530c15cf clone: improve handling of remote create callback
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.
2015-08-18 14:01:51 +02:00
Carlos Martín Nieto 3d15c877d8 Merge pull request #241 from pks-t/memleak-fixes
Memleak fixes
2015-08-13 02:04:23 +02:00
Patrick Steinhardt 37bb1a6025 merge: fix memory leak related to merge file opts 2015-08-12 10:24:59 +02:00
Patrick Steinhardt cce14aa58b branch: fix memory leaks related to CStrings 2015-08-12 10:24:59 +02:00
Carlos Martín Nieto ff6d4a7dfd We do require sudo on Travis 2015-08-04 15:01:17 +02:00
Carlos Martín Nieto 47949510f1 Merge remote-tracking branch 'origin/master' into next 2015-08-04 14:59:10 +02:00
Carlos Martín Nieto b7159b0cd4 Move from an Object interface to a type
An Object should be about representing a libgit2 object rather than
showing which methods it should support.

Change any return of Object to *Object and provide methods to convert
between this and the particular type.
2015-08-04 14:47:10 +02:00
Carlos Martín Nieto 5d989f2cad Merge pull request #236 from clns/object-peel
Add ability to peel any git object
2015-08-03 10:56:47 +02:00
Carlos Martín Nieto fba081ddbb Merge pull request #227 from clns/describe
Add git-describe support
2015-08-03 10:50:11 +02:00
Calin Seciu 17950c198b Add ability to peel any git object
Includes support for 'git_object_peel'.
2015-08-01 14:28:20 +02:00
Calin Seciu 1018ff76d0 Add git-describe support
Includes 'git_describe_commit' and 'git_describe_workdir'.
2015-07-31 22:39:33 +02:00
Carlos Martín Nieto ed62fda34d Merge pull request #234 from libgit2/cmn/merge-base
Wrap MergeBases
2015-07-31 20:27:15 +02:00
Carlos Martín Nieto c0c6caed3a Merge branch 'tags-col' into next 2015-07-31 20:24:18 +02:00
Carlos Martín Nieto def4494b74 Move CreateTag to the tags collection 2015-07-31 20:23:05 +02:00
Carlos Martín Nieto efd61a4bc0 Wrap MergeBases
While here, test MergeBase as well.
2015-07-31 11:37:18 +02:00
Calin Seciu 6c4af98c5b Add more support for tags
Implement support for the following libgit2 functions:

- 'git_tag_list' and 'git_tag_list_match'
- 'git_tag_foreach'
- 'git_tag_create_lightweight'
2015-07-31 10:07:26 +02:00
Calin Seciu 12311c8528 Add TagsCollection 2015-07-31 09:51:19 +02:00
Carlos Martín Nieto 3de64ea8af Merge pull request #233 from tuexss/typos
Fixed typos/unclarities in README.md
2015-07-29 21:05:09 +02:00
Andreas Beer 08d30893b6 Headline typo 2015-07-29 11:28:34 +02:00
Andreas Beer 47d82916e2 Typos/unclarities in readme. 2015-07-29 11:28:05 +02:00
Carlos Martín Nieto a2e4e9259b Merge pull request #230 from clns/tree-entry-by-id
Find tree entry by id
2015-07-29 01:53:10 +02:00
Carlos Martín Nieto f2d8797a96 Merge pull request #231 from shurcooL/master-fix-HandleList-Track-gc-issue
[master] Prevent slot int variable from being GCed.
2015-07-28 08:09:01 +02:00
Dmitri Shuralyov e1e1b4b1e1 Prevent slot int variable from being GCed.
Before this change, there were no users of slot int variable in the Go
world (just a pointer to it that ended up in C world only), so Go's
garbage collector would free it and its value could not retrieved later
(once a pointer to it comes back to Go world from C world).

Keep a pointer to it in the Go world so that does not happen.

Fixes #218.
2015-07-26 15:02:40 -07:00
Calin Seciu 64c160f6f2 Find tree entry by id
Add support for 'git_tree_entry_byid'.
2015-07-24 19:52:51 +03:00
Carlos Martín Nieto b4ba35d85c Merge pull request #228 from clns/ref-additions
Reference additions
2015-07-24 14:23:15 +02:00
Carlos Martín Nieto d307391e08 Merge pull request #219 from shurcooL/next-fix-HandleList-Track-gc-issue
[next] Prevent slot int variable from being GCed.
2015-07-24 13:43:19 +02:00
Calin Seciu ec93213f21 Add ReferenceIsValidName() 2015-07-24 12:14:53 +03:00
Calin Seciu 4b88210cbf Add check if reference is a note 2015-07-24 12:14:24 +03:00
Carlos Martín Nieto 28dee704ca Bring back CheckoutForce
This was mistakenly deleted when the SafeCreate was replaced with
RecreateMissing.
2015-07-10 00:31:32 +02:00
Dmitri Shuralyov b5693c1429 Prevent slot int variable from being GCed.
Before this change, there were no users of slot int variable in the Go
world (just a pointer to it that ended up in C world only), so Go's
garbage collector would free it and its value could not retrieved later
(once a pointer to it comes back to Go world from C world).

Keep a pointer to it in the Go world so that does not happen.

Fixes #218.
2015-07-06 19:27:58 -07:00
Carlos Martín Nieto b4ade2b9c6 Merge remote-tracking branch 'upstream/master' into next 2015-07-01 16:07:02 +02:00
Carlos Martín Nieto 4eae20ec27 Adjust style 2015-07-01 16:00:17 +02:00
Carlos Martín Nieto 84275e691f Merge commit 'refs/pull/198/head' of github.com:libgit2/git2go 2015-07-01 15:58:21 +02:00