t / t5404-tracking-branches.shon commit make deleting a missing ref more quiet (0b294c0)
   1#!/bin/sh
   2
   3test_description='tracking branch update checks for git push'
   4
   5. ./test-lib.sh
   6
   7test_expect_success 'setup' '
   8        echo 1 >file &&
   9        git add file &&
  10        git commit -m 1 &&
  11        git branch b1 &&
  12        git branch b2 &&
  13        git branch b3 &&
  14        git clone . aa &&
  15        git checkout b1 &&
  16        echo b1 >>file &&
  17        git commit -a -m b1 &&
  18        git checkout b2 &&
  19        echo b2 >>file &&
  20        git commit -a -m b2
  21'
  22
  23test_expect_success 'prepare pushable branches' '
  24        cd aa &&
  25        b1=$(git rev-parse origin/b1) &&
  26        b2=$(git rev-parse origin/b2) &&
  27        git checkout -b b1 origin/b1 &&
  28        echo aa-b1 >>file &&
  29        git commit -a -m aa-b1 &&
  30        git checkout -b b2 origin/b2 &&
  31        echo aa-b2 >>file &&
  32        git commit -a -m aa-b2 &&
  33        git checkout master &&
  34        echo aa-master >>file &&
  35        git commit -a -m aa-master
  36'
  37
  38test_expect_success 'mixed-success push returns error' '! git push'
  39
  40test_expect_success 'check tracking branches updated correctly after push' '
  41        test "$(git rev-parse origin/master)" = "$(git rev-parse master)"
  42'
  43
  44test_expect_success 'check tracking branches not updated for failed refs' '
  45        test "$(git rev-parse origin/b1)" = "$b1" &&
  46        test "$(git rev-parse origin/b2)" = "$b2"
  47'
  48
  49test_expect_success 'deleted branches have their tracking branches removed' '
  50        git push origin :b1 &&
  51        test "$(git rev-parse origin/b1)" = "origin/b1"
  52'
  53
  54test_expect_success 'already deleted tracking branches ignored' '
  55        git branch -d -r origin/b3 &&
  56        git push origin :b3 >output 2>&1 &&
  57        ! grep error output
  58'
  59
  60test_done