summaryrefslogtreecommitdiff
path: root/doClean.go
diff options
context:
space:
mode:
Diffstat (limited to 'doClean.go')
-rw-r--r--doClean.go81
1 files changed, 19 insertions, 62 deletions
diff --git a/doClean.go b/doClean.go
index 015d007..e72a817 100644
--- a/doClean.go
+++ b/doClean.go
@@ -50,20 +50,24 @@ func doCleanUser() error {
// return err
}
+ var anyerr error
+
all := me.forge.Repos.SortByFullPath()
for all.Scan() {
repo := all.Next()
if err := doCleanUserRepo(repo); err != nil {
log.Info(repo.GetGoPath(), err)
- return err
+ anyerr = err
}
}
- return nil
+ return anyerr
}
+/*
func doesLocalBranchExist(repo *gitpb.Repo, branch string) bool {
return repo.Exists(filepath.Join(".git/refs/heads", branch))
}
+*/
func doCleanDevel() error {
var total int
@@ -72,13 +76,19 @@ func doCleanDevel() error {
for all.Scan() {
repo := all.Next()
total += 1
- devel := repo.GetDevelBranchName()
- if !doesLocalBranchExist(repo, devel) {
- if argv.Verbose {
- log.Info("local branch was already deleted:", repo.GetGoPath())
- }
- continue
+ // devel := repo.GetDevelBranchName()
+ if repo.GetDevelVersion() == "derr" {
+ // already deleted
+ return nil
}
+ /*
+ if !doesLocalBranchExist(repo, devel) {
+ if argv.Verbose {
+ log.Info("local branch was already deleted:", repo.GetGoPath())
+ }
+ continue
+ }
+ */
if repo.GetCurrentBranchName() != repo.GetMasterBranchName() {
log.Info("Repo not on master branch:", repo.GetGoPath())
continue
@@ -98,17 +108,6 @@ func doCleanDevel() error {
}
/*
-func exactDevelRepo(repo *gitpb.Repo) error {
- devel := repo.GetDevelBranchName()
- master := repo.GetMasterBranchName()
- err := isBranchSubsetOfTrunk(repo, devel, master)
- if err != nil {
- return err
- }
- return nil
-}
-*/
-
func checkhashes(repo *gitpb.Repo, hashes []string, refpath string) ([]string, error) {
if !repo.Exists(refpath) {
return hashes, nil
@@ -126,6 +125,7 @@ func checkhashes(repo *gitpb.Repo, hashes []string, refpath string) ([]string, e
hashes = append(hashes, newhash)
return hashes, nil
}
+*/
// removes all local branches
func doCleanUserRepo(repo *gitpb.Repo) error {
@@ -158,49 +158,6 @@ func doCleanUserRepo(repo *gitpb.Repo) error {
return fmt.Errorf("%s branch has things not in %s count=%d", bruser, brdevel, b1)
}
-/*
-// verifies that the branch is a pure subset of the other branch
-// sorry about the 'master' 'slave' nameing thing. I guess that isn't
-// 'cool' to use anymore. I can't think of other terms that aren't reserved words.
-func isBranchSubsetOfTrunk(repo *gitpb.Repo, branch string, trunk string) error {
- b1 := countGitDiffLog(repo, branch, trunk) // should be zero
- b2 := countGitDiffLog(repo, trunk, branch) // can be greater than 1
- // log.Info(branch, "vs", trunk, "count", b1, b2)
- if b1 == 0 && b2 == 0 {
- // log.Info("branch and trunk are identical ==", branch, b1, trunk, b2)
- return nil
- }
- if argv.Verbose {
- log.Printf("%-40s NOT EXACT %s %s (%d) (%d)\n", repo.GetGoPath(), branch, trunk, b1, b2)
- }
- if b1 == 0 {
- cmd := []string{"git", "merge", trunk}
- log.Printf("%-40s branch %s needs merge with trunk %s len(%d) %s\n", repo.GetGoPath(), branch, trunk, b2, cmd)
- return ErrorMergeBranch
- }
- if b2 == 0 {
- log.Printf("%-40s trunk %s needs merge with branch %s len(%d)\n", repo.GetGoPath(), branch, trunk, b2)
- return ErrorMergeTrunk
- }
- return fmt.Errorf("branch not clean to delete. needs merge %d %d", b1, b2)
-}
-*/
-
-// count all objects only in branch1
-// if zero, that means branch1 is entirely contained in branch2 and can be safely deleted
-
-/*
-func countGitDiffLog(repo *gitpb.Repo, branch1, branch2 string) int {
- cmd := repo.ConstructGitDiffLog(branch1, branch2)
- r, err := repo.RunStrict(cmd)
- if err != nil {
- return -1
- }
- // log.Info("countDiffObjects()", cmd, len(r.Stdout), strings.Join(r.Stdout, " "))
- return len(r.Stdout)
-}
-*/
-
func doCleanPub() error {
total := 0
all := me.forge.Repos.SortByFullPath()