summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configfile.go32
-rw-r--r--newRepo.go4
2 files changed, 29 insertions, 7 deletions
diff --git a/configfile.go b/configfile.go
index a65de5c..c6f79ed 100644
--- a/configfile.go
+++ b/configfile.go
@@ -1,6 +1,7 @@
package repolist
import (
+ "fmt"
"io/ioutil"
"os"
"path/filepath"
@@ -142,22 +143,39 @@ func (rl *RepoList) ArgCheckoutUser() bool {
}
func (rl *RepoList) ArgGitPull() bool {
+ var localonly int
+ var badmap int
+
log.Log(REPOWARN, "running git pull everywhere")
- cmd := []string{"git", "pull"}
var failed int = 0
for _, repo := range rl.AllRepos() {
- log.Log(REPOWARN, "Running:", repo.Status.Path(), cmd)
- err, output := repo.RunCmd(cmd)
- if err == nil {
- log.Log(REPOWARN, output)
+ log.Log(REPOWARN, "Running:", repo.Status.Path())
+ if err := repo.Status.GitPull(); err == nil {
} else {
failed += 1
- log.Log(REPOWARN, "Something went wrong. Got err", err)
- log.Log(REPOWARN, "output =", output)
+ repo.Status.DumpTags()
+ name := repo.Status.GetCurrentBranchName()
+ if repo.Status.IsOnlyLocalTag(name) {
+ log.Log(REPOWARN, repo.Status.Path(), "can not git pull on local only branch", name, err)
+ } else {
+ log.Log(REPOWARN, repo.Status.Path(), "this branch should have worked", name, err)
+ }
+ if fmt.Sprint(err) == "git config error" {
+ badmap += 1
+ continue
+ }
+ if fmt.Sprint(err) == "local only" {
+ localonly += 1
+ continue
+ }
return false
}
}
log.Log(REPOWARN, "Ran git pull in all repos. failure count =", failed)
+ log.Log(REPOWARN, "Ran git pull in all repos. git config map errors =", badmap)
+ if localonly != 0 {
+ log.Log(REPOWARN, "Ran git pull in all repos. ignored local only branches =", localonly)
+ }
return true
}
diff --git a/newRepo.go b/newRepo.go
index 828ba60..d2debed 100644
--- a/newRepo.go
+++ b/newRepo.go
@@ -119,6 +119,10 @@ func (r *RepoList) makeAutotypistView(newRepo *RepoRow) {
})
newRepo.endBox.NewButton("commit all", func() {
+ if ! newRepo.Status.IsUserBranch() {
+ log.Log(REPOWARN, "can not commit on non user branch")
+ return
+ }
r.reposbox.Disable()
// restore anything staged so everything can be reviewed
newRepo.Status.RunCmd([]string{"git", "restore", "--staged", "."})