Code

Merge branch 'jc/clone'
[git.git] / t / t3404-rebase-interactive.sh
index 817f614cde29f12e01724901e1f0b966a28d04b3..a9b552ff087fd6e45419e87f892b42da33ffed98 100755 (executable)
@@ -68,6 +68,9 @@ test "\$1" = .git/COMMIT_EDITMSG && {
        test -z "\$FAKE_COMMIT_AMEND" || echo "\$FAKE_COMMIT_AMEND" >> "\$1"
        exit
 }
+test -z "\$EXPECT_COUNT" ||
+       test "\$EXPECT_COUNT" = \$(grep -ve "^#" -e "^$" < "\$1" | wc -l) ||
+       exit
 test -z "\$FAKE_LINES" && exit
 grep -v "^#" < "\$1" > "\$1".tmp
 rm "\$1"
@@ -95,6 +98,14 @@ test_expect_success 'no changes are a nop' '
        test $(git rev-parse I) = $(git rev-parse HEAD)
 '
 
+test_expect_success 'test the [branch] option' '
+       git checkout -b dead-end &&
+       git rm file6 &&
+       git commit -m "stop here" &&
+       git rebase -i F branch2 &&
+       test $(git rev-parse I) = $(git rev-parse HEAD)
+'
+
 test_expect_success 'rebase on top of a non-conflicting commit' '
        git checkout branch1 &&
        git tag original-branch1 &&
@@ -251,4 +262,16 @@ test_expect_success 'interrupted squash works as expected' '
        test $one = $(git rev-parse HEAD~2)
 '
 
+test_expect_success 'ignore patch if in upstream' '
+       HEAD=$(git rev-parse HEAD) &&
+       git checkout -b has-cherry-picked HEAD^ &&
+       echo unrelated > file7 &&
+       git add file7 &&
+       test_tick &&
+       git commit -m "unrelated change" &&
+       git cherry-pick $HEAD &&
+       EXPECT_COUNT=1 git rebase -i $HEAD &&
+       test $HEAD = $(git rev-parse HEAD^)
+'
+
 test_done