summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-25 15:02:36 -0500
committerJeff Carr <[email protected]>2025-09-25 15:02:36 -0500
commita8184b8c9ec61d2bf69aeae78542b9e1888837e1 (patch)
tree18d4cbd802dc25f25a13c44fc06c290d718b93fb
parenta377c2ed273412e7a98870b8005a431df16f4380 (diff)
try to fix weird things with doClean()v0.25.25
-rw-r--r--argv.go54
-rw-r--r--doClean.go20
2 files changed, 45 insertions, 29 deletions
diff --git a/argv.go b/argv.go
index f3df632..f165752 100644
--- a/argv.go
+++ b/argv.go
@@ -67,25 +67,25 @@ type RepoCmd struct {
}
type NormalCmd struct {
- On *EmptyCmd `arg:"subcommand:on" help:"turn normal mode on"`
- Off *EmptyCmd `arg:"subcommand:off" help:"turn normal mode off"`
+ On *EmptyCmd `arg:"subcommand:on" help:"turn normal mode on"`
+ Off *EmptyCmd `arg:"subcommand:off" help:"turn normal mode off"`
}
type CommitCmd struct {
// Submit bool `arg:"--submit" help:"submit the patches to forge"`
- All bool `arg:"--all" help:"git commit in all dirty repos"`
+ All bool `arg:"--all" help:"git commit in all dirty repos"`
}
type DevCmd struct {
- Build string `arg:"--build" help:"build a repo"`
- Install string `arg:"--install" help:"install a repo"`
- BuildForge bool `arg:"--forge-rebuild" help:"download and rebuild forge"`
- URL string `arg:"--connect" help:"forge url"`
+ Build string `arg:"--build" help:"build a repo"`
+ Install string `arg:"--install" help:"install a repo"`
+ BuildForge bool `arg:"--forge-rebuild" help:"download and rebuild forge"`
+ URL string `arg:"--connect" help:"forge url"`
}
type CleanCmd struct {
- Verify *EmptyCmd `arg:"subcommand:fix" help:"try to fix problems"`
- Repo string `arg:"--repo" help:"which repo to look at"`
+ Fix *EmptyCmd `arg:"subcommand:fix" help:"try to fix problems"`
+ Repo string `arg:"--repo" help:"which repo to look at"`
}
// matches
@@ -95,7 +95,7 @@ func (c CleanCmd) Match(partial string) []string {
}
type CleanDevelCmd struct {
- Force bool `arg:"--force" help:"try to strong arm things"`
+ Force bool `arg:"--force" help:"try to strong arm things"`
}
type PatchCmd struct {
@@ -112,37 +112,37 @@ type SubmitCmd struct {
}
type PullCmd struct {
- Force bool `arg:"--force" help:"try to strong-arm things"`
+ Force bool `arg:"--force" help:"try to strong-arm things"`
// Check *EmptyCmd `arg:"subcommand:check" help:"check repo versions"`
// Dirty *EmptyCmd `arg:"subcommand:dirty" help:"only check dirty repos"`
// Patches *EmptyCmd `arg:"subcommand:patches" help:"only check repos with patches"`
}
type TagCmd struct {
- List *EmptyCmd `arg:"subcommand:list" help:"list the tags"`
- Clean *EmptyCmd `arg:"subcommand:clean" help:"clean out old and duplicate tags"`
- Delete string `arg:"--delete" help:"delete a tag"`
+ List *EmptyCmd `arg:"subcommand:list" help:"list the tags"`
+ Clean *EmptyCmd `arg:"subcommand:clean" help:"clean out old and duplicate tags"`
+ Delete string `arg:"--delete" help:"delete a tag"`
}
type CheckoutCmd struct {
- User *EmptyCmd `arg:"subcommand:user" help:"git checkout user"`
- Devel *EmptyCmd `arg:"subcommand:devel" help:"git checkout devel"`
- Master *EmptyCmd `arg:"subcommand:master" help:"git checkout master"`
+ User *EmptyCmd `arg:"subcommand:user" help:"git checkout user"`
+ Devel *EmptyCmd `arg:"subcommand:devel" help:"git checkout devel"`
+ Master *EmptyCmd `arg:"subcommand:master" help:"git checkout master"`
}
type MergeCmd struct {
- All bool `arg:"--all" help:"merge all"`
- Devel *EmptyCmd `arg:"subcommand:devel" help:"merge user to devel"`
- Master *EmptyCmd `arg:"subcommand:master" help:"merge devel to master"`
- Publish *EmptyCmd `arg:"subcommand:publish" help:"increment versions and publish master branch"`
+ All bool `arg:"--all" help:"merge all"`
+ Devel *EmptyCmd `arg:"subcommand:devel" help:"merge user to devel"`
+ Master *EmptyCmd `arg:"subcommand:master" help:"merge devel to master"`
+ Publish *EmptyCmd `arg:"subcommand:publish" help:"increment versions and publish master branch"`
}
type ConfigCmd struct {
- Add *ConfigAddCmd `arg:"subcommand:add" help:"add a config setting"`
- Fix *EmptyCmd `arg:"subcommand:fix" help:"fix .config/forge/ and/or repos.pb protobuf file"`
- List *EmptyCmd `arg:"subcommand:list" help:"list your config settings"`
- Delete string `arg:"--delete" help:"delete this repo"`
- Register string `arg:"--register" help:"register your git URL (foo.com/mystuff) or (github.com/foo/bar)"`
+ Add *ConfigAddCmd `arg:"subcommand:add" help:"add a config setting"`
+ Fix *EmptyCmd `arg:"subcommand:fix" help:"fix .config/forge/ and/or repos.pb protobuf file"`
+ List *EmptyCmd `arg:"subcommand:list" help:"list your config settings"`
+ Delete string `arg:"--delete" help:"delete this repo"`
+ Register string `arg:"--register" help:"register your git URL (foo.com/mystuff) or (github.com/foo/bar)"`
}
type ConfigAddCmd struct {
@@ -151,7 +151,7 @@ type ConfigAddCmd struct {
Directory bool `arg:"--directory" help:"repo is a directory to match against"`
ReadOnly bool `arg:"--readonly" help:"repo is readonly"`
Writable bool `arg:"--writable" help:"repo is writable"`
- Favorite bool `arg:"--favorite" default:"false" help:"forge will always go-clone or git clone this"`
+ Favorite bool `arg:"--favorite" help:"forge will always go-clone or git clone this" default:"false"`
Private bool `arg:"--private" default:"false" help:"repo can not be published"`
Interesting bool `arg:"--interesting" default:"false" help:"something you decided was cool"`
DebName string `arg:"--debname" help:"the name of the debian package (or rpm, etc)"`
diff --git a/doClean.go b/doClean.go
index dfc80a9..c9af9cd 100644
--- a/doClean.go
+++ b/doClean.go
@@ -4,9 +4,11 @@
package main
import (
+ "errors"
"fmt"
"path/filepath"
+ "go.wit.com/lib/fhelp"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
@@ -97,7 +99,16 @@ func doClean() error {
// try to delete user
if err := doRepoCleanUser(repo); err != nil {
- log.Info(repo.GetGoPath(), err)
+ if err == ErrorBranchUnique {
+ bname := repo.GetUserBranchName()
+ s := fmt.Sprintf("delete this odd user %bname branch %s?", bname, repo.FullPath)
+ if fhelp.QuestionUser(s) {
+ repo.RunVerbose([]string{"git", "branch", "-D", bname})
+ // repo.RunVerbose([]string{"git", "checkout", bname})
+ }
+ } else {
+ log.Info(repo.GetGoPath(), err)
+ }
}
// try to delete devel
@@ -232,9 +243,14 @@ func doRepoCleanUser(repo *gitpb.Repo) error {
}
}
- return fmt.Errorf("%s branch has unique commits", bruser)
+ if argv.Clean.Fix != nil {
+ }
+
+ return ErrorBranchUnique
}
+var ErrorBranchUnique error = errors.New("branch has unique commits")
+
// if you call this, there is no going back. no checks anymore. nothing
// it deletes the 'devel' branch. git branch -D "devel". END OF STORY
func justDeleteTheDevelBranchAlready(repo *gitpb.Repo) error {