From db5fa66b483816614950b36bf204a0de681b705a Mon Sep 17 00:00:00 2001 From: Mark Probst Date: Wed, 4 Mar 2015 11:38:39 -0800 Subject: [PATCH] State cleanup --- cherrypick_test.go | 10 ++++++++++ repository.go | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/cherrypick_test.go b/cherrypick_test.go index c867cf9..f06dbdd 100644 --- a/cherrypick_test.go +++ b/cherrypick_test.go @@ -70,4 +70,14 @@ func TestCherrypick(t *testing.T) { if state != RepositoryStateCherrypick { t.Fatal("Incorrect repository state: ", state) } + + err = repo.StateCleanup() + if err != nil { + t.Fatal(err) + } + + state = repo.State() + if state != RepositoryStateNone { + t.Fatal("Incorrect repository state: ", state) + } } diff --git a/repository.go b/repository.go index 11b0514..cbb5d17 100644 --- a/repository.go +++ b/repository.go @@ -652,3 +652,14 @@ func (r *Repository) State() RepositoryState { return RepositoryState(C.git_repository_state(r.ptr)) } + +func (r *Repository) StateCleanup() error { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + cErr := C.git_repository_state_cleanup(r.ptr) + if cErr < 0 { + return MakeGitError(cErr) + } + return nil +}