Commit Graph

497 Commits

Author SHA1 Message Date
Carlos Martín Nieto 70c95a7655 Create a NotesCollection for managing notes
As with the others, move these methods into their own namespace.
2015-06-28 01:19:22 +02:00
Carlos Martín Nieto 01a2d8d38d Create a ReferenceCollection for managing references
As with the other commits, this clears up the clutter in naming and
around the Repository's API.
2015-06-28 01:12:32 +02:00
Carlos Martín Nieto d2808d1610 Create a SubmoduleCollection for managing submodules
Similarly to RemoteCollection, this allows us to namespace the submodule
operations much more concisely and removes API on the Repository.
2015-06-28 00:58:31 +02:00
Carlos Martín Nieto 4b9cbd78fd Create a RemoteCollection for managing remotes
Instead of making the 'Remote' part of the function calls, create a
collection object which serves to namespace the operations for the
remotes.
2015-06-28 00:51:17 +02:00
Carlos Martín Nieto ba0a24087a Get rid of Owner() on Remote and Submdoule
These are inherently unsafe. The underlying pointer might get released
at any moment.
2015-06-28 00:49:56 +02:00
Carlos Martín Nieto d400f1d5b2 Update to libgit2 fa39975 2015-06-28 00:34:54 +02:00
Carlos Martín Nieto 36e0a256fe Update to libgit2 b6011e29 2015-06-08 04:11:21 +02:00
Carlos Martín Nieto 85fde1fcfb Merge remote-tracking branch 'origin/master' into next 2015-06-08 04:07:49 +02:00
taylorchu 53c158fbd7 Fix test error messages 2015-05-30 22:27:08 +02:00
Carlos Martín Nieto 35ff0de855 Merge pull request #196 from pks-t/pointer-indirection
[WIP/RFC] Pointer indirection
2015-05-30 22:23:23 +02:00
Patrick Steinhardt e8531dd5c3 diff: only untrack notify payload when it is set 2015-05-22 10:01:50 +02:00
Patrick Steinhardt c43afaf9c4 tree: use correct C callback signature 2015-05-22 09:56:21 +02:00
Patrick Steinhardt 1bd338af5e handles: do not store handles by uintptr
If we store values by uintptrs the GC may try to inspect their
values when it kicks in. As the pointers are most likely invalid,
this will result in an invalid pointer dereference, causing the
program to panic. We can fix this by storing values by an int
index value instead, returning pointers to those indices as
handles instead.
2015-05-22 09:50:16 +02:00
Patrick Steinhardt d95932c84a handles: panic when we cannot retrieve handle data 2015-05-22 09:02:39 +02:00
Patrick Steinhardt a843b7247f packbuilder: use HandleList for C function callbacks. 2015-05-22 09:02:24 +02:00
Patrick Steinhardt 83f9e6a705 blob: use HandleList for C function callbacks. 2015-05-22 09:02:24 +02:00
Patrick Steinhardt fe902f56a8 diff: use HandleList for C function callbacks. 2015-05-22 09:02:24 +02:00
Patrick Steinhardt 7ee534d0c5 handles: print pointer handle on panic. 2015-05-22 09:02:24 +02:00
Patrick Steinhardt e919653755 odb: use HandleList for C function callbacks. 2015-05-22 09:02:24 +02:00
Patrick Steinhardt 9bbec34885 index: use HandleList for C function callbacks. 2015-05-22 09:02:24 +02:00
Patrick Steinhardt 0a336e4abd handles: start slot indices with 1
Using 0 as the first slot indice leads to not being able to
differentiate between a handle to the first element or a
NULL-handle. As current code may check whether the pointer is
NULL, change the first indice to be 1 instead.
2015-05-22 09:02:24 +02:00
Patrick Steinhardt de45a4b8ed submodule: use HandleList for C function callbacks 2015-05-22 09:02:24 +02:00
Patrick Steinhardt be3a626f2e tree: use HandleList for C function callbacks. 2015-05-22 09:02:24 +02:00
Patrick Steinhardt bde012f3d4 handles: correctly initialize all members 2015-05-22 09:02:24 +02:00
Carlos Martín Nieto 7750e85fd1 Introduce an indirection layer for pointers
As the Go runtime can move stacks at any point and the C code runs
concurrently with the rest of the system, we cannot assume that the
payloads we give to the C code will stay valid for any particular
duration.

We must therefore give the C code handles which we can then look up in
our own list when the callbacks get called.
2015-05-22 09:02:24 +02:00
Carlos Martín Nieto 193deb7ae3 Merge pull request #202 from libgit2/index-basics
Add a few basic index operations
2015-05-19 15:21:49 +02:00
Carlos Martín Nieto 72c19f73c9 Index: Add Path() accessor 2015-05-19 15:05:00 +02:00
Carlos Martín Nieto d7a0495000 Index: Add OpenIndex
This lets you persist an index at an arbitrary location.
2015-05-19 14:56:01 +02:00
Carlos Martín Nieto a8ad0d2040 Index: Add ReadTree() 2015-05-19 14:49:05 +02:00
Carlos Martín Nieto f7781c0e00 Merge pull request #179 from schani/master
Additions
2015-04-27 23:29:49 +02:00
Carlos Martín Nieto 9538c7f750 Merge pull request #197 from pks-t/test-cleanups
tests: always clean up temporary repository dirs
2015-04-24 16:47:42 +02:00
Patrick Steinhardt e300945a3d tests: always clean up temporary repository dirs
Some test repositories are not correctly removed after the tests
did run. Fix by introducing a function that is to be used for
cleaning up temporary test repositories.
2015-04-24 13:01:51 +02:00
Carlos Martín Nieto 1011b03e41 Merge pull request #195 from shurcooL/next-ignore-script
Avoid installing script binary to user's $GOPATH/bin.
2015-04-21 12:32:35 +02:00
Carlos Martín Nieto b374e16db8 Update to libgit2 4c02d3937 2015-04-18 04:50:39 +02:00
Dmitri Shuralyov acc05926f7 Avoid installing script binary to user's $GOPATH/bin. 2015-04-16 18:45:53 -07:00
Carlos Martín Nieto e021457f27 Merge pull request #180 from arcamael/master
Add possibiliy of checkout on specific path
2015-04-03 14:45:38 +02:00
Carlos Martín Nieto 1ba7e13a3a Merge pull request #191 from kron4eg/patch-1
Test on travis using Go1.4
2015-04-03 14:43:11 +02:00
Artiom Di 6454808f69 Test on travis using Go1.4 too 2015-04-03 14:53:15 +03:00
Mark Probst b3e7304abf Add a FIXME. 2015-03-23 12:02:17 -07:00
Mark Probst 524cc7967b Add DiffIndexToWorkdir 2015-03-23 12:02:17 -07:00
Mark Probst 8622831b11 Add DiffTreeToWorkdirWithIndex 2015-03-23 12:02:17 -07:00
Mark Probst 43102043fb Add Commit.Amend 2015-03-23 12:02:16 -07:00
Carlos Martín Nieto a4d5118374 Merge pull request #185 from griffindy/dg-add-reset
Add support for libgit2's git_reset.
2015-03-22 07:25:28 +01:00
Dylan Griffin 89d67328f3 Add support for libgit2's git_reset.
Adds a new method to *Repository called ResetToCommit as well as constants for
the three reset modes that libgit2 currently supports. This does not need to be
limited to Commit, we actually just need something with a gitObject, which blobs
and other Objects have, they will just require different methods. I only need
to be able to reset to commits, so that's all I'm implementing right now.

Also adds a test which updates the test repository README twice and then resets
to the first commit.
2015-03-21 18:37:00 -04:00
Geoffrey Ragot c4b8861b34 Add possibiliy of checkout on specific path 2015-03-15 10:14:29 +01:00
Carlos Martín Nieto c4fce1a218 Update to libgit2 d675982a153
There's been some changes to the checkout strategy, especially the
SAFE_CREATE mode, which is now the RECREATE_MISSING flag, though that
shouldn't be necessary to use in the general case.

The largest changes come from the removal of the signture from
ref-modifying functions/methods and the removal of the reflog string in
all but those directly related to moving references.
2015-03-15 01:49:32 +01:00
Carlos Martín Nieto a2878cf7b2 Merge branch 'v22' 2015-03-15 01:22:58 +01:00
Carlos Martín Nieto 1b44c0a234 Add a bit more on next vs master 2015-03-15 01:21:21 +01:00
Carlos Martín Nieto 050e6fbc49 Correct README on what master tracks
The second mention still said that master tracks master. Add a mention
of next which will become the branch to track upstream tip.
2015-03-15 01:19:32 +01:00
Carlos Martín Nieto 137c4fc3c8 Merge branch 'master' into v22 2015-03-15 01:09:11 +01:00