diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2019-11-17 10:23:06 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2019-11-21 22:07:14 +1100 |
commit | 1f3e1720a3a0bd31c0816a94d0b7c5bca1589f96 (patch) | |
tree | 5ad5c1f01b31cdf9e4fed9cdc0a4779a2bf442b8 /pkg/commands/loading_remotes.go | |
parent | b7f2d0366b2c9b8ac034e426661db4ea72a7bb14 (diff) |
split RemoteBranch out from Branch
Diffstat (limited to 'pkg/commands/loading_remotes.go')
-rw-r--r-- | pkg/commands/loading_remotes.go | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/pkg/commands/loading_remotes.go b/pkg/commands/loading_remotes.go index 8b6b47d57..dc5dcac44 100644 --- a/pkg/commands/loading_remotes.go +++ b/pkg/commands/loading_remotes.go @@ -3,6 +3,8 @@ package commands import ( "fmt" "regexp" + "sort" + "strings" ) func (c *GitCommand) GetRemotes() ([]*Remote, error) { @@ -24,9 +26,9 @@ func (c *GitCommand) GetRemotes() ([]*Remote, error) { re := regexp.MustCompile(fmt.Sprintf("%s\\/(.*)", name)) matches := re.FindAllStringSubmatch(remoteBranchesStr, -1) - branches := make([]*Branch, len(matches)) + branches := make([]*RemoteBranch, len(matches)) for j, match := range matches { - branches[j] = &Branch{ + branches[j] = &RemoteBranch{ Name: match[1], } } @@ -38,5 +40,17 @@ func (c *GitCommand) GetRemotes() ([]*Remote, error) { } } + // now lets sort our remotes by name alphabetically + sort.Slice(remotes, func(i, j int) bool { + // we want origin at the top because we'll be most likely to want it + if remotes[i].Name == "origin" { + return true + } + if remotes[j].Name == "origin" { + return false + } + return strings.ToLower(remotes[i].Name) < strings.ToLower(remotes[j].Name) + }) + return remotes, nil } |