Goify consts #39

Merged
carlosmn merged 2 commits from goify-consts into master 2013-09-17 10:03:07 -05:00
8 changed files with 63 additions and 56 deletions

View File

@ -16,22 +16,22 @@ import (
type CheckoutStrategy uint type CheckoutStrategy uint
const ( const (
CHECKOUT_NONE CheckoutStrategy = C.GIT_CHECKOUT_NONE // Dry run, no actual updates CheckoutNone CheckoutStrategy = C.GIT_CHECKOUT_NONE // Dry run, no actual updates
CHECKOUT_SAFE = C.GIT_CHECKOUT_SAFE // Allow safe updates that cannot overwrite uncommitted data CheckoutSafe = C.GIT_CHECKOUT_SAFE // Allow safe updates that cannot overwrite uncommitted data
CHECKOUT_SAFE_CREATE = C.GIT_CHECKOUT_SAFE_CREATE // Allow safe updates plus creation of missing files CheckoutSafeCreate = C.GIT_CHECKOUT_SAFE_CREATE // Allow safe updates plus creation of missing files
CHECKOUT_FORCE = C.GIT_CHECKOUT_FORCE // Allow all updates to force working directory to look like index CheckoutForce = C.GIT_CHECKOUT_FORCE // Allow all updates to force working directory to look like index
CHECKOUT_ALLOW_CONFLICTS = C.GIT_CHECKOUT_ALLOW_CONFLICTS // Allow checkout to make safe updates even if conflicts are found CheckoutAllowConflicts = C.GIT_CHECKOUT_ALLOW_CONFLICTS // Allow checkout to make safe updates even if conflicts are found
CHECKOUT_REMOVE_UNTRACKED = C.GIT_CHECKOUT_REMOVE_UNTRACKED // Remove untracked files not in index (that are not ignored) CheckoutRemoveUntracked = C.GIT_CHECKOUT_REMOVE_UNTRACKED // Remove untracked files not in index (that are not ignored)
CHECKOUT_REMOVE_IGNORED = C.GIT_CHECKOUT_REMOVE_IGNORED // Remove ignored files not in index CheckoutRemoveIgnored = C.GIT_CHECKOUT_REMOVE_IGNORED // Remove ignored files not in index
CHECKOUT_UPDATE_ONLY = C.GIT_CHECKOUT_UPDATE_ONLY // Only update existing files, don't create new ones CheckotUpdateOnly = C.GIT_CHECKOUT_UPDATE_ONLY // Only update existing files, don't create new ones
CHECKOUT_DONT_UPDATE_INDEX = C.GIT_CHECKOUT_DONT_UPDATE_INDEX // Normally checkout updates index entries as it goes; this stops that CheckoutDontUpdateIndex = C.GIT_CHECKOUT_DONT_UPDATE_INDEX // Normally checkout updates index entries as it goes; this stops that
CHECKOUT_NO_REFRESH = C.GIT_CHECKOUT_NO_REFRESH // Don't refresh index/config/etc before doing checkout CheckoutNoRefresh = C.GIT_CHECKOUT_NO_REFRESH // Don't refresh index/config/etc before doing checkout
CHECKOUT_DISABLE_PATHSPEC_MATCH = C.GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH // Treat pathspec as simple list of exact match file paths CheckooutDisablePathspecMatch = C.GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH // Treat pathspec as simple list of exact match file paths
CHECKOUT_SKIP_UNMERGED = C.GIT_CHECKOUT_SKIP_UNMERGED // Allow checkout to skip unmerged files (NOT IMPLEMENTED) CheckoutSkipUnmerged = C.GIT_CHECKOUT_SKIP_UNMERGED // Allow checkout to skip unmerged files (NOT IMPLEMENTED)
CHECKOUT_USE_OURS = C.GIT_CHECKOUT_USE_OURS // For unmerged files, checkout stage 2 from index (NOT IMPLEMENTED) CheckoutUserOurs = C.GIT_CHECKOUT_USE_OURS // For unmerged files, checkout stage 2 from index (NOT IMPLEMENTED)
CHECKOUT_USE_THEIRS = C.GIT_CHECKOUT_USE_THEIRS // For unmerged files, checkout stage 3 from index (NOT IMPLEMENTED) CheckoutUseTheirs = C.GIT_CHECKOUT_USE_THEIRS // For unmerged files, checkout stage 3 from index (NOT IMPLEMENTED)
CHECKOUT_UPDATE_SUBMODULES = C.GIT_CHECKOUT_UPDATE_SUBMODULES // Recursively checkout submodules with same options (NOT IMPLEMENTED) CheckoutUpdateSubmodules = C.GIT_CHECKOUT_UPDATE_SUBMODULES // Recursively checkout submodules with same options (NOT IMPLEMENTED)
CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED = C.GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED // Recursively checkout submodules if HEAD moved in super repo (NOT IMPLEMENTED) CheckoutUpdateSubmodulesIfChanged = C.GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED // Recursively checkout submodules if HEAD moved in super repo (NOT IMPLEMENTED)
) )
type CheckoutOpts struct { type CheckoutOpts struct {

View File

@ -11,12 +11,12 @@ import "runtime"
type ObjectType int type ObjectType int
const ( const (
OBJ_ANY ObjectType = C.GIT_OBJ_ANY ObjectAny ObjectType = C.GIT_OBJ_ANY
OBJ_BAD ObjectType = C.GIT_OBJ_BAD ObjectBad = C.GIT_OBJ_BAD
OBJ_COMMIT ObjectType = C.GIT_OBJ_COMMIT ObjectCommit = C.GIT_OBJ_COMMIT
OBJ_TREE ObjectType = C.GIT_OBJ_TREE ObjectTree = C.GIT_OBJ_TREE
OBJ_BLOB ObjectType = C.GIT_OBJ_BLOB ObjectBlob = C.GIT_OBJ_BLOB
OBJ_TAG ObjectType = C.GIT_OBJ_TAG ObjectTag = C.GIT_OBJ_TAG
) )
type Object interface { type Object interface {
@ -31,17 +31,17 @@ type gitObject struct {
func (t ObjectType) String() (string) { func (t ObjectType) String() (string) {
switch (t) { switch (t) {
case OBJ_ANY: case ObjectAny:
return "Any" return "Any"
case OBJ_BAD: case ObjectBad:
return "Bad" return "Bad"
case OBJ_COMMIT: case ObjectCommit:
return "Commit" return "Commit"
case OBJ_TREE: case ObjectTree:
return "Tree" return "Tree"
case OBJ_BLOB: case ObjectBlob:
return "Blob" return "Blob"
case OBJ_TAG: case ObjectTag:
return "tag" return "tag"
} }
// Never reached // Never reached
@ -64,17 +64,17 @@ func (o *gitObject) Free() {
func allocObject(cobj *C.git_object) Object { func allocObject(cobj *C.git_object) Object {
switch ObjectType(C.git_object_type(cobj)) { switch ObjectType(C.git_object_type(cobj)) {
case OBJ_COMMIT: case ObjectCommit:
commit := &Commit{gitObject{cobj}} commit := &Commit{gitObject{cobj}}
runtime.SetFinalizer(commit, (*Commit).Free) runtime.SetFinalizer(commit, (*Commit).Free)
return commit return commit
case OBJ_TREE: case ObjectTree:
tree := &Tree{gitObject{cobj}} tree := &Tree{gitObject{cobj}}
runtime.SetFinalizer(tree, (*Tree).Free) runtime.SetFinalizer(tree, (*Tree).Free)
return tree return tree
case OBJ_BLOB: case ObjectBlob:
blob := &Blob{gitObject{cobj}} blob := &Blob{gitObject{cobj}}
runtime.SetFinalizer(blob, (*Blob).Free) runtime.SetFinalizer(blob, (*Blob).Free)
return blob return blob

View File

@ -16,15 +16,19 @@ func TestObjectPoymorphism(t *testing.T) {
checkFatal(t, err) checkFatal(t, err)
obj = commit obj = commit
if obj.Type() != OBJ_COMMIT { if obj.Type() != ObjectCommit {
t.Fatalf("Wrong object type, expected commit, have %v", obj.Type()) t.Fatalf("Wrong object type, expected commit, have %v", obj.Type())
} }
commitTree, err := commit.Tree()
checkFatal(t, err)
commitTree.EntryCount()
tree, err := repo.LookupTree(treeId) tree, err := repo.LookupTree(treeId)
checkFatal(t, err) checkFatal(t, err)
obj = tree obj = tree
if obj.Type() != OBJ_TREE { if obj.Type() != ObjectTree {
t.Fatalf("Wrong object type, expected tree, have %v", obj.Type()) t.Fatalf("Wrong object type, expected tree, have %v", obj.Type())
} }
@ -55,19 +59,19 @@ func TestObjectPoymorphism(t *testing.T) {
t.Fatalf("Lookup creates the wrong type") t.Fatalf("Lookup creates the wrong type")
} }
if obj.Type() != OBJ_TREE { if obj.Type() != ObjectTree {
t.Fatalf("Type() doesn't agree with dynamic type") t.Fatalf("Type() doesn't agree with dynamic type")
} }
obj, err = repo.RevparseSingle("HEAD") obj, err = repo.RevparseSingle("HEAD")
checkFatal(t, err) checkFatal(t, err)
if obj.Type() != OBJ_COMMIT || obj.Id().String() != commit.Id().String() { if obj.Type() != ObjectCommit || obj.Id().String() != commit.Id().String() {
t.Fatalf("Failed to parse the right revision") t.Fatalf("Failed to parse the right revision")
} }
obj, err = repo.RevparseSingle("HEAD^{tree}") obj, err = repo.RevparseSingle("HEAD^{tree}")
checkFatal(t, err) checkFatal(t, err)
if obj.Type() != OBJ_TREE || obj.Id().String() != tree.Id().String() { if obj.Type() != ObjectTree || obj.Id().String() != tree.Id().String() {
t.Fatalf("Failed to parse the right revision") t.Fatalf("Failed to parse the right revision")
} }
} }

View File

@ -11,9 +11,10 @@ import (
"unsafe" "unsafe"
) )
var ( type ReferenceType int
SYMBOLIC = C.GIT_REF_SYMBOLIC const (
OID = C.GIT_REF_OID ReferenceSymbolic ReferenceType = C.GIT_REF_SYMBOLIC
ReferenceOid = C.GIT_REF_OID
) )
type Reference struct { type Reference struct {
@ -103,8 +104,8 @@ func (v *Reference) Name() string {
return C.GoString(C.git_reference_name(v.ptr)) return C.GoString(C.git_reference_name(v.ptr))
} }
func (v *Reference) Type() int { func (v *Reference) Type() ReferenceType {
return int(C.git_reference_type(v.ptr)) return ReferenceType(C.git_reference_type(v.ptr))
} }
func (v *Reference) Free() { func (v *Reference) Free() {

View File

@ -19,11 +19,11 @@ func TestRefModification(t *testing.T) {
tag, err := repo.LookupReference("refs/tags/tree") tag, err := repo.LookupReference("refs/tags/tree")
checkFatal(t, err) checkFatal(t, err)
checkRefType(t, tag, OID) checkRefType(t, tag, ReferenceOid)
ref, err := repo.LookupReference("HEAD") ref, err := repo.LookupReference("HEAD")
checkFatal(t, err) checkFatal(t, err)
checkRefType(t, ref, SYMBOLIC) checkRefType(t, ref, ReferenceSymbolic)
if target := ref.Target(); target != nil { if target := ref.Target(); target != nil {
t.Fatalf("Expected nil *Oid, got %v", target) t.Fatalf("Expected nil *Oid, got %v", target)
@ -31,7 +31,7 @@ func TestRefModification(t *testing.T) {
ref, err = ref.Resolve() ref, err = ref.Resolve()
checkFatal(t, err) checkFatal(t, err)
checkRefType(t, ref, OID) checkRefType(t, ref, ReferenceOid)
if target := ref.Target(); target == nil { if target := ref.Target(); target == nil {
t.Fatalf("Expected valid target got nil") t.Fatalf("Expected valid target got nil")
@ -49,7 +49,7 @@ func TestRefModification(t *testing.T) {
checkFatal(t, err) checkFatal(t, err)
tag, err = repo.LookupReference("refs/tags/renamed") tag, err = repo.LookupReference("refs/tags/renamed")
checkFatal(t, err) checkFatal(t, err)
checkRefType(t, ref, OID) checkRefType(t, ref, ReferenceOid)
} }
@ -144,7 +144,7 @@ func compareStringList(t *testing.T, expected, actual []string) {
} }
} }
func checkRefType(t *testing.T, ref *Reference, kind int) { func checkRefType(t *testing.T, ref *Reference, kind ReferenceType) {
if ref.Type() == kind { if ref.Type() == kind {
return return
} }

View File

@ -83,11 +83,11 @@ func (v *Repository) lookupType(oid *Oid, t ObjectType) (Object, error) {
} }
func (v *Repository) Lookup(oid *Oid) (Object, error) { func (v *Repository) Lookup(oid *Oid) (Object, error) {
return v.lookupType(oid, OBJ_ANY) return v.lookupType(oid, ObjectAny)
} }
func (v *Repository) LookupTree(oid *Oid) (*Tree, error) { func (v *Repository) LookupTree(oid *Oid) (*Tree, error) {
obj, err := v.lookupType(oid, OBJ_TREE) obj, err := v.lookupType(oid, ObjectTree)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -96,7 +96,7 @@ func (v *Repository) LookupTree(oid *Oid) (*Tree, error) {
} }
func (v *Repository) LookupCommit(oid *Oid) (*Commit, error) { func (v *Repository) LookupCommit(oid *Oid) (*Commit, error) {
obj, err := v.lookupType(oid, OBJ_COMMIT) obj, err := v.lookupType(oid, ObjectCommit)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -105,7 +105,7 @@ func (v *Repository) LookupCommit(oid *Oid) (*Commit, error) {
} }
func (v *Repository) LookupBlob(oid *Oid) (*Blob, error) { func (v *Repository) LookupBlob(oid *Oid) (*Blob, error) {
obj, err := v.lookupType(oid, OBJ_BLOB) obj, err := v.lookupType(oid, ObjectBlob)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -13,8 +13,9 @@ import (
"unsafe" "unsafe"
) )
type Filemode int
const ( const (
FilemodeNew = C.GIT_FILEMODE_NEW FilemodeNew Filemode = C.GIT_FILEMODE_NEW
FilemodeTree = C.GIT_FILEMODE_TREE FilemodeTree = C.GIT_FILEMODE_TREE
FilemodeBlob = C.GIT_FILEMODE_BLOB FilemodeBlob = C.GIT_FILEMODE_BLOB
FilemodeBlobExecutable = C.GIT_FILEMODE_BLOB_EXECUTABLE FilemodeBlobExecutable = C.GIT_FILEMODE_BLOB_EXECUTABLE

11
walk.go
View File

@ -13,11 +13,12 @@ import (
// RevWalk // RevWalk
type SortType uint
const ( const (
SORT_NONE = C.GIT_SORT_NONE SortNone SortType = C.GIT_SORT_NONE
SORT_TOPOLOGICAL = C.GIT_SORT_TOPOLOGICAL SortTopological = C.GIT_SORT_TOPOLOGICAL
SORT_TIME = C.GIT_SORT_TIME SortTime = C.GIT_SORT_TIME
SORT_REVERSE = C.GIT_SORT_REVERSE SortReverse = C.GIT_SORT_REVERSE
) )
type RevWalk struct { type RevWalk struct {
@ -81,7 +82,7 @@ func (v *RevWalk) Iterate(fun RevWalkIterator) (err error) {
return nil return nil
} }
func (v *RevWalk) Sorting(sm uint) { func (v *RevWalk) Sorting(sm SortType) {
C.git_revwalk_sorting(v.ptr, C.uint(sm)) C.git_revwalk_sorting(v.ptr, C.uint(sm))
} }