4b89ac71f53394fafec2697301b85c2cea7e1709
   1#!/bin/sh
   2
   3test_description='remote tracking stats'
   4
   5. ./test-lib.sh
   6
   7advance () {
   8        echo "$1" >"$1" &&
   9        git add "$1" &&
  10        test_tick &&
  11        git commit -m "$1"
  12}
  13
  14test_expect_success setup '
  15        for i in a b c;
  16        do
  17                advance $i || break
  18        done &&
  19        git clone . test &&
  20        (
  21                cd test &&
  22                git checkout -b b1 origin &&
  23                git reset --hard HEAD^ &&
  24                advance d &&
  25                git checkout -b b2 origin &&
  26                git reset --hard b1 &&
  27                git checkout -b b3 origin &&
  28                git reset --hard HEAD^ &&
  29                git checkout -b b4 origin &&
  30                advance e &&
  31                advance f
  32        )
  33'
  34
  35script='s/^..\(b.\)[     0-9a-f]*\[\([^]]*\)\].*/\1 \2/p'
  36cat >expect <<\EOF
  37b1 ahead 1, behind 1
  38b2 ahead 1, behind 1
  39b3 behind 1
  40b4 ahead 2
  41EOF
  42
  43test_expect_success 'branch -v' '
  44        (
  45                cd test &&
  46                git branch -v
  47        ) |
  48        sed -n -e "$script" >actual &&
  49        test_cmp expect actual
  50'
  51
  52test_expect_success 'checkout' '
  53        (
  54                cd test && git checkout b1
  55        ) >actual &&
  56        grep "have 1 and 1 different" actual
  57'
  58
  59test_expect_success 'status' '
  60        (
  61                cd test &&
  62                git checkout b1 >/dev/null &&
  63                # reports nothing to commit
  64                test_must_fail git status
  65        ) >actual &&
  66        grep "have 1 and 1 different" actual
  67'
  68
  69test_expect_success 'status when tracking lightweight tags' '
  70        git checkout master &&
  71        git tag light &&
  72        git branch --track lighttrack light >actual &&
  73        grep "set up to track" actual &&
  74        git checkout lighttrack
  75'
  76
  77test_expect_failure 'status when tracking annotated tags' '
  78        git checkout master &&
  79        git tag -m heavy heavy &&
  80        git branch --track heavytrack heavy >actual &&
  81        grep "set up to track" actual &&
  82        git checkout heavytrack
  83'
  84test_done