summaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2019-03-02 20:57:18 +1100
committerJesse Duffield <jessedduffield@gmail.com>2019-03-02 21:31:48 +1100
commit273678f081549d9f09c46604fc686fa5fccc7682 (patch)
tree6b34ad21feea9de499c2476c8fbaa6f0c2479dd6 /pkg
parent790235f64bafa315572fb3d32580ac8e068f98a1 (diff)
fix issue where you couldn't rearrange commits while rebasing onto a branch
Diffstat (limited to 'pkg')
-rw-r--r--pkg/commands/git.go23
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:]...)