summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cherrypick_test.go10
-rw-r--r--repository.go11
2 files changed, 21 insertions, 0 deletions
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
+}