summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Navetta <[email protected]>2014-08-18 23:12:45 -0400
committerBen Navetta <[email protected]>2014-08-18 23:12:45 -0400
commit8fd7c2c60940300b125c40213c82b26dd38e7a78 (patch)
treee6da649d702a6de703e25f7336118254b6620076
parenta093e20a8812f2cc26fde6d4bc6ee8c21e782c39 (diff)
add StatusFile function
-rw-r--r--status.go13
-rw-r--r--status_test.go18
2 files changed, 29 insertions, 2 deletions
diff --git a/status.go b/status.go
index 5f4b7e1..ab0469f 100644
--- a/status.go
+++ b/status.go
@@ -20,7 +20,7 @@ const (
StatusIndexRenamed = C.GIT_STATUS_INDEX_RENAMED
StatusIndexTypeChange = C.GIT_STATUS_INDEX_TYPECHANGE
StatusWtNew = C.GIT_STATUS_WT_NEW
- StatusWtModified = C.GIT_STATUS_WT_NEW
+ StatusWtModified = C.GIT_STATUS_WT_MODIFIED
StatusWtDeleted = C.GIT_STATUS_WT_DELETED
StatusWtTypeChange = C.GIT_STATUS_WT_TYPECHANGE
StatusWtRenamed = C.GIT_STATUS_WT_RENAMED
@@ -157,3 +157,14 @@ func (v *Repository) StatusList(opts *StatusOptions) (*StatusList, error) {
}
return newStatusListFromC(ptr), nil
}
+
+
+func (v *Repository) StatusFile(path string) (Status, error) {
+ var statusFlags C.uint
+ cPath := C.CString(path)
+ ret := C.git_status_file(&statusFlags, v.ptr, cPath)
+ if ret < 0 {
+ return 0, MakeGitError(ret)
+ }
+ return Status(statusFlags), nil
+}
diff --git a/status_test.go b/status_test.go
index 3fababe..13b778c 100644
--- a/status_test.go
+++ b/status_test.go
@@ -7,12 +7,28 @@ import (
"testing"
)
+func TestStatusFile(t *testing.T) {
+ repo := createTestRepo(t)
+ defer repo.Free()
+ defer os.RemoveAll(repo.Workdir())
+
+ err := ioutil.WriteFile(path.Join(path.Dir(repo.Workdir()), "hello.txt"), []byte("Hello, World"), 0644)
+ checkFatal(t, err)
+
+ status, err := repo.StatusFile("hello.txt")
+ checkFatal(t, err)
+
+ if status != StatusWtNew {
+ t.Fatal("Incorrect status flags: ", status)
+ }
+}
+
func TestEntryCount(t *testing.T) {
repo := createTestRepo(t)
defer repo.Free()
defer os.RemoveAll(repo.Workdir())
- err := ioutil.WriteFile(path.Join(path.Dir(repo.Path()), "hello.txt"), []byte("Hello, World"), 0644)
+ err := ioutil.WriteFile(path.Join(path.Dir(repo.Workdir()), "hello.txt"), []byte("Hello, World"), 0644)
checkFatal(t, err)
statusList, err := repo.StatusList(nil)