try to fix weird things with doClean()
This commit is contained in:
parent
a377c2ed27
commit
a8184b8c9e
54
argv.go
54
argv.go
|
@ -67,25 +67,25 @@ type RepoCmd struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type NormalCmd struct {
|
type NormalCmd struct {
|
||||||
On *EmptyCmd `arg:"subcommand:on" help:"turn normal mode on"`
|
On *EmptyCmd `arg:"subcommand:on" help:"turn normal mode on"`
|
||||||
Off *EmptyCmd `arg:"subcommand:off" help:"turn normal mode off"`
|
Off *EmptyCmd `arg:"subcommand:off" help:"turn normal mode off"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CommitCmd struct {
|
type CommitCmd struct {
|
||||||
// Submit bool `arg:"--submit" help:"submit the patches to forge"`
|
// 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 {
|
type DevCmd struct {
|
||||||
Build string `arg:"--build" help:"build a repo"`
|
Build string `arg:"--build" help:"build a repo"`
|
||||||
Install string `arg:"--install" help:"install a repo"`
|
Install string `arg:"--install" help:"install a repo"`
|
||||||
BuildForge bool `arg:"--forge-rebuild" help:"download and rebuild forge"`
|
BuildForge bool `arg:"--forge-rebuild" help:"download and rebuild forge"`
|
||||||
URL string `arg:"--connect" help:"forge url"`
|
URL string `arg:"--connect" help:"forge url"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CleanCmd struct {
|
type CleanCmd struct {
|
||||||
Verify *EmptyCmd `arg:"subcommand:fix" help:"try to fix problems"`
|
Fix *EmptyCmd `arg:"subcommand:fix" help:"try to fix problems"`
|
||||||
Repo string `arg:"--repo" help:"which repo to look at"`
|
Repo string `arg:"--repo" help:"which repo to look at"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// matches
|
// matches
|
||||||
|
@ -95,7 +95,7 @@ func (c CleanCmd) Match(partial string) []string {
|
||||||
}
|
}
|
||||||
|
|
||||||
type CleanDevelCmd struct {
|
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 {
|
type PatchCmd struct {
|
||||||
|
@ -112,37 +112,37 @@ type SubmitCmd struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type PullCmd 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"`
|
// Check *EmptyCmd `arg:"subcommand:check" help:"check repo versions"`
|
||||||
// Dirty *EmptyCmd `arg:"subcommand:dirty" help:"only check dirty repos"`
|
// Dirty *EmptyCmd `arg:"subcommand:dirty" help:"only check dirty repos"`
|
||||||
// Patches *EmptyCmd `arg:"subcommand:patches" help:"only check repos with patches"`
|
// Patches *EmptyCmd `arg:"subcommand:patches" help:"only check repos with patches"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type TagCmd struct {
|
type TagCmd struct {
|
||||||
List *EmptyCmd `arg:"subcommand:list" help:"list the tags"`
|
List *EmptyCmd `arg:"subcommand:list" help:"list the tags"`
|
||||||
Clean *EmptyCmd `arg:"subcommand:clean" help:"clean out old and duplicate tags"`
|
Clean *EmptyCmd `arg:"subcommand:clean" help:"clean out old and duplicate tags"`
|
||||||
Delete string `arg:"--delete" help:"delete a tag"`
|
Delete string `arg:"--delete" help:"delete a tag"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CheckoutCmd struct {
|
type CheckoutCmd struct {
|
||||||
User *EmptyCmd `arg:"subcommand:user" help:"git checkout user"`
|
User *EmptyCmd `arg:"subcommand:user" help:"git checkout user"`
|
||||||
Devel *EmptyCmd `arg:"subcommand:devel" help:"git checkout devel"`
|
Devel *EmptyCmd `arg:"subcommand:devel" help:"git checkout devel"`
|
||||||
Master *EmptyCmd `arg:"subcommand:master" help:"git checkout master"`
|
Master *EmptyCmd `arg:"subcommand:master" help:"git checkout master"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type MergeCmd struct {
|
type MergeCmd struct {
|
||||||
All bool `arg:"--all" help:"merge all"`
|
All bool `arg:"--all" help:"merge all"`
|
||||||
Devel *EmptyCmd `arg:"subcommand:devel" help:"merge user to devel"`
|
Devel *EmptyCmd `arg:"subcommand:devel" help:"merge user to devel"`
|
||||||
Master *EmptyCmd `arg:"subcommand:master" help:"merge devel to master"`
|
Master *EmptyCmd `arg:"subcommand:master" help:"merge devel to master"`
|
||||||
Publish *EmptyCmd `arg:"subcommand:publish" help:"increment versions and publish master branch"`
|
Publish *EmptyCmd `arg:"subcommand:publish" help:"increment versions and publish master branch"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ConfigCmd struct {
|
type ConfigCmd struct {
|
||||||
Add *ConfigAddCmd `arg:"subcommand:add" help:"add a config setting"`
|
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"`
|
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"`
|
List *EmptyCmd `arg:"subcommand:list" help:"list your config settings"`
|
||||||
Delete string `arg:"--delete" help:"delete this repo"`
|
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)"`
|
Register string `arg:"--register" help:"register your git URL (foo.com/mystuff) or (github.com/foo/bar)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ConfigAddCmd struct {
|
type ConfigAddCmd struct {
|
||||||
|
@ -151,7 +151,7 @@ type ConfigAddCmd struct {
|
||||||
Directory bool `arg:"--directory" help:"repo is a directory to match against"`
|
Directory bool `arg:"--directory" help:"repo is a directory to match against"`
|
||||||
ReadOnly bool `arg:"--readonly" help:"repo is readonly"`
|
ReadOnly bool `arg:"--readonly" help:"repo is readonly"`
|
||||||
Writable bool `arg:"--writable" help:"repo is writable"`
|
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"`
|
Private bool `arg:"--private" default:"false" help:"repo can not be published"`
|
||||||
Interesting bool `arg:"--interesting" default:"false" help:"something you decided was cool"`
|
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)"`
|
DebName string `arg:"--debname" help:"the name of the debian package (or rpm, etc)"`
|
||||||
|
|
20
doClean.go
20
doClean.go
|
@ -4,9 +4,11 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
|
"go.wit.com/lib/fhelp"
|
||||||
"go.wit.com/lib/protobuf/forgepb"
|
"go.wit.com/lib/protobuf/forgepb"
|
||||||
"go.wit.com/lib/protobuf/gitpb"
|
"go.wit.com/lib/protobuf/gitpb"
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
|
@ -97,7 +99,16 @@ func doClean() error {
|
||||||
|
|
||||||
// try to delete user
|
// try to delete user
|
||||||
if err := doRepoCleanUser(repo); err != nil {
|
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
|
// 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
|
// 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
|
// it deletes the 'devel' branch. git branch -D "devel". END OF STORY
|
||||||
func justDeleteTheDevelBranchAlready(repo *gitpb.Repo) error {
|
func justDeleteTheDevelBranchAlready(repo *gitpb.Repo) error {
|
||||||
|
|
Loading…
Reference in New Issue