t / t6120-describe.shon commit Merge branch 'js/rebase-detached' (dcb83ec)
   1#!/bin/sh
   2
   3test_description='test describe
   4
   5                       B
   6        .--------------o----o----o----x
   7       /                   /    /
   8 o----o----o----o----o----.    /
   9       \        A    c        /
  10        .------------o---o---o
  11                     D   e
  12'
  13. ./test-lib.sh
  14
  15check_describe () {
  16        expect="$1"
  17        shift
  18        R=$(git describe "$@") &&
  19        test_expect_success "describe $*" '
  20        case "$R" in
  21        $expect)        echo happy ;;
  22        *)      echo "Oops - $R is not $expect";
  23                false ;;
  24        esac
  25        '
  26}
  27
  28test_expect_success setup '
  29
  30        test_tick &&
  31        echo one >file && git add file && git-commit -m initial &&
  32        one=$(git rev-parse HEAD) &&
  33
  34        test_tick &&
  35        echo two >file && git add file && git-commit -m second &&
  36        two=$(git rev-parse HEAD) &&
  37
  38        test_tick &&
  39        echo three >file && git add file && git-commit -m third &&
  40
  41        test_tick &&
  42        echo A >file && git add file && git-commit -m A &&
  43        test_tick &&
  44        git-tag -a -m A A &&
  45
  46        test_tick &&
  47        echo c >file && git add file && git-commit -m c &&
  48        test_tick &&
  49        git-tag c &&
  50
  51        git reset --hard $two &&
  52        test_tick &&
  53        echo B >side && git add side && git-commit -m B &&
  54        test_tick &&
  55        git-tag -a -m B B &&
  56
  57        test_tick &&
  58        git-merge -m Merged c &&
  59        merged=$(git rev-parse HEAD) &&
  60
  61        git reset --hard $two &&
  62        test_tick &&
  63        echo D >another && git add another && git-commit -m D &&
  64        test_tick &&
  65        git-tag -a -m D D &&
  66
  67        test_tick &&
  68        echo DD >another && git commit -a -m another &&
  69
  70        test_tick &&
  71        git-tag e &&
  72
  73        test_tick &&
  74        echo DDD >another && git commit -a -m "yet another" &&
  75
  76        test_tick &&
  77        git-merge -m Merged $merged &&
  78
  79        test_tick &&
  80        echo X >file && echo X >side && git add file side &&
  81        git-commit -m x
  82
  83'
  84
  85check_describe A-* HEAD
  86check_describe A-* HEAD^
  87check_describe D-* HEAD^^
  88check_describe A-* HEAD^^2
  89check_describe B HEAD^^2^
  90
  91check_describe A-* --tags HEAD
  92check_describe A-* --tags HEAD^
  93check_describe D-* --tags HEAD^^
  94check_describe A-* --tags HEAD^^2
  95check_describe B --tags HEAD^^2^
  96
  97test_done