diff --git a/checkout.go b/checkout.go index bbeb240..92ced9e 100644 --- a/checkout.go +++ b/checkout.go @@ -16,22 +16,22 @@ import ( type CheckoutStrategy uint const ( - CHECKOUT_NONE CheckoutStrategy = C.GIT_CHECKOUT_NONE // Dry run, no actual updates - CHECKOUT_SAFE = 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 - CHECKOUT_FORCE = 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 - CHECKOUT_REMOVE_UNTRACKED = 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 - CHECKOUT_UPDATE_ONLY = 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 - CHECKOUT_NO_REFRESH = 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 - CHECKOUT_SKIP_UNMERGED = 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) - CHECKOUT_USE_THEIRS = 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) - CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED = C.GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED // Recursively checkout submodules if HEAD moved in super repo (NOT IMPLEMENTED) + CheckoutNone CheckoutStrategy = C.GIT_CHECKOUT_NONE // Dry run, no actual updates + CheckoutSafe = C.GIT_CHECKOUT_SAFE // Allow safe updates that cannot overwrite uncommitted data + CheckoutSafeCreate = C.GIT_CHECKOUT_SAFE_CREATE // Allow safe updates plus creation of missing files + CheckoutForce = C.GIT_CHECKOUT_FORCE // Allow all updates to force working directory to look like index + CheckoutAllowConflicts = C.GIT_CHECKOUT_ALLOW_CONFLICTS // Allow checkout to make safe updates even if conflicts are found + CheckoutRemoveUntracked = C.GIT_CHECKOUT_REMOVE_UNTRACKED // Remove untracked files not in index (that are not ignored) + CheckoutRemoveIgnored = C.GIT_CHECKOUT_REMOVE_IGNORED // Remove ignored files not in index + CheckotUpdateOnly = C.GIT_CHECKOUT_UPDATE_ONLY // Only update existing files, don't create new ones + CheckoutDontUpdateIndex = C.GIT_CHECKOUT_DONT_UPDATE_INDEX // Normally checkout updates index entries as it goes; this stops that + CheckoutNoRefresh = C.GIT_CHECKOUT_NO_REFRESH // Don't refresh index/config/etc before doing checkout + CheckooutDisablePathspecMatch = C.GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH // Treat pathspec as simple list of exact match file paths + CheckoutSkipUnmerged = C.GIT_CHECKOUT_SKIP_UNMERGED // Allow checkout to skip unmerged files (NOT IMPLEMENTED) + CheckoutUserOurs = C.GIT_CHECKOUT_USE_OURS // For unmerged files, checkout stage 2 from index (NOT IMPLEMENTED) + CheckoutUseTheirs = C.GIT_CHECKOUT_USE_THEIRS // For unmerged files, checkout stage 3 from index (NOT IMPLEMENTED) + CheckoutUpdateSubmodules = C.GIT_CHECKOUT_UPDATE_SUBMODULES // Recursively checkout submodules with same options (NOT IMPLEMENTED) + CheckoutUpdateSubmodulesIfChanged = C.GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED // Recursively checkout submodules if HEAD moved in super repo (NOT IMPLEMENTED) ) type CheckoutOpts struct { diff --git a/object.go b/object.go index 98a84a4..7b141aa 100644 --- a/object.go +++ b/object.go @@ -11,12 +11,12 @@ import "runtime" type ObjectType int const ( - OBJ_ANY ObjectType = C.GIT_OBJ_ANY - OBJ_BAD ObjectType = C.GIT_OBJ_BAD - OBJ_COMMIT ObjectType = C.GIT_OBJ_COMMIT - OBJ_TREE ObjectType = C.GIT_OBJ_TREE - OBJ_BLOB ObjectType = C.GIT_OBJ_BLOB - OBJ_TAG ObjectType = C.GIT_OBJ_TAG + ObjectAny ObjectType = C.GIT_OBJ_ANY + ObjectBad = C.GIT_OBJ_BAD + ObjectCommit = C.GIT_OBJ_COMMIT + ObjectTree = C.GIT_OBJ_TREE + ObjectBlob = C.GIT_OBJ_BLOB + ObjectTag = C.GIT_OBJ_TAG ) type Object interface { @@ -31,17 +31,17 @@ type gitObject struct { func (t ObjectType) String() (string) { switch (t) { - case OBJ_ANY: + case ObjectAny: return "Any" - case OBJ_BAD: + case ObjectBad: return "Bad" - case OBJ_COMMIT: + case ObjectCommit: return "Commit" - case OBJ_TREE: + case ObjectTree: return "Tree" - case OBJ_BLOB: + case ObjectBlob: return "Blob" - case OBJ_TAG: + case ObjectTag: return "tag" } // Never reached @@ -64,17 +64,17 @@ func (o *gitObject) Free() { func allocObject(cobj *C.git_object) Object { switch ObjectType(C.git_object_type(cobj)) { - case OBJ_COMMIT: + case ObjectCommit: commit := &Commit{gitObject{cobj}} runtime.SetFinalizer(commit, (*Commit).Free) return commit - case OBJ_TREE: + case ObjectTree: tree := &Tree{gitObject{cobj}} runtime.SetFinalizer(tree, (*Tree).Free) return tree - case OBJ_BLOB: + case ObjectBlob: blob := &Blob{gitObject{cobj}} runtime.SetFinalizer(blob, (*Blob).Free) return blob diff --git a/object_test.go b/object_test.go index 41efecf..85daf78 100644 --- a/object_test.go +++ b/object_test.go @@ -16,15 +16,19 @@ func TestObjectPoymorphism(t *testing.T) { checkFatal(t, err) obj = commit - if obj.Type() != OBJ_COMMIT { + if obj.Type() != ObjectCommit { 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) checkFatal(t, err) obj = tree - if obj.Type() != OBJ_TREE { + if obj.Type() != ObjectTree { 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") } - if obj.Type() != OBJ_TREE { + if obj.Type() != ObjectTree { t.Fatalf("Type() doesn't agree with dynamic type") } obj, err = repo.RevparseSingle("HEAD") 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") } obj, err = repo.RevparseSingle("HEAD^{tree}") 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") } } diff --git a/reference.go b/reference.go index 5aee276..fae676f 100644 --- a/reference.go +++ b/reference.go @@ -11,9 +11,9 @@ import ( "unsafe" ) -var ( - SYMBOLIC = C.GIT_REF_SYMBOLIC - OID = C.GIT_REF_OID +const ( + ReferenceSymbolic = C.GIT_REF_SYMBOLIC + ReferenceOid = C.GIT_REF_OID ) type Reference struct { diff --git a/reference_test.go b/reference_test.go index 77afaeb..36387ee 100644 --- a/reference_test.go +++ b/reference_test.go @@ -19,11 +19,11 @@ func TestRefModification(t *testing.T) { tag, err := repo.LookupReference("refs/tags/tree") checkFatal(t, err) - checkRefType(t, tag, OID) + checkRefType(t, tag, ReferenceOid) ref, err := repo.LookupReference("HEAD") checkFatal(t, err) - checkRefType(t, ref, SYMBOLIC) + checkRefType(t, ref, ReferenceSymbolic) if target := ref.Target(); target != nil { t.Fatalf("Expected nil *Oid, got %v", target) @@ -31,7 +31,7 @@ func TestRefModification(t *testing.T) { ref, err = ref.Resolve() checkFatal(t, err) - checkRefType(t, ref, OID) + checkRefType(t, ref, ReferenceOid) if target := ref.Target(); target == nil { t.Fatalf("Expected valid target got nil") @@ -49,7 +49,7 @@ func TestRefModification(t *testing.T) { checkFatal(t, err) tag, err = repo.LookupReference("refs/tags/renamed") checkFatal(t, err) - checkRefType(t, ref, OID) + checkRefType(t, ref, ReferenceOid) } diff --git a/repository.go b/repository.go index 3a44000..eec95dc 100644 --- a/repository.go +++ b/repository.go @@ -83,11 +83,11 @@ func (v *Repository) lookupType(oid *Oid, t ObjectType) (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) { - obj, err := v.lookupType(oid, OBJ_TREE) + obj, err := v.lookupType(oid, ObjectTree) if err != nil { return nil, err } @@ -96,7 +96,7 @@ func (v *Repository) LookupTree(oid *Oid) (*Tree, 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 { return nil, err } @@ -105,7 +105,7 @@ func (v *Repository) LookupCommit(oid *Oid) (*Commit, 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 { return nil, err } diff --git a/walk.go b/walk.go index 216eb65..1d560b6 100644 --- a/walk.go +++ b/walk.go @@ -14,10 +14,10 @@ import ( // RevWalk const ( - SORT_NONE = C.GIT_SORT_NONE - SORT_TOPOLOGICAL = C.GIT_SORT_TOPOLOGICAL - SORT_TIME = C.GIT_SORT_TIME - SORT_REVERSE = C.GIT_SORT_REVERSE + SortNone = C.GIT_SORT_NONE + SortTopological = C.GIT_SORT_TOPOLOGICAL + SortTime = C.GIT_SORT_TIME + SortReverse = C.GIT_SORT_REVERSE ) type RevWalk struct {