diff options
| author | Mark Probst <[email protected]> | 2015-03-04 11:38:39 -0800 |
|---|---|---|
| committer | Mark Probst <[email protected]> | 2015-03-04 15:52:55 -0800 |
| commit | db5fa66b483816614950b36bf204a0de681b705a (patch) | |
| tree | b4b3fe9ca815d53553d972a67794b9d4704fb6ee | |
| parent | c78b4d665e406af7e8cba608f65ac2171d3917b6 (diff) | |
State cleanup
| -rw-r--r-- | cherrypick_test.go | 10 | ||||
| -rw-r--r-- | repository.go | 11 |
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 +} |
