From ddd95e9afc926d9e0a4a372dbf433d81c3db3207 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sat, 24 Feb 2024 04:50:31 -0600 Subject: GitPull() detects local only branches --- git.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'git.go') diff --git a/git.go b/git.go index 02563a5..470882b 100644 --- a/git.go +++ b/git.go @@ -40,9 +40,29 @@ func (rs *RepoStatus) Age() time.Duration { } func (rs *RepoStatus) GitPull() error { + currentName := rs.GetCurrentBranchName() + if rs.IsOnlyLocalTag(currentName) { + log.Log(REPOWARN, rs.Path(), "can not git pull on local only branch", currentName) + return nil + } + var found bool = false + // okay, it's not local. Is it mapped in .git/config ? + for name, branch := range rs.gitConfig.branches { + log.Log(WARN, name, "remote:", branch.remote, "merge", branch.merge) + if name == currentName { + log.Log(WARN, "Found:", name, "remote:", branch.remote, "merge", branch.merge) + found = true + } + } + if ! found { + return errors.New("git config error") + } var cmd []string cmd = append(cmd, "git", "pull") - err, _, output := RunCmd(rs.realPath.String(), cmd) + err, output := rs.RunCmd(cmd) + if err != nil { + output = "git error_,,,_a_,,,_b_,,,c" + } if err == nil { log.Log(REPOWARN, "git pull ran", rs.Path()) log.Log(REPOWARN, "git pull output", output) -- cgit v1.2.3