From 04038d337843a4c096e80cc3a23f9a4896c8861d Mon Sep 17 00:00:00 2001 From: lhchavez Date: Fri, 23 Dec 2016 19:53:33 -0800 Subject: [PATCH] Add documentation --- indexer.go | 10 ++++++++++ odb.go | 1 + 2 files changed, 11 insertions(+) diff --git a/indexer.go b/indexer.go index 6653628..de486e3 100644 --- a/indexer.go +++ b/indexer.go @@ -16,6 +16,8 @@ import ( "unsafe" ) +// Indexer can post-process packfiles and create an .idx file for efficient +// lookup. type Indexer struct { ptr *C.git_indexer stats C.git_transfer_progress @@ -23,6 +25,7 @@ type Indexer struct { callbacksHandle unsafe.Pointer } +// NewIndexer creates a new indexer instance. func NewIndexer(packfilePath string, odb *Odb, callback TransferProgressCallback) (indexer *Indexer, err error) { indexer = new(Indexer) @@ -47,6 +50,7 @@ func NewIndexer(packfilePath string, odb *Odb, callback TransferProgressCallback return indexer, nil } +// Write adds data to the indexer. func (indexer *Indexer) Write(data []byte) (int, error) { header := (*reflect.SliceHeader)(unsafe.Pointer(&data)) ptr := unsafe.Pointer(header.Data) @@ -63,6 +67,11 @@ func (indexer *Indexer) Write(data []byte) (int, error) { return len(data), nil } +// Commit finalizes the pack and index. It resolves any pending deltas and +// writes out the index file. +// +// It also returns the packfile's hash. A packfile's name is derived from the +// sorted hashing of all object names. func (indexer *Indexer) Commit() (*Oid, error) { runtime.LockOSThread() defer runtime.UnlockOSThread() @@ -75,6 +84,7 @@ func (indexer *Indexer) Commit() (*Oid, error) { return newOidFromC(C.git_indexer_hash(indexer.ptr)), nil } +// Free frees the indexer and its resources. func (indexer *Indexer) Free() { pointerHandles.Untrack(indexer.callbacksHandle) runtime.SetFinalizer(indexer, nil) diff --git a/odb.go b/odb.go index 74a09be..c68ec44 100644 --- a/odb.go +++ b/odb.go @@ -379,6 +379,7 @@ func odbWritepackTransferProgress(_stats *C.git_transfer_progress, ptr unsafe.Po return C.int(callback(newTransferProgressFromC(_stats))) } +// OdbWritepack is a stream to write a packfile to the ODB. type OdbWritepack struct { ptr *C.git_odb_writepack stats C.git_transfer_progress