more work on cleaning user branches
This commit is contained in:
parent
39f72d2034
commit
d84d7d4687
3
Makefile
3
Makefile
|
@ -42,3 +42,6 @@ restart:
|
|||
reset
|
||||
-rm ~/go/src/repos.pb
|
||||
make private
|
||||
|
||||
identify:
|
||||
autogenpb --identify /home/jcarr/go/src/repos.pb
|
||||
|
|
1
argv.go
1
argv.go
|
@ -30,6 +30,7 @@ type args struct {
|
|||
Bash bool `arg:"--bash" help:"generate bash completion"`
|
||||
BashAuto []string `arg:"--auto-complete" help:"does the actual autocompletion"`
|
||||
Force bool `arg:"--force" help:"try to strong arm things"`
|
||||
Verbose bool `arg:"--verbose" help:"show more output"`
|
||||
}
|
||||
|
||||
type EmptyCmd struct {
|
||||
|
|
39
doClean.go
39
doClean.go
|
@ -19,7 +19,8 @@ func doClean() error {
|
|||
for all.Scan() {
|
||||
repo := all.Next()
|
||||
if repo.GetCurrentBranchName() != repo.GetMasterBranchName() {
|
||||
continue
|
||||
// skip this while in devel
|
||||
// continue
|
||||
}
|
||||
if err := doCleanRepo(repo); err != nil {
|
||||
badRepoExit(repo, err)
|
||||
|
@ -32,7 +33,9 @@ func doClean() error {
|
|||
// removes all local branches
|
||||
func doCleanRepo(repo *gitpb.Repo) error {
|
||||
var hasLocal bool
|
||||
log.Info("Cleaning:", repo.GetGoPath())
|
||||
if argv.Verbose {
|
||||
log.Info("Cleaning:", repo.GetGoPath())
|
||||
}
|
||||
if repo.GitConfig == nil {
|
||||
return fmt.Errorf("GitConfig == nil")
|
||||
}
|
||||
|
@ -42,11 +45,28 @@ func doCleanRepo(repo *gitpb.Repo) error {
|
|||
}
|
||||
|
||||
for name, b := range repo.GitConfig.Branches {
|
||||
log.Info("\tlocal branch name:", name, b.Merge, b.Remote)
|
||||
if b.Name == "" {
|
||||
b.Name = name
|
||||
}
|
||||
if name == repo.GetMasterBranchName() {
|
||||
// never delete the master branch
|
||||
// todo: make sure the master branch is in sync with remote master
|
||||
continue
|
||||
}
|
||||
hasLocal = true
|
||||
if name == repo.GetUserBranchName() {
|
||||
if err := doCleanUserBranch(repo, b); err != nil {
|
||||
return err
|
||||
}
|
||||
continue
|
||||
}
|
||||
if name == repo.GetDevelBranchName() {
|
||||
if err := doCleanDevelBranch(repo, b); err != nil {
|
||||
return err
|
||||
}
|
||||
continue
|
||||
}
|
||||
log.Info("\tlocal branch name unknown:", name, b.Merge, b.Remote)
|
||||
}
|
||||
if hasLocal {
|
||||
return ErrorReposHasLocalBranches
|
||||
|
@ -57,3 +77,16 @@ func doCleanRepo(repo *gitpb.Repo) error {
|
|||
func verifyLocalBranchIsMerged(repo *gitpb.Repo, branch *gitpb.GitBranch) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func doCleanDevelBranch(repo *gitpb.Repo, branch *gitpb.GitBranch) error {
|
||||
log.Printf("\tDo something %s on branch name:%s merge:%s remote:%s\n", repo.GetGoPath(), branch.Name, branch.Merge, branch.Remote)
|
||||
return nil
|
||||
}
|
||||
|
||||
func doCleanUserBranch(repo *gitpb.Repo, branch *gitpb.GitBranch) error {
|
||||
if branch.Name != repo.GetUserBranchName() {
|
||||
return fmt.Errorf("repo %s was not user branch %s", repo.GetGoPath(), branch.Name)
|
||||
}
|
||||
log.Printf("\tDo something %s on branch name:%s merge:%s remote:%s\n", repo.GetGoPath(), branch.Name, branch.Merge, branch.Remote)
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue