Fix reference bug introduced with RebaseOptions implementation
diff --git a/rebase.go b/rebase.go
index 464840b..f28c7f6 100644
--- a/rebase.go
+++ b/rebase.go
@@ -84,12 +84,19 @@
version: C.uint(ro.Version),
quiet: C.int(ro.Quiet),
inmemory: C.int(ro.InMemory),
- rewrite_notes_ref: C.CString(ro.RewriteNotesRef),
+ rewrite_notes_ref: rewriteNotesRefToC(ro.RewriteNotesRef),
merge_options: *ro.MergeOptions.toC(),
checkout_options: *ro.CheckoutOptions.toC(),
}
}
+func rewriteNotesRefToC(ref string) *C.char {
+ if ref == "" {
+ return nil
+ }
+ return C.CString(ref)
+}
+
// Rebase object wrapper for C pointer
type Rebase struct {
ptr *C.git_rebase
diff --git a/rebase_test.go b/rebase_test.go
index f76baed..38d6868 100644
--- a/rebase_test.go
+++ b/rebase_test.go
@@ -143,6 +143,12 @@
err = rebase.Finish()
checkFatal(t, err)
+ // Check no more rebase is in progress
+ oRebase, err = repo.RebaseOpen(nil)
+ if err == nil {
+ t.Fatal("Did not expect to find a rebase in progress")
+ }
+
// Check history is in correct order
actualHistory, err := commitMsgsList(repo)
checkFatal(t, err)