summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--reference.go5
-rw-r--r--reference_test.go32
2 files changed, 37 insertions, 0 deletions
diff --git a/reference.go b/reference.go
index d24e054..452de46 100644
--- a/reference.go
+++ b/reference.go
@@ -315,6 +315,11 @@ func (v *Reference) IsTag() bool {
return C.git_reference_is_tag(v.ptr) == 1
}
+// IsNote checks if the reference is a note.
+func (v *Reference) IsNote() bool {
+ return C.git_reference_is_note(v.ptr) == 1
+}
+
func (v *Reference) Free() {
runtime.SetFinalizer(v, nil)
C.git_reference_free(v.ptr)
diff --git a/reference_test.go b/reference_test.go
index f1546e2..b69a274 100644
--- a/reference_test.go
+++ b/reference_test.go
@@ -176,6 +176,38 @@ func TestUtil(t *testing.T) {
}
}
+func TestIsNote(t *testing.T) {
+ repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
+ commitID, _ := seedTestRepo(t, repo)
+
+ sig := &Signature{
+ Name: "Rand Om Hacker",
+ Email: "[email protected]",
+ When: time.Now(),
+ }
+
+ refname, err := repo.Notes.DefaultRef()
+ checkFatal(t, err)
+
+ _, err = repo.Notes.Create(refname, sig, sig, commitID, "This is a note", false)
+ checkFatal(t, err)
+
+ ref, err := repo.References.Lookup(refname)
+ checkFatal(t, err)
+
+ if !ref.IsNote() {
+ t.Fatalf("%s should be a note", ref.Name())
+ }
+
+ ref, err = repo.References.Create("refs/heads/foo", commitID, true, "")
+ checkFatal(t, err)
+
+ if ref.IsNote() {
+ t.Fatalf("%s should not be a note", ref.Name())
+ }
+}
func compareStringList(t *testing.T, expected, actual []string) {
for i, v := range expected {
if actual[i] != v {