branch:BranchForeach: Correct handling of the ListFlags
This commit is contained in:
parent
4c4da3a846
commit
ed86064871
17
branch.go
17
branch.go
|
@ -15,10 +15,10 @@ import (
|
||||||
|
|
||||||
var ErrEUser = errors.New("Error in user callback function")
|
var ErrEUser = errors.New("Error in user callback function")
|
||||||
|
|
||||||
type ListFlags uint
|
|
||||||
|
|
||||||
type BranchType uint
|
type BranchType uint
|
||||||
|
|
||||||
|
type ListFlags BranchType
|
||||||
|
|
||||||
const (
|
const (
|
||||||
BRANCH_LOCAL BranchType = C.GIT_BRANCH_LOCAL
|
BRANCH_LOCAL BranchType = C.GIT_BRANCH_LOCAL
|
||||||
BRANCH_REMOTE = C.GIT_BRANCH_REMOTE
|
BRANCH_REMOTE = C.GIT_BRANCH_REMOTE
|
||||||
|
@ -62,12 +62,18 @@ func (repo *Repository) BranchForeach(flags ListFlags, callback BranchForeachCB,
|
||||||
}
|
}
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
var branchLocal bool
|
||||||
|
var branchRemote bool
|
||||||
|
|
||||||
ref, err := iter.Next()
|
ref, err := iter.Next()
|
||||||
if err == ErrIterOver {
|
if err == ErrIterOver {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags == ListFlags(BRANCH_LOCAL)) && strings.HasPrefix(ref.Name(), REFS_HEADS_DIR) {
|
if flags&ListFlags(BRANCH_LOCAL) > 0 {
|
||||||
|
branchLocal = true
|
||||||
|
}
|
||||||
|
if branchLocal && strings.HasPrefix(ref.Name(), REFS_HEADS_DIR) {
|
||||||
name := strings.TrimPrefix(ref.Name(), REFS_HEADS_DIR)
|
name := strings.TrimPrefix(ref.Name(), REFS_HEADS_DIR)
|
||||||
err = callback(name, ListFlags(BRANCH_LOCAL), payload)
|
err = callback(name, ListFlags(BRANCH_LOCAL), payload)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -75,7 +81,10 @@ func (repo *Repository) BranchForeach(flags ListFlags, callback BranchForeachCB,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags == ListFlags(BRANCH_REMOTE)) && strings.HasPrefix(ref.Name(), REFS_REMOTES_DIR) {
|
if flags&ListFlags(BRANCH_REMOTE) > 0 {
|
||||||
|
branchRemote = true
|
||||||
|
}
|
||||||
|
if branchRemote && strings.HasPrefix(ref.Name(), REFS_REMOTES_DIR) {
|
||||||
name := strings.TrimPrefix(ref.Name(), REFS_REMOTES_DIR)
|
name := strings.TrimPrefix(ref.Name(), REFS_REMOTES_DIR)
|
||||||
err = callback(name, ListFlags(BRANCH_REMOTE), payload)
|
err = callback(name, ListFlags(BRANCH_REMOTE), payload)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue