From 36e0a256fe79f87447bb730fda53e5cbc90eb47c Mon Sep 17 00:00:00 2001 From: Carlos Martín Nieto Date: Mon, 8 Jun 2015 04:11:21 +0200 Subject: Update to libgit2 b6011e29 --- clone.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'clone.go') diff --git a/clone.go b/clone.go index b796b6e..233300d 100644 --- a/clone.go +++ b/clone.go @@ -12,7 +12,7 @@ import ( type CloneOptions struct { *CheckoutOpts - *RemoteCallbacks + *FetchOptions Bare bool CheckoutBranch string RemoteCreateCallback C.git_remote_create_cb @@ -55,7 +55,7 @@ func populateCloneOptions(ptr *C.git_clone_options, opts *CloneOptions) { return } populateCheckoutOpts(&ptr.checkout_opts, opts.CheckoutOpts) - populateRemoteCallbacks(&ptr.remote_callbacks, opts.RemoteCallbacks) + populateFetchOptions(&ptr.fetch_opts, opts.FetchOptions) ptr.bare = cbool(opts.Bare) if opts.RemoteCreateCallback != nil { -- cgit v1.2.3 From b6811196e4f7728b25ab37ce2a0862aa74c22253 Mon Sep 17 00:00:00 2001 From: Carlos Martín Nieto Date: Tue, 30 Jun 2015 19:08:29 +0200 Subject: Clone: test we clone something usable and fix constructor Clone was still trying to do its own initialisation, which was missing all of the namespacing changes. --- clone.go | 8 +++----- clone_test.go | 10 ++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'clone.go') diff --git a/clone.go b/clone.go index f67f511..b5c5a5b 100644 --- a/clone.go +++ b/clone.go @@ -20,8 +20,6 @@ type CloneOptions struct { } func Clone(url string, path string, options *CloneOptions) (*Repository, error) { - repo := new(Repository) - curl := C.CString(url) defer C.free(unsafe.Pointer(curl)) @@ -37,7 +35,8 @@ func Clone(url string, path string, options *CloneOptions) (*Repository, error) runtime.LockOSThread() defer runtime.UnlockOSThread() - ret := C.git_clone(&repo.ptr, curl, cpath, copts) + var ptr *C.git_repository + ret := C.git_clone(&ptr, curl, cpath, copts) freeCheckoutOpts(&copts.checkout_opts) C.free(unsafe.Pointer(copts.checkout_branch)) C.free(unsafe.Pointer(copts)) @@ -46,8 +45,7 @@ func Clone(url string, path string, options *CloneOptions) (*Repository, error) return nil, MakeGitError(ret) } - runtime.SetFinalizer(repo, (*Repository).Free) - return repo, nil + return newRepositoryFromC(ptr), nil } func populateCloneOptions(ptr *C.git_clone_options, opts *CloneOptions) { diff --git a/clone_test.go b/clone_test.go index fd83fec..7cdc362 100644 --- a/clone_test.go +++ b/clone_test.go @@ -15,8 +15,18 @@ func TestClone(t *testing.T) { path, err := ioutil.TempDir("", "git2go") checkFatal(t, err) + ref, err := repo.References.Lookup("refs/heads/master") + checkFatal(t, err) + repo2, err := Clone(repo.Path(), path, &CloneOptions{Bare: true}) defer cleanupTestRepo(t, repo2) checkFatal(t, err) + + ref2, err := repo2.References.Lookup("refs/heads/master") + checkFatal(t, err) + + if ref.Cmp(ref2) != 0 { + t.Fatal("reference in clone does not match original ref") + } } -- cgit v1.2.3