Merge branch 'en/tree-walk-optim'
[gitweb.git] / t / t6007-rev-list-cherry-pick-file.sh
index 3faeae6c01688069220e6dc5b200fbb1d04a05fd..b565638e92655c12c841c29a108516a8b13cf8d2 100755 (executable)
@@ -32,6 +32,23 @@ test_expect_success setup '
        git tag B
 '
 
+cat >expect <<EOF
+<tags/B
+>tags/C
+EOF
+
+test_expect_success '--left-right' '
+       git rev-list --left-right B...C > actual &&
+       git name-rev --stdin --name-only --refs="*tags/*" \
+               < actual > actual.named &&
+       test_cmp actual.named expect
+'
+
+test_expect_success '--count' '
+       git rev-list --count B...C > actual &&
+       test "$(cat actual)" = 2
+'
+
 test_expect_success '--cherry-pick foo comes up empty' '
        test -z "$(git rev-list --left-right --cherry-pick B...C -- foo)"
 '
@@ -40,4 +57,30 @@ test_expect_success '--cherry-pick bar does not come up empty' '
        ! test -z "$(git rev-list --left-right --cherry-pick B...C -- bar)"
 '
 
+test_expect_success '--cherry-pick with independent, but identical branches' '
+       git symbolic-ref HEAD refs/heads/independent &&
+       rm .git/index &&
+       echo Hallo > foo &&
+       git add foo &&
+       test_tick &&
+       git commit -m "independent" &&
+       echo Bello > foo &&
+       test_tick &&
+       git commit -m "independent, too" foo &&
+       test -z "$(git rev-list --left-right --cherry-pick \
+               HEAD...master -- foo)"
+'
+
+cat >expect <<EOF
+1      2
+EOF
+
+# Insert an extra commit to break the symmetry
+test_expect_success '--count --left-right' '
+       git checkout branch &&
+       test_commit D &&
+       git rev-list --count --left-right B...D > actual &&
+       test_cmp expect actual
+'
+
 test_done