summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--checkout.go32
-rw-r--r--object.go30
-rw-r--r--object_test.go14
-rw-r--r--reference.go6
-rw-r--r--reference_test.go8
-rw-r--r--repository.go8
-rw-r--r--walk.go8
7 files changed, 55 insertions, 51 deletions
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 {