summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorezwiebel <[email protected]>2016-09-14 14:42:58 +1000
committerezwiebel <[email protected]>2016-09-14 14:42:58 +1000
commit03e10c56391b1d7ca7e2c4e59417500bea2bd242 (patch)
tree120b45cbed2bf3f0126e4bcc3d7ccbbb8e737e1d
parentadc3a4bd89723785b5f04dd14691472300a03bdb (diff)
Fix reference bug introduced with RebaseOptions implementation
-rw-r--r--rebase.go9
-rw-r--r--rebase_test.go6
2 files changed, 14 insertions, 1 deletions
diff --git a/rebase.go b/rebase.go
index 464840b..f28c7f6 100644
--- a/rebase.go
+++ b/rebase.go
@@ -84,12 +84,19 @@ func (ro *RebaseOptions) toC() *C.git_rebase_options {
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 @@ func TestRebaseNoConflicts(t *testing.T) {
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)