Commit Graph

792 Commits

Author SHA1 Message Date
FUJII Ryota 1cdf1d70a2 Fix a memory leak in Index.EntryByPath() 2015-12-16 16:43:26 +09:00
Carlos Martín Nieto 4ee13db86d Merge pull request #271 from joseferminj/fix-memory-problems
Fix Fetch/Push memory allocation problems
2015-11-13 18:33:02 +01:00
Jose Alvarez 92d736d12c 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.
2015-11-12 21:15:24 -05:00
Carlos Martín Nieto f05a6a3384 Merge pull request #269 from durin42/small-fixes
Small fixes I noticed while perusing the code.
2015-11-03 08:30:59 -08:00
Augie Fackler 714cd56c71 odb: remove debug fmt.Printlns
These appear to be left over debug statements, and they also look like
they were intended to be fmt.Printf calls anyway.
2015-11-02 16:00:19 -05:00
Augie Fackler f18ea412dc config_test: properly detect failed config writes
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.
2015-11-02 16:00:04 -05:00
Carlos Martín Nieto c646a2eb30 Merge pull request #268 from clearr/fix-index-leaks
Fix memory leaks in NewIndex() and OpenIndex()
2015-10-29 13:04:01 +01:00
FUJII Ryota ae107d5f56 Fix memory leaks in NewIndex() and OpenIndex() 2015-10-27 15:20:50 +09:00
Carlos Martín Nieto 749963ce55 Merge pull request #266 from clns/update-libgit2
[next] Update libgit2 to 821131f
2015-10-26 21:44:16 +01:00
Carlos Martín Nieto 3b5633de21 Mention that MergeAnalysis is a bitmask 2015-10-26 21:22:22 +01:00
Calin Seciu 367cd8eb9b Update libgit2 to 821131f
The API changes are:

- `*Remote.Connect`

  ```go
  // from:
  func (o *Remote) Connect(direction ConnectDirection, callbacks *RemoteCallbacks) error
  // to:
  func (o *Remote) Connect(direction ConnectDirection, callbacks *RemoteCallbacks, headers []string) error
  ```

- `*Remote.ConnectFetch` - `headers` was added as above
- `*Remote.ConnectPush` - `headers` was added as above
2015-10-26 16:20:18 +02:00
Carlos Martín Nieto c4868aef6c Merge pull request #262 from clearr/ignore-support
Add support for ignore
2015-10-21 16:33:05 +02:00
FUJII Ryota 56cc9e1b0e Add support for ignore 2015-10-20 15:07:54 +09:00
Jose Alvarez 22495763b7 Expose AddGitIgnoreRules and ClearGitIgnoreRules funcs 2015-10-13 11:33:37 -04:00
Carlos Martín Nieto 22da351b1e Merge pull request #258 from TheDahv/feat-config-snapshot
Fix bug in Config LookupString
2015-10-09 13:00:26 +02:00
David Pierce 81e0b16d9f Tests config lookup methods 2015-10-08 09:47:23 -07:00
David Pierce 80cf533fe4 Config#LookupString uses git_buf to load value 2015-10-08 09:37:36 -07:00
Carlos Martín Nieto 43b39805bd Merge pull request #261 from jbranchaud/fix-readme-typo
Fix typo in README: manaager -> manager
2015-10-07 12:29:34 +02:00
jbranchaud b1d97c1ebd Fix typo in README: manaager -> manager 2015-10-06 15:12:49 -05:00
Carlos Martín Nieto 698ed4a42d Merge pull request #260 from clearr/index-entrybypath
Add EntryByPath method to Index
2015-09-30 08:53:05 +02:00
FUJII Ryota b8283e7277 Add EntryByPath method to Index 2015-09-28 20:38:04 +09:00
Calin Seciu d54ea1d6a8 Add stash support 2015-09-21 14:50:57 +03:00
Carlos Martín Nieto 1c855246ca Merge pull request #253 from joseferminj/checkout-baseline
Expose baseline field in CheckoutOptions
2015-09-18 22:55:04 +02:00
Jose Alvarez 9397af0854 Expose baseline field in CheckoutOptions 2015-09-18 09:50:59 -04:00
Carlos Martín Nieto 0522886781 Merge remote-tracking branch 'origin/master' into next 2015-09-18 10:52:37 +02:00
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