diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2019-03-02 20:57:18 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2019-03-02 21:31:48 +1100 |
commit | 273678f081549d9f09c46604fc686fa5fccc7682 (patch) | |
tree | 6b34ad21feea9de499c2476c8fbaa6f0c2479dd6 /pkg/commands/git.go | |
parent | 790235f64bafa315572fb3d32580ac8e068f98a1 (diff) |
fix issue where you couldn't rearrange commits while rebasing onto a branch
Diffstat (limited to 'pkg/commands/git.go')
-rw-r--r-- | pkg/commands/git.go | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/pkg/commands/git.go b/pkg/commands/git.go index ecfd86eb2..33ef6d5ba 100644 --- a/pkg/commands/git.go +++ b/pkg/commands/git.go @@ -715,14 +715,7 @@ func (c *GitCommand) EditRebaseTodo(index int, action string) error { } content := strings.Split(string(bytes), "\n") - - // count lines that are not blank and are not comments - commitCount := 0 - for _, line := range content { - if line != "" && !strings.HasPrefix(line, "#") { - commitCount++ - } - } + commitCount := c.getTodoCommitCount(content) // we have the most recent commit at the bottom whereas the todo file has // it at the bottom, so we need to subtract our index from the commit count @@ -734,6 +727,17 @@ func (c *GitCommand) EditRebaseTodo(index int, action string) error { return ioutil.WriteFile(fileName, []byte(result), 0644) } +func (c *GitCommand) getTodoCommitCount(content []string) int { + // count lines that are not blank and are not comments + commitCount := 0 + for _, line := range content { + if line != "" && !strings.HasPrefix(line, "#") { + commitCount++ + } + } + return commitCount +} + // MoveTodoDown moves a rebase todo item down by one position func (c *GitCommand) MoveTodoDown(index int) error { fileName := ".git/rebase-merge/git-rebase-todo" @@ -743,7 +747,8 @@ func (c *GitCommand) MoveTodoDown(index int) error { } content := strings.Split(string(bytes), "\n") - contentIndex := len(content) - 2 - index + commitCount := c.getTodoCommitCount(content) + contentIndex := commitCount - 1 - index rearrangedContent := append(content[0:contentIndex-1], content[contentIndex], content[contentIndex-1]) rearrangedContent = append(rearrangedContent, content[contentIndex+1:]...) |