summaryrefslogtreecommitdiff
path: root/clone.go
AgeCommit message (Collapse)Author
2021-09-05Make all Options objects consistentlhchavez
This change makes all Options objects have child Option fields as values (instead of pointers) to mirror the libgit2 interface. It also names them Options instead of Opts to match the current libgit2 nomenclature and removes the Version fields.
2021-09-05The big Callback type adjustment of 2020lhchavez
This change makes all callbacks that can fail return an `error`. This makes things a lot more idiomatic.
2021-09-05Add support for custom smart transports (#806)lhchavez
This change adds support for git smart transports. This will be then used to implement http, https, and ssh transports that don't rely on the libgit2 library.
2020-12-10More callback refactoring (#713)lhchavez
This change: * Gets rid of the `.toC()` functions for Options objects, since they were redundant with the `populateXxxOptions()`. * Adds support for `errorTarget` to the `RemoteOptions`, since they are used in the same stack for some functions (like `Fetch()`). Now for those cases, the error returned by the callback will be preserved as-is.
2020-12-10Ensure that no pointer handles leak during the test (#712)lhchavez
This change makes sure that pointer handles are correctly cleaned up during tests.
2020-12-05Refactor all callbacks (#700)lhchavez
This change is a preparation for another change that makes all callback types return a Go error instead of an error code / an integer. That is going to make make things a lot more idiomatic. The reason this change is split is threefold: a) This change is mostly mechanical and should contain no semantic changes. b) This change is backwards-compatible (in the Go API compatibility sense of the word), and thus can be backported to all other releases. c) It makes the other change a bit smaller and more focused on just one thing. Concretely, this change makes all callbacks populate a Go error when they fail. If the callback is invoked from the same stack as the function to which it was passed (e.g. for `Tree.Walk`), it will preserve the error object directly into a struct that also holds the callback function. Otherwise if the callback is pased to one func and will be invoked when run from another one (e.g. for `Repository.InitRebase`), the error string is saved into the libgit2 thread-local storage and then re-created as a `GitError`.
2020-12-05Mark some symbols to be deprecated #minor (#698)lhchavez
This change introduces the file deprecated.go, which contains any constants, functions, and types that are slated to be deprecated in the next major release. These symbols are deprecated because they refer to old spellings in pre-1.0 libgit2. This also makes the build be done with the `-DDEPRECATE_HARD` flag to avoid regressions. This, together with [gorelease](https://godoc.org/golang.org/x/exp/cmd/gorelease)[1] should make releases safer going forward. 1: More information about how that works at https://go.googlesource.com/exp/+/refs/heads/master/apidiff/README.md
2020-10-22refactor: Use undeprecated options init (#656)Suhaib Mujahid
This PR move form linking against the deprecated `init_options` functions to the renamed `options_init` functions. For more context see libgit2/libgit2@0b5ba0d744e69da5dc8c08d167c83dd87ed83af2 and libgit2/libgit2@c6184f0c4b209e462bf3f42ab20df2d13d8ee918.
2016-07-24Clone FixMirko Nosenzo
freeCheckoutOpts called twice
2015-08-31Don't call the finalizer on a borrowed repositoryCarlos Martín Nieto
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-31Merge branch 'next'Carlos Martín Nieto
2015-08-18clone: improve handling of remote create callbackPatrick Steinhardt
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-06-30Clone: test we clone something usable and fix constructorCarlos Martín Nieto
Clone was still trying to do its own initialisation, which was missing all of the namespacing changes.
2015-06-28Merge remote-tracking branch 'upstream/master' into nextCarlos Martín Nieto
Conflicts: branch.go
2015-06-10Make the network code use handlesCarlos Martín Nieto
This wasn't ported together with the rest, but it does exhibit the same issues, so let's port it over now.
2015-06-08Update to libgit2 b6011e29Carlos Martín Nieto
2015-01-29Add TargetDirectory field to Checkout options.joseferminj
TargetDirectory field indicates a alternative checkout path to workdir.
2014-12-11Remove useless includesCarlos Martín Nieto
2014-10-15Update to libgit2 masterCarlos Martín Nieto
The option to ignore the server's certificate has been removed, replaced witha callback for the user to perform their own checking. Remote.Fetch() now performs opportunistic updates and takes a list of refspecs to use as the active set for a particular fetch.
2014-09-03Update clone options to be in sync with libgit2 master.David Calavera
Remove missing constants.
2014-03-18fix clone options initJesse Ezell
2014-03-11clean up clone codeJesse Ezell
2014-03-11cleanup clone codeJesse Ezell
2014-02-26merge latest, cleanup error handling, add thread locksJesse Ezell
2014-01-06wip wrapping git_remoteJason Toffaletti
2014-01-04work in progress wrapping git_cloneJason Toffaletti