Skip to content

Commit

Permalink
Merge pull request #351 from ezwiebel/index-remove-directory
Browse files Browse the repository at this point in the history
Implement git_index_remove_directory in index wrapper
  • Loading branch information
carlosmn committed Oct 31, 2016
2 parents e966854 + c18c869 commit 42a90d4
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
16 changes: 16 additions & 0 deletions index.go
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,22 @@ func (v *Index) RemoveByPath(path string) error {
return nil
}

// RemoveDirectory removes all entries from the index under a given directory.
func (v *Index) RemoveDirectory(dir string, stage int) error {
cstr := C.CString(dir)
defer C.free(unsafe.Pointer(cstr))

runtime.LockOSThread()
defer runtime.UnlockOSThread()

ret := C.git_index_remove_directory(v.ptr, cstr, C.int(stage))
if ret < 0 {
return MakeGitError(ret)
}

return nil
}

func (v *Index) WriteTreeTo(repo *Repository) (*Oid, error) {
oid := new(Oid)

Expand Down
40 changes: 40 additions & 0 deletions index_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,46 @@ func TestIndexAddAndWriteTreeTo(t *testing.T) {
}
}

func TestIndexRemoveDirectory(t *testing.T) {
repo := createTestRepo(t)
defer cleanupTestRepo(t, repo)

odb, err := repo.Odb()
checkFatal(t, err)

blobID, err := odb.Write([]byte("fou\n"), ObjectBlob)
checkFatal(t, err)

idx, err := NewIndex()
checkFatal(t, err)

entryCount := idx.EntryCount()
if entryCount != 0 {
t.Fatal("Index should count 0 entry")
}

entry := IndexEntry{
Path: "path/to/LISEZ_MOI",
Id: blobID,
Mode: FilemodeBlob,
}

err = idx.Add(&entry)
checkFatal(t, err)

entryCount = idx.EntryCount()
if entryCount != 1 {
t.Fatal("Index should count 1 entry")
}

err = idx.RemoveDirectory("path", 0)

entryCount = idx.EntryCount()
if entryCount != 0 {
t.Fatal("Index should count 0 entry")
}
}

func TestIndexAddAllNoCallback(t *testing.T) {
t.Parallel()
repo := createTestRepo(t)
Expand Down

0 comments on commit 42a90d4

Please sign in to comment.